添加了taser的功能
This commit is contained in:
parent
963412b8d5
commit
0f4bf9127a
5 changed files with 20 additions and 16 deletions
|
@ -27,9 +27,14 @@ minecraft {
|
||||||
|
|
||||||
copyIdeResources = true
|
copyIdeResources = true
|
||||||
runs {
|
runs {
|
||||||
|
configureEach {
|
||||||
|
property 'geckolib.disable_examples', 'true'
|
||||||
|
}
|
||||||
|
|
||||||
client {
|
client {
|
||||||
property 'mixin.env.remapRefMap', 'true'
|
property 'mixin.env.remapRefMap', 'true'
|
||||||
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
|
property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg"
|
||||||
|
property 'geckolib.disable_examples', 'true'
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
|
|
|
@ -6,11 +6,13 @@ import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.effect.MobEffectInstance;
|
import net.minecraft.world.effect.MobEffectInstance;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
|
import net.minecraft.world.entity.LightningBolt;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.monster.Creeper;
|
import net.minecraft.world.entity.monster.Creeper;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -91,8 +93,8 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSu
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!living.level().isClientSide()) {
|
if (!living.level().isClientSide()) {
|
||||||
if (living.getClass() == Creeper.class) {
|
if (living instanceof Creeper creeper && living.level() instanceof ServerLevel serverLevel) {
|
||||||
//TODO 命中苦力怕时转化为闪电苦力怕
|
creeper.thunderHit(serverLevel, new LightningBolt(EntityType.LIGHTNING_BOLT, serverLevel));
|
||||||
} else {
|
} else {
|
||||||
living.addEffect(new MobEffectInstance(ModMobEffects.SHOCK.get(), 100 + volt * 30, volt), this.getOwner());
|
living.addEffect(new MobEffectInstance(ModMobEffects.SHOCK.get(), 100 + volt * 30, volt), this.getOwner());
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import net.mcreator.superbwarfare.ModUtils;
|
||||||
import net.mcreator.superbwarfare.client.renderer.item.VectorItemRenderer;
|
import net.mcreator.superbwarfare.client.renderer.item.VectorItemRenderer;
|
||||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||||
import net.mcreator.superbwarfare.init.ModItems;
|
import net.mcreator.superbwarfare.init.ModItems;
|
||||||
import net.mcreator.superbwarfare.init.ModPerks;
|
|
||||||
import net.mcreator.superbwarfare.init.ModSounds;
|
import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||||
|
@ -152,6 +151,6 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canApplyPerk(Perk perk) {
|
public boolean canApplyPerk(Perk perk) {
|
||||||
return PerkHelper.SMG_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk) || perk == ModPerks.DESPERADO.get();
|
return PerkHelper.SMG_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -56,13 +56,15 @@ import java.util.function.Consumer;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
|
public static final int MAX_ENERGY = 12000;
|
||||||
|
|
||||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||||
public static ItemDisplayContext transformType;
|
public static ItemDisplayContext transformType;
|
||||||
private final Supplier<Integer> energyCapacity;
|
private final Supplier<Integer> energyCapacity;
|
||||||
|
|
||||||
public TaserItem() {
|
public TaserItem() {
|
||||||
super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON));
|
super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON));
|
||||||
this.energyCapacity = () -> 12000;
|
this.energyCapacity = () -> MAX_ENERGY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -75,7 +77,7 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
||||||
e -> energy.set(e.getEnergyStored())
|
e -> energy.set(e.getEnergyStored())
|
||||||
);
|
);
|
||||||
return energy.get() != 0;
|
return energy.get() != 0 && energy.get() != MAX_ENERGY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -85,7 +87,7 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
e -> energy.set(e.getEnergyStored())
|
e -> energy.set(e.getEnergyStored())
|
||||||
);
|
);
|
||||||
|
|
||||||
return Math.round((float) energy.get() * 13.0F / 12000F);
|
return Math.round((float) energy.get() * 13.0F / MAX_ENERGY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -203,15 +205,8 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
int perkLevel = PerkHelper.getItemPerkLevel(ModPerks.SUPER_RECHARGE.get(), stack);
|
int perkLevel = PerkHelper.getItemPerkLevel(ModPerks.SUPER_RECHARGE.get(), stack);
|
||||||
// var tag = stack.getOrCreateTag();
|
|
||||||
stack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
stack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
||||||
energy -> {
|
energy -> energy.receiveEnergy(10 + 10 * perkLevel, false)
|
||||||
energy.receiveEnergy(10 + 10 * perkLevel, false);
|
|
||||||
// int energyStored = energy.getEnergyStored();
|
|
||||||
// if (energyStored > 0) {
|
|
||||||
// energy.receiveEnergy(10, false);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,6 +217,9 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public static ItemStack getGunInstance() {
|
public static ItemStack getGunInstance() {
|
||||||
ItemStack stack = new ItemStack(ModItems.TASER.get());
|
ItemStack stack = new ItemStack(ModItems.TASER.get());
|
||||||
GunsTool.initCreativeGun(stack, ModItems.TASER.getId().getPath());
|
GunsTool.initCreativeGun(stack, ModItems.TASER.getId().getPath());
|
||||||
|
stack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
||||||
|
energy -> energy.receiveEnergy(MAX_ENERGY, false)
|
||||||
|
);
|
||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -259,7 +259,7 @@ public class PerkHelper {
|
||||||
}
|
}
|
||||||
case DAMAGE -> {
|
case DAMAGE -> {
|
||||||
return perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.GUTSHOT_STRAIGHT.get() ||
|
return perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.GUTSHOT_STRAIGHT.get() ||
|
||||||
perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.HEAD_SEEKER.get();
|
perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.HEAD_SEEKER.get() || perk == ModPerks.DESPERADO.get();
|
||||||
}
|
}
|
||||||
default -> {
|
default -> {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue