优化部分代码

This commit is contained in:
Light_Quanta 2024-05-05 15:44:33 +08:00
parent 7dde8eef4b
commit 8f7db46aec
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
475 changed files with 25909 additions and 28052 deletions

View file

@ -41,6 +41,7 @@ import java.util.function.Supplier;
public class TargetMod { public class TargetMod {
public static final Logger LOGGER = LogManager.getLogger(TargetMod.class); public static final Logger LOGGER = LogManager.getLogger(TargetMod.class);
public static final String MODID = "target"; public static final String MODID = "target";
public TargetMod() { public TargetMod() {
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
@ -76,7 +77,7 @@ public class TargetMod {
private static final Collection<AbstractMap.SimpleEntry<Runnable, Integer>> workQueue = new ConcurrentLinkedQueue<>(); private static final Collection<AbstractMap.SimpleEntry<Runnable, Integer>> workQueue = new ConcurrentLinkedQueue<>();
public static void queueServerWork(int tick, Runnable action) { public static void queueServerWork(int tick, Runnable action) {
workQueue.add(new AbstractMap.SimpleEntry(action, tick)); workQueue.add(new AbstractMap.SimpleEntry<>(action, tick));
} }
@SubscribeEvent @SubscribeEvent

View file

@ -1,40 +1,39 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.chat.Component;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import java.util.List; import java.util.List;
public class DeepslateGalenaOreBlock extends Block { public class DeepslateGalenaOreBlock extends Block {
public DeepslateGalenaOreBlock() { public DeepslateGalenaOreBlock() {
super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 8f).requiresCorrectToolForDrops()); super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 8f).requiresCorrectToolForDrops());
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 15; return 15;
} }
@Override @Override
public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) { public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) {
if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem) if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem)
return tieredItem.getTier().getLevel() >= 2; return tieredItem.getTier().getLevel() >= 2;
return false; return false;
} }
} }

View file

@ -1,40 +1,39 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.chat.Component;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import java.util.List; import java.util.List;
public class DeepslateScheeliteOreBlock extends Block { public class DeepslateScheeliteOreBlock extends Block {
public DeepslateScheeliteOreBlock() { public DeepslateScheeliteOreBlock() {
super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 8f).requiresCorrectToolForDrops()); super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 8f).requiresCorrectToolForDrops());
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 15; return 15;
} }
@Override @Override
public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) { public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) {
if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem) if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem)
return tieredItem.getTier().getLevel() >= 2; return tieredItem.getTier().getLevel() >= 2;
return false; return false;
} }
} }

View file

@ -1,40 +1,39 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.chat.Component;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import java.util.List; import java.util.List;
public class GalenaOreBlock extends Block { public class GalenaOreBlock extends Block {
public GalenaOreBlock() { public GalenaOreBlock() {
super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 5f).requiresCorrectToolForDrops()); super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 5f).requiresCorrectToolForDrops());
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 15; return 15;
} }
@Override @Override
public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) { public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) {
if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem) if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem)
return tieredItem.getTier().getLevel() >= 2; return tieredItem.getTier().getLevel() >= 2;
return false; return false;
} }
} }

View file

@ -1,75 +1,71 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import io.netty.buffer.Unpooled;
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.storage.loot.LootParams;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.NetworkHooks;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.level.storage.loot.LootParams;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.MenuProvider;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionHand;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.network.chat.Component;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.core.BlockPos;
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
import java.util.List;
import java.util.Collections; import java.util.Collections;
import java.util.List;
import io.netty.buffer.Unpooled;
public class GunRecycleBlock extends Block { public class GunRecycleBlock extends Block {
public GunRecycleBlock() { public GunRecycleBlock() {
super(BlockBehaviour.Properties.of().sound(SoundType.METAL).strength(1f, 10f)); super(BlockBehaviour.Properties.of().sound(SoundType.METAL).strength(1f, 10f));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 15; return 15;
} }
@Override @Override
public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) {
List<ItemStack> dropsOriginal = super.getDrops(state, builder); List<ItemStack> dropsOriginal = super.getDrops(state, builder);
if (!dropsOriginal.isEmpty()) if (!dropsOriginal.isEmpty())
return dropsOriginal; return dropsOriginal;
return Collections.singletonList(new ItemStack(this, 1)); return Collections.singletonList(new ItemStack(this, 1));
} }
@Override @Override
public InteractionResult use(BlockState blockstate, Level world, BlockPos pos, Player entity, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState blockstate, Level world, BlockPos pos, Player entity, InteractionHand hand, BlockHitResult hit) {
super.use(blockstate, world, pos, entity, hand, hit); super.use(blockstate, world, pos, entity, hand, hit);
if (entity instanceof ServerPlayer player) { if (entity instanceof ServerPlayer player) {
NetworkHooks.openScreen(player, new MenuProvider() { NetworkHooks.openScreen(player, new MenuProvider() {
@Override @Override
public Component getDisplayName() { public Component getDisplayName() {
return Component.literal("Gun Recycle"); return Component.literal("Gun Recycle");
} }
@Override @Override
public AbstractContainerMenu createMenu(int id, Inventory inventory, Player player) { public AbstractContainerMenu createMenu(int id, Inventory inventory, Player player) {
return new GunRecycleGuiMenu(id, inventory, new FriendlyByteBuf(Unpooled.buffer()).writeBlockPos(pos)); return new GunRecycleGuiMenu(id, inventory, new FriendlyByteBuf(Unpooled.buffer()).writeBlockPos(pos));
} }
}, pos); }, pos);
} }
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;
} }
} }

View file

@ -1,102 +1,100 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.level.storage.loot.LootParams;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.Mirror;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.Entity;
import net.minecraft.network.chat.Component;
import net.minecraft.core.Direction;
import net.minecraft.core.BlockPos;
import net.mcreator.target.procedures.JumppadBlockShiTiZaiFangKuaiZhongPengZhuangShiProcedure; import net.mcreator.target.procedures.JumppadBlockShiTiZaiFangKuaiZhongPengZhuangShiProcedure;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.storage.loot.LootParams;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
import java.util.List;
import java.util.Collections; import java.util.Collections;
import java.util.List;
public class JumppadBlockBlock extends Block { public class JumppadBlockBlock extends Block {
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
public JumppadBlockBlock() { public JumppadBlockBlock() {
super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(-1, 3600000).noCollission().noOcclusion().isRedstoneConductor((bs, br, bp) -> false)); super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(-1, 3600000).noCollission().noOcclusion().isRedstoneConductor((bs, br, bp) -> false));
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public boolean propagatesSkylightDown(BlockState state, BlockGetter reader, BlockPos pos) { public boolean propagatesSkylightDown(BlockState state, BlockGetter reader, BlockPos pos) {
return true; return true;
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 0; return 0;
} }
@Override @Override
public VoxelShape getVisualShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { public VoxelShape getVisualShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
return Shapes.empty(); return Shapes.empty();
} }
@Override @Override
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
return switch (state.getValue(FACING)) { return switch (state.getValue(FACING)) {
default -> Shapes.or(box(0, 0, 0, 16, 3, 16), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(1, 3, 1, 15, 4, 15)); default ->
case NORTH -> Shapes.or(box(0, 0, 0, 16, 3, 16), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(1, 3, 1, 15, 4, 15)); Shapes.or(box(0, 0, 0, 16, 3, 16), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(1, 3, 1, 15, 4, 15));
case EAST -> Shapes.or(box(0, 0, 0, 16, 3, 16), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(1, 3, 1, 15, 4, 15)); case NORTH ->
case WEST -> Shapes.or(box(0, 0, 0, 16, 3, 16), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(1, 3, 1, 15, 4, 15)); Shapes.or(box(0, 0, 0, 16, 3, 16), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(1, 3, 1, 15, 4, 15));
}; case EAST ->
} Shapes.or(box(0, 0, 0, 16, 3, 16), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(1, 3, 1, 15, 4, 15));
case WEST ->
Shapes.or(box(0, 0, 0, 16, 3, 16), box(14, -0.1, -0.25, 16.25, 3.25, 2), box(14, -0.1, 14, 16.25, 3.25, 16.25), box(-0.25, -0.1, 14, 2, 3.25, 16.25), box(-0.25, -0.1, -0.25, 2, 3.25, 2), box(1, 3, 1, 15, 4, 15));
};
}
@Override @Override
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) { protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
builder.add(FACING); builder.add(FACING);
} }
@Override @Override
public BlockState getStateForPlacement(BlockPlaceContext context) { public BlockState getStateForPlacement(BlockPlaceContext context) {
return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
} }
public BlockState rotate(BlockState state, Rotation rot) { public BlockState rotate(BlockState state, Rotation rot) {
return state.setValue(FACING, rot.rotate(state.getValue(FACING))); return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
} }
public BlockState mirror(BlockState state, Mirror mirrorIn) { public BlockState mirror(BlockState state, Mirror mirrorIn) {
return state.rotate(mirrorIn.getRotation(state.getValue(FACING))); return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
} }
@Override @Override
public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) {
List<ItemStack> dropsOriginal = super.getDrops(state, builder); List<ItemStack> dropsOriginal = super.getDrops(state, builder);
if (!dropsOriginal.isEmpty()) if (!dropsOriginal.isEmpty())
return dropsOriginal; return dropsOriginal;
return Collections.singletonList(new ItemStack(this, 1)); return Collections.singletonList(new ItemStack(this, 1));
} }
@Override @Override
public void entityInside(BlockState blockstate, Level world, BlockPos pos, Entity entity) { public void entityInside(BlockState blockstate, Level world, BlockPos pos, Entity entity) {
super.entityInside(blockstate, world, pos, entity); super.entityInside(blockstate, world, pos, entity);
JumppadBlockShiTiZaiFangKuaiZhongPengZhuangShiProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity); JumppadBlockShiTiZaiFangKuaiZhongPengZhuangShiProcedure.execute(world, pos.getX(), pos.getY(), pos.getZ(), entity);
} }
} }

View file

@ -1,41 +1,40 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import net.minecraft.world.level.storage.loot.LootParams;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.ItemStack;
import net.minecraft.network.chat.Component;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.storage.loot.LootParams;
import java.util.List;
import java.util.Collections; import java.util.Collections;
import java.util.List;
public class SandbagBlock extends Block { public class SandbagBlock extends Block {
public SandbagBlock() { public SandbagBlock() {
super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.SNARE).sound(SoundType.SAND).strength(10f, 20f)); super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.SNARE).sound(SoundType.SAND).strength(10f, 20f));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 15; return 15;
} }
@Override @Override
public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) { public List<ItemStack> getDrops(BlockState state, LootParams.Builder builder) {
List<ItemStack> dropsOriginal = super.getDrops(state, builder); List<ItemStack> dropsOriginal = super.getDrops(state, builder);
if (!dropsOriginal.isEmpty()) if (!dropsOriginal.isEmpty())
return dropsOriginal; return dropsOriginal;
return Collections.singletonList(new ItemStack(this, 1)); return Collections.singletonList(new ItemStack(this, 1));
} }
} }

View file

@ -1,40 +1,39 @@
package net.mcreator.target.block; package net.mcreator.target.block;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.player.Player;
import net.minecraft.network.chat.Component;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.PickaxeItem;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import java.util.List; import java.util.List;
public class ScheeliteOreBlock extends Block { public class ScheeliteOreBlock extends Block {
public ScheeliteOreBlock() { public ScheeliteOreBlock() {
super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 5f).requiresCorrectToolForDrops()); super(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.STONE).strength(3f, 5f).requiresCorrectToolForDrops());
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, BlockGetter world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) { public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
return 15; return 15;
} }
@Override @Override
public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) { public boolean canHarvestBlock(BlockState state, BlockGetter world, BlockPos pos, Player player) {
if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem) if (player.getInventory().getSelected().getItem() instanceof PickaxeItem tieredItem)
return tieredItem.getTier().getLevel() >= 2; return tieredItem.getTier().getLevel() >= 2;
return false; return false;
} }
} }

View file

@ -1,20 +1,19 @@
package net.mcreator.target.client; package net.mcreator.target.client;
import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.platform.InputConstants;
import net.mcreator.target.TargetMod;
import net.mcreator.target.network.FireMessage;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent; import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW; import org.lwjgl.glfw.GLFW;
import net.minecraft.tags.ItemTags;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.network.FireMessage;
import net.mcreator.target.TargetMod;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
public class ClickHandler { public class ClickHandler {
@ -33,7 +32,7 @@ public class ClickHandler {
@SubscribeEvent @SubscribeEvent
public static void onKeyReleased(InputEvent.MouseButton.Pre event) { public static void onKeyReleased(InputEvent.MouseButton.Pre event) {
if(!isInGame()) { if (!isInGame()) {
return; return;
} }
@ -47,18 +46,16 @@ public class ClickHandler {
return; return;
} }
ItemStack heldItem = player.getMainHandItem(); int button = event.getButton();
if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
int button = event.getButton(); TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(1, 0));
if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(1, 0));
} }
} }
@SubscribeEvent @SubscribeEvent
public static void onKeyPressed(InputEvent.MouseButton.Pre event) { public static void onKeyPressed(InputEvent.MouseButton.Pre event) {
if(!isInGame()) { if (!isInGame()) {
return; return;
} }
@ -74,9 +71,9 @@ public class ClickHandler {
ItemStack heldItem = player.getMainHandItem(); ItemStack heldItem = player.getMainHandItem();
int button = event.getButton(); int button = event.getButton();
if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
if ((player.getMainHandItem()).is(ItemTags.create(new ResourceLocation("target:gun")))) { if ((player.getMainHandItem()).is(ItemTags.create(new ResourceLocation("target:gun")))) {
event.setCanceled(true); event.setCanceled(true);
TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(0, 0)); TargetMod.PACKET_HANDLER.sendToServer(new FireMessage(0, 0));
} }
@ -85,7 +82,7 @@ public class ClickHandler {
@SubscribeEvent @SubscribeEvent
public static void onKeyPressed(InputEvent.Key event) { public static void onKeyPressed(InputEvent.Key event) {
if(!isInGame()) { if (!isInGame()) {
return; return;
} }
@ -96,24 +93,25 @@ public class ClickHandler {
Minecraft mc = Minecraft.getInstance(); Minecraft mc = Minecraft.getInstance();
Player player = mc.player; Player player = mc.player;
int button = event.getKey(); int button = event.getKey();
if (button == GLFW.GLFW_KEY_D) { CompoundTag persistentData = player.getPersistentData();
player.getPersistentData().putDouble("mover", 1); if (button == GLFW.GLFW_KEY_D) {
} persistentData.putDouble("mover", 1);
if (button == GLFW.GLFW_KEY_A) { }
player.getPersistentData().putDouble("movel", 1); if (button == GLFW.GLFW_KEY_A) {
persistentData.putDouble("movel", 1);
} }
if (button == GLFW.GLFW_KEY_W) { if (button == GLFW.GLFW_KEY_W) {
player.getPersistentData().putDouble("qian", 1); persistentData.putDouble("qian", 1);
} }
if (button == GLFW.GLFW_KEY_W) { if (button == GLFW.GLFW_KEY_W) {
player.getPersistentData().putDouble("tui", 1); persistentData.putDouble("tui", 1);
} }
} }
@SubscribeEvent @SubscribeEvent
public static void onKeyReleased(InputEvent.Key event) { public static void onKeyReleased(InputEvent.Key event) {
if(!isInGame()) { if (!isInGame()) {
return; return;
} }
@ -124,18 +122,19 @@ public class ClickHandler {
return; return;
} }
int button = event.getKey(); int button = event.getKey();
if (button == GLFW.GLFW_KEY_D) { CompoundTag persistentData = player.getPersistentData();
player.getPersistentData().putDouble("mover", 0); if (button == GLFW.GLFW_KEY_D) {
persistentData.putDouble("mover", 0);
} }
if (button == GLFW.GLFW_KEY_A) { if (button == GLFW.GLFW_KEY_A) {
player.getPersistentData().putDouble("movel", 0); persistentData.putDouble("movel", 0);
} }
if (button == GLFW.GLFW_KEY_W) { if (button == GLFW.GLFW_KEY_W) {
player.getPersistentData().putDouble("qian", 0); persistentData.putDouble("qian", 0);
} }
if (button == GLFW.GLFW_KEY_W) { if (button == GLFW.GLFW_KEY_W) {
player.getPersistentData().putDouble("tui", 0); persistentData.putDouble("tui", 0);
} }
} }
} }

View file

@ -1,18 +1,14 @@
package net.mcreator.target.client; package net.mcreator.target.client;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.world.item.ItemStack; import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGuiOverlayEvent; import net.minecraftforge.client.event.RenderGuiOverlayEvent;
import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay; import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraft.tags.ItemTags;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.network.TargetModVariables;
@Mod.EventBusSubscriber(modid = "target", value = Dist.CLIENT) @Mod.EventBusSubscriber(modid = "target", value = Dist.CLIENT)
public class CrossHairHandler { public class CrossHairHandler {
@SubscribeEvent @SubscribeEvent
@ -30,11 +26,8 @@ public class CrossHairHandler {
return; return;
} }
ItemStack heldItem = mc.player.getMainHandItem();
{
if ((mc.player.getMainHandItem()).is(ItemTags.create(new ResourceLocation("target:gun")))) { if ((mc.player.getMainHandItem()).is(ItemTags.create(new ResourceLocation("target:gun")))) {
event.setCanceled(true); event.setCanceled(true);
}
} }
} }
} }

View file

@ -1,18 +1,14 @@
package net.mcreator.target.client; package net.mcreator.target.client;
import net.minecraft.world.item.Item;
import net.minecraft.world.scores.Objective;
import net.minecraft.client.CameraType;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.entity.player.Player;
import net.minecraft.tags.ItemTags;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.client.event.ViewportEvent; import net.minecraftforge.client.event.ViewportEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import com.ibm.icu.impl.coll.BOCSU;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
public class RenderHandler { public class RenderHandler {
@ -25,21 +21,16 @@ public class RenderHandler {
Player player = Minecraft.getInstance().player; Player player = Minecraft.getInstance().player;
Minecraft mc = Minecraft.getInstance(); if (player != null) {
ItemStack stack = player.getMainHandItem();
if (player != null) { double p = player.getPersistentData().getDouble("zoompos");
ItemStack stack = player.getMainHandItem(); double zoom = stack.getOrCreateTag().getDouble("zoom");
double p = 0; if (stack.is(ItemTags.create(new ResourceLocation("target:gun")))) {
double zoom = 0; event.setFOV(event.getFOV() / (1.0 + p * (zoom - 1)));
player.getPersistentData().putDouble("fov", event.getFOV());
p = player.getPersistentData().getDouble("zoompos"); }
zoom = stack.getOrCreateTag().getDouble("zoom"); }
if (stack.is(ItemTags.create(new ResourceLocation("target:gun")))) {
event.setFOV(event.getFOV() / (1.0 + p * (zoom - 1)));
player.getPersistentData().putDouble("fov", event.getFOV());
}
}
} }
} }

View file

@ -1,94 +1,90 @@
package net.mcreator.target.client.gui; package net.mcreator.target.client.gui;
import net.minecraft.world.level.Level; import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.network.chat.Component;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.GuiGraphics;
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
import net.mcreator.target.network.GunRecycleGuiButtonMessage;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.network.GunRecycleGuiButtonMessage;
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import java.util.HashMap; import java.util.HashMap;
import com.mojang.blaze3d.systems.RenderSystem;
public class GunRecycleGuiScreen extends AbstractContainerScreen<GunRecycleGuiMenu> { public class GunRecycleGuiScreen extends AbstractContainerScreen<GunRecycleGuiMenu> {
private final static HashMap<String, Object> guistate = GunRecycleGuiMenu.guistate; private final static HashMap<String, Object> guistate = GunRecycleGuiMenu.guistate;
private final Level world; private final Level world;
private final int x, y, z; private final int x, y, z;
private final Player entity; private final Player entity;
Button button_dismantle; Button button_dismantle;
public GunRecycleGuiScreen(GunRecycleGuiMenu container, Inventory inventory, Component text) { public GunRecycleGuiScreen(GunRecycleGuiMenu container, Inventory inventory, Component text) {
super(container, inventory, text); super(container, inventory, text);
this.world = container.world; this.world = container.world;
this.x = container.x; this.x = container.x;
this.y = container.y; this.y = container.y;
this.z = container.z; this.z = container.z;
this.entity = container.entity; this.entity = container.entity;
this.imageWidth = 176; this.imageWidth = 176;
this.imageHeight = 166; this.imageHeight = 166;
} }
private static final ResourceLocation texture = new ResourceLocation("target:textures/screens/gun_recycle_gui.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/screens/gun_recycle_gui.png");
@Override @Override
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) {
this.renderBackground(guiGraphics); this.renderBackground(guiGraphics);
super.render(guiGraphics, mouseX, mouseY, partialTicks); super.render(guiGraphics, mouseX, mouseY, partialTicks);
this.renderTooltip(guiGraphics, mouseX, mouseY); this.renderTooltip(guiGraphics, mouseX, mouseY);
if (mouseX > leftPos + 58 && mouseX < leftPos + 116 && mouseY > topPos + 54 && mouseY < topPos + 78) if (mouseX > leftPos + 58 && mouseX < leftPos + 116 && mouseY > topPos + 54 && mouseY < topPos + 78)
guiGraphics.renderTooltip(font, Component.translatable("gui.target.gun_recycle_gui.tooltip_if_guns_level_10you_will_get"), mouseX, mouseY); guiGraphics.renderTooltip(font, Component.translatable("gui.target.gun_recycle_gui.tooltip_if_guns_level_10you_will_get"), mouseX, mouseY);
} }
@Override @Override
protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int gx, int gy) { protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int gx, int gy) {
RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.setShaderColor(1, 1, 1, 1);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
guiGraphics.blit(texture, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight); guiGraphics.blit(texture, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight);
RenderSystem.disableBlend(); RenderSystem.disableBlend();
} }
@Override @Override
public boolean keyPressed(int key, int b, int c) { public boolean keyPressed(int key, int b, int c) {
if (key == 256) { if (key == 256) {
this.minecraft.player.closeContainer(); this.minecraft.player.closeContainer();
return true; return true;
} }
return super.keyPressed(key, b, c); return super.keyPressed(key, b, c);
} }
@Override @Override
public void containerTick() { public void containerTick() {
super.containerTick(); super.containerTick();
} }
@Override @Override
protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) {
guiGraphics.drawString(this.font, Component.translatable("gui.target.gun_recycle_gui.label_gun_recycle"), 6, 6, -12829636, false); guiGraphics.drawString(this.font, Component.translatable("gui.target.gun_recycle_gui.label_gun_recycle"), 6, 6, -12829636, false);
} }
@Override @Override
public void onClose() { public void onClose() {
super.onClose(); super.onClose();
} }
@Override @Override
public void init() { public void init() {
super.init(); super.init();
button_dismantle = Button.builder(Component.translatable("gui.target.gun_recycle_gui.button_dismantle"), e -> { button_dismantle = Button.builder(Component.translatable("gui.target.gun_recycle_gui.button_dismantle"), e -> {
if (true) { TargetMod.PACKET_HANDLER.sendToServer(new GunRecycleGuiButtonMessage(0, x, y, z));
TargetMod.PACKET_HANDLER.sendToServer(new GunRecycleGuiButtonMessage(0, x, y, z)); GunRecycleGuiButtonMessage.handleButtonAction(entity, 0, x, y, z);
GunRecycleGuiButtonMessage.handleButtonAction(entity, 0, x, y, z); }).bounds(this.leftPos + 62, this.topPos + 56, 52, 20).build();
} guistate.put("button:button_dismantle", button_dismantle);
}).bounds(this.leftPos + 62, this.topPos + 56, 52, 20).build(); this.addRenderableWidget(button_dismantle);
guistate.put("button:button_dismantle", button_dismantle); }
this.addRenderableWidget(button_dismantle);
}
} }

View file

@ -1,143 +1,128 @@
package net.mcreator.target.client.gui; package net.mcreator.target.client.gui;
import net.minecraft.world.level.Level; import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.world.entity.player.Player; import net.mcreator.target.TargetMod;
import net.minecraft.world.entity.player.Inventory; import net.mcreator.target.network.MortarGUIButtonMessage;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.network.chat.Component;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.GuiGraphics;
import net.mcreator.target.world.inventory.MortarGUIMenu;
import net.mcreator.target.procedures.MortarAngleProcedure; import net.mcreator.target.procedures.MortarAngleProcedure;
import net.mcreator.target.procedures.MortarPitchProcedure; import net.mcreator.target.procedures.MortarPitchProcedure;
import net.mcreator.target.network.MortarGUIButtonMessage; import net.mcreator.target.world.inventory.MortarGUIMenu;
import net.minecraft.client.gui.GuiGraphics;
import net.mcreator.target.TargetMod; import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import java.util.HashMap; import java.util.HashMap;
import com.mojang.blaze3d.systems.RenderSystem;
public class MortarGUIScreen extends AbstractContainerScreen<MortarGUIMenu> { public class MortarGUIScreen extends AbstractContainerScreen<MortarGUIMenu> {
private final static HashMap<String, Object> guistate = MortarGUIMenu.guistate; private final static HashMap<String, Object> guistate = MortarGUIMenu.guistate;
private final Level world; private final Level world;
private final int x, y, z; private final int x, y, z;
private final Player entity; private final Player entity;
Button button_zeng_da_yang_jiao; Button button_zeng_da_yang_jiao;
Button button_empty; Button button_empty;
Button button_10; Button button_10;
Button button_101; Button button_101;
Button button_05; Button button_05;
Button button_051; Button button_051;
public MortarGUIScreen(MortarGUIMenu container, Inventory inventory, Component text) { public MortarGUIScreen(MortarGUIMenu container, Inventory inventory, Component text) {
super(container, inventory, text); super(container, inventory, text);
this.world = container.world; this.world = container.world;
this.x = container.x; this.x = container.x;
this.y = container.y; this.y = container.y;
this.z = container.z; this.z = container.z;
this.entity = container.entity; this.entity = container.entity;
this.imageWidth = 0; this.imageWidth = 0;
this.imageHeight = 166; this.imageHeight = 166;
} }
private static final ResourceLocation texture = new ResourceLocation("target:textures/screens/mortar_gui.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/screens/mortar_gui.png");
@Override @Override
public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) {
this.renderBackground(guiGraphics); this.renderBackground(guiGraphics);
super.render(guiGraphics, mouseX, mouseY, partialTicks); super.render(guiGraphics, mouseX, mouseY, partialTicks);
this.renderTooltip(guiGraphics, mouseX, mouseY); this.renderTooltip(guiGraphics, mouseX, mouseY);
} }
@Override @Override
protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int gx, int gy) { protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int gx, int gy) {
RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.setShaderColor(1, 1, 1, 1);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
guiGraphics.blit(texture, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight); guiGraphics.blit(texture, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight);
RenderSystem.disableBlend(); RenderSystem.disableBlend();
} }
@Override @Override
public boolean keyPressed(int key, int b, int c) { public boolean keyPressed(int key, int b, int c) {
if (key == 256) { if (key == 256) {
this.minecraft.player.closeContainer(); this.minecraft.player.closeContainer();
return true; return true;
} }
return super.keyPressed(key, b, c); return super.keyPressed(key, b, c);
} }
@Override @Override
public void containerTick() { public void containerTick() {
super.containerTick(); super.containerTick();
} }
@Override @Override
protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) {
guiGraphics.drawString(this.font, guiGraphics.drawString(this.font,
MortarAngleProcedure.execute(entity), -18, 98, -1, false); MortarAngleProcedure.execute(entity), -18, 98, -1, false);
guiGraphics.drawString(this.font, Component.literal("Range:" + (int) RangeHelper.getRange(MortarPitchProcedure.execute(entity))), -18, 108, -16711885, false); guiGraphics.drawString(this.font, Component.literal("Range:" + (int) RangeHelper.getRange(MortarPitchProcedure.execute(entity))), -18, 108, -16711885, false);
} }
@Override @Override
public void onClose() { public void onClose() {
super.onClose(); super.onClose();
} }
@Override @Override
public void init() { public void init() {
super.init(); super.init();
button_zeng_da_yang_jiao = Button.builder(Component.translatable("gui.target.mortar_gui.button_zeng_da_yang_jiao"), e -> { button_zeng_da_yang_jiao = Button.builder(Component.translatable("gui.target.mortar_gui.button_zeng_da_yang_jiao"), e -> {
if (true) { TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(0, x, y, z));
TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(0, x, y, z)); MortarGUIButtonMessage.handleButtonAction(entity, 0, x, y, z);
MortarGUIButtonMessage.handleButtonAction(entity, 0, x, y, z); }).bounds(this.leftPos + 42, this.topPos + 124, 29, 20).build();
} guistate.put("button:button_zeng_da_yang_jiao", button_zeng_da_yang_jiao);
}).bounds(this.leftPos + 42, this.topPos + 124, 29, 20).build(); this.addRenderableWidget(button_zeng_da_yang_jiao);
guistate.put("button:button_zeng_da_yang_jiao", button_zeng_da_yang_jiao); button_empty = Button.builder(Component.translatable("gui.target.mortar_gui.button_empty"), e -> {
this.addRenderableWidget(button_zeng_da_yang_jiao); TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(1, x, y, z));
button_empty = Button.builder(Component.translatable("gui.target.mortar_gui.button_empty"), e -> { MortarGUIButtonMessage.handleButtonAction(entity, 1, x, y, z);
if (true) { }).bounds(this.leftPos + -73, this.topPos + 124, 30, 20).build();
TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(1, x, y, z)); guistate.put("button:button_empty", button_empty);
MortarGUIButtonMessage.handleButtonAction(entity, 1, x, y, z); this.addRenderableWidget(button_empty);
} button_10 = Button.builder(Component.translatable("gui.target.mortar_gui.button_10"), e -> {
}).bounds(this.leftPos + -73, this.topPos + 124, 30, 20).build(); TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(2, x, y, z));
guistate.put("button:button_empty", button_empty); MortarGUIButtonMessage.handleButtonAction(entity, 2, x, y, z);
this.addRenderableWidget(button_empty); }).bounds(this.leftPos + 43, this.topPos + 151, 28, 20).build();
button_10 = Button.builder(Component.translatable("gui.target.mortar_gui.button_10"), e -> { guistate.put("button:button_10", button_10);
if (true) { this.addRenderableWidget(button_10);
TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(2, x, y, z)); button_101 = Button.builder(Component.translatable("gui.target.mortar_gui.button_101"), e -> {
MortarGUIButtonMessage.handleButtonAction(entity, 2, x, y, z); TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(3, x, y, z));
} MortarGUIButtonMessage.handleButtonAction(entity, 3, x, y, z);
}).bounds(this.leftPos + 43, this.topPos + 151, 28, 20).build(); }).bounds(this.leftPos + -73, this.topPos + 151, 30, 20).build();
guistate.put("button:button_10", button_10); guistate.put("button:button_101", button_101);
this.addRenderableWidget(button_10); this.addRenderableWidget(button_101);
button_101 = Button.builder(Component.translatable("gui.target.mortar_gui.button_101"), e -> { button_05 = Button.builder(Component.translatable("gui.target.mortar_gui.button_05"), e -> {
if (true) { TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(4, x, y, z));
TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(3, x, y, z)); MortarGUIButtonMessage.handleButtonAction(entity, 4, x, y, z);
MortarGUIButtonMessage.handleButtonAction(entity, 3, x, y, z); }).bounds(this.leftPos + -73, this.topPos + 97, 30, 20).build();
} guistate.put("button:button_05", button_05);
}).bounds(this.leftPos + -73, this.topPos + 151, 30, 20).build(); this.addRenderableWidget(button_05);
guistate.put("button:button_101", button_101); button_051 = Button.builder(Component.translatable("gui.target.mortar_gui.button_051"), e -> {
this.addRenderableWidget(button_101); TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(5, x, y, z));
button_05 = Button.builder(Component.translatable("gui.target.mortar_gui.button_05"), e -> { MortarGUIButtonMessage.handleButtonAction(entity, 5, x, y, z);
if (true) { }).bounds(this.leftPos + 42, this.topPos + 97, 29, 20).build();
TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(4, x, y, z)); guistate.put("button:button_051", button_051);
MortarGUIButtonMessage.handleButtonAction(entity, 4, x, y, z); this.addRenderableWidget(button_051);
} }
}).bounds(this.leftPos + -73, this.topPos + 97, 30, 20).build();
guistate.put("button:button_05", button_05);
this.addRenderableWidget(button_05);
button_051 = Button.builder(Component.translatable("gui.target.mortar_gui.button_051"), e -> {
if (true) {
TargetMod.PACKET_HANDLER.sendToServer(new MortarGUIButtonMessage(5, x, y, z));
MortarGUIButtonMessage.handleButtonAction(entity, 5, x, y, z);
}
}).bounds(this.leftPos + 42, this.topPos + 97, 29, 20).build();
guistate.put("button:button_051", button_051);
this.addRenderableWidget(button_051);
}
} }

View file

@ -1,7 +1,7 @@
package net.mcreator.target.client.gui; package net.mcreator.target.client.gui;
public class RangeHelper { public class RangeHelper {
// 发射角度以度为单位需要根据实际情况修改 // 发射角度以度为单位需要根据实际情况修改
public static double getRange(double thetaDegrees) { public static double getRange(double thetaDegrees) {
double initialVelocity = 8.0; // 初始速度 8 m/s double initialVelocity = 8.0; // 初始速度 8 m/s
double thetaRadians = Math.toRadians(thetaDegrees); // 将角度转换为弧度 double thetaRadians = Math.toRadians(thetaDegrees); // 将角度转换为弧度

View file

@ -1,47 +1,42 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.2 // Made with Blockbench 4.9.2
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class ModelGrenade<T extends Entity> extends EntityModel<T> { public class ModelGrenade<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "model_grenade"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "model_grenade"), "main");
public final ModelPart bone; public final ModelPart bone;
public ModelGrenade(ModelPart root) { public ModelGrenade(ModelPart root) {
this.bone = root.getChild("bone"); this.bone = root.getChild("bone");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 24.0F, 0.0F, 0.0F, 0.0F, 1.5708F)); PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 24.0F, 0.0F, 0.0F, 0.0F, 1.5708F));
PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(2, 2).addBox(-0.5F, -0.5F, -23.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 1.5708F, 0.0F)); PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(2, 2).addBox(-0.5F, -0.5F, -23.0F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 1.5708F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16); return LayerDefinition.create(meshdefinition, 16, 16);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,278 +1,273 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.4 // Made with Blockbench 4.9.4
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelbasketball<T extends Entity> extends EntityModel<T> { public class Modelbasketball<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbasketball"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbasketball"), "main");
public final ModelPart bone; public final ModelPart bone;
public Modelbasketball(ModelPart root) { public Modelbasketball(ModelPart root) {
this.bone = root.getChild("bone"); this.bone = root.getChild("bone");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 8.0F, 0.0F)); PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 8.0F, 0.0F));
PartDefinition bone2 = bone.addOrReplaceChild("bone2", PartDefinition bone2 = bone.addOrReplaceChild("bone2",
CubeListBuilder.create().texOffs(48, 50).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 50).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 50) CubeListBuilder.create().texOffs(48, 50).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 50).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 50)
.addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 50).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 49) .addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 50).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 49)
.addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 49).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 48) .addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 49).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 48)
.addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 49).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 49) .addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 49).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 49)
.addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 48).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 46) .addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 48).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 46)
.addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 44).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 42) .addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 44).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 42)
.addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 49).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 49) .addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 49).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 49)
.addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 49).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 49) .addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 49).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 49)
.addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 50).addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 50) .addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 50).addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 50)
.addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 50).addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 50) .addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 50).addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 50)
.addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(51, 1).addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 51) .addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(51, 1).addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 51)
.addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 50).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 44) .addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 50).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 44)
.addBox(1.5F, -1.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 26).addBox(-2.5F, -1.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 44) .addBox(1.5F, -1.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 26).addBox(-2.5F, -1.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 44)
.addBox(1.5F, -1.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 44).addBox(-2.5F, -1.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 1) .addBox(1.5F, -1.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 44).addBox(-2.5F, -1.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 1)
.addBox(-6.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 45).addBox(-6.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 3) .addBox(-6.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 45).addBox(-6.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 3)
.addBox(5.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 5).addBox(5.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 7) .addBox(5.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 5).addBox(5.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 7)
.addBox(-3.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 45).addBox(-3.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 9) .addBox(-3.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 45).addBox(-3.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 9)
.addBox(2.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 11).addBox(2.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 13) .addBox(2.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 11).addBox(2.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 13)
.addBox(4.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 45).addBox(-5.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 15) .addBox(4.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 45).addBox(-5.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 15)
.addBox(4.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 17).addBox(-5.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 19) .addBox(4.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 17).addBox(-5.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 19)
.addBox(4.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 45).addBox(4.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 21) .addBox(4.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 45).addBox(4.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 21)
.addBox(-5.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 23).addBox(-4.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 25) .addBox(-5.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 23).addBox(-4.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 25)
.addBox(-4.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 45).addBox(3.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 27) .addBox(-4.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 45).addBox(3.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 27)
.addBox(3.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 29).addBox(-5.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 24) .addBox(3.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 29).addBox(-5.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 24)
.addBox(1.5F, 0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 26).addBox(-2.5F, 0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 28) .addBox(1.5F, 0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 26).addBox(-2.5F, 0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 28)
.addBox(1.5F, 0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 42).addBox(-2.5F, 0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 30) .addBox(1.5F, 0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 42).addBox(-2.5F, 0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 30)
.addBox(-6.5F, 0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 32).addBox(-6.5F, 0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 34) .addBox(-6.5F, 0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 32).addBox(-6.5F, 0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 34)
.addBox(5.5F, 0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 42).addBox(5.5F, 0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 36) .addBox(5.5F, 0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 42).addBox(5.5F, 0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 36)
.addBox(-3.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 38).addBox(-3.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 40) .addBox(-3.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 38).addBox(-3.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 40)
.addBox(2.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 42).addBox(2.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 43) .addBox(2.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 42).addBox(2.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 43)
.addBox(4.5F, 0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 43).addBox(-5.5F, 0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 43) .addBox(4.5F, 0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 43).addBox(-5.5F, 0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 43)
.addBox(4.5F, 0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 43).addBox(-5.5F, 0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 43) .addBox(4.5F, 0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 43).addBox(-5.5F, 0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 43)
.addBox(4.5F, 0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 43).addBox(4.5F, 0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 43) .addBox(4.5F, 0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 43).addBox(4.5F, 0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 43)
.addBox(-5.5F, 0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 44).addBox(-4.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 44) .addBox(-5.5F, 0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 44).addBox(-4.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 44)
.addBox(-4.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 44).addBox(3.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 44) .addBox(-4.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 44).addBox(3.5F, 0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 44)
.addBox(3.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 44).addBox(-5.5F, 0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(3.5F, 0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 44).addBox(-5.5F, 0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offset(0.0F, 0.0F, 0.0F)); PartPose.offset(0.0F, 0.0F, 0.0F));
PartDefinition cube_r1 = bone2.addOrReplaceChild("cube_r1", PartDefinition cube_r1 = bone2.addOrReplaceChild("cube_r1",
CubeListBuilder.create().texOffs(36, 8).addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 11).addBox(0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 33) CubeListBuilder.create().texOffs(36, 8).addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 11).addBox(0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 33)
.addBox(-1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 6).addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 36) .addBox(-1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 6).addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 36)
.addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 4).addBox(0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 0) .addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 4).addBox(0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 0)
.addBox(-1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 36).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 35) .addBox(-1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 36).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 35)
.addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 29).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 29) .addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 29).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 29)
.addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 6).addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 30) .addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 6).addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 30)
.addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 16).addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 8) .addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 16).addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 8)
.addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 35).addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 35) .addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 35).addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 35)
.addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 35).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 35) .addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 35).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 35)
.addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 35).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 34) .addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 35).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 34)
.addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 34).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 30) .addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 34).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 30)
.addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 34).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 34) .addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 34).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 34)
.addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 34).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 34) .addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 34).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 34)
.addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 33).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 31) .addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 33).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 31)
.addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 29).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 27) .addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 29).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 27)
.addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 33).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 25) .addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 33).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 25)
.addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 23).addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 23).addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-1.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 1.5708F)); PartPose.offsetAndRotation(-1.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 1.5708F));
PartDefinition cube_r2 = bone2.addOrReplaceChild("cube_r2", PartDefinition cube_r2 = bone2.addOrReplaceChild("cube_r2",
CubeListBuilder.create().texOffs(21, 29).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 29).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 30) CubeListBuilder.create().texOffs(21, 29).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 29).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 30)
.addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 2).addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 14) .addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 2).addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 14)
.addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 30).addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 20) .addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 30).addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 20)
.addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 48).addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 47) .addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 48).addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 47)
.addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 47).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 47) .addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 47).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 47)
.addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 47).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 47) .addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 47).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 47)
.addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 47).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 47) .addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 47).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 47)
.addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 47).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 46) .addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 47).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 46)
.addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 46).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 46) .addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 46).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 46)
.addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 46).addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 46) .addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 46).addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 46)
.addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 46).addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 46) .addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 46).addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 46)
.addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 46).addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 43) .addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 46).addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 43)
.addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 41).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 45) .addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 41).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 45)
.addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 35).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 33) .addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 35).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(45, 33)
.addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 17).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 45) .addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 17).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 45)
.addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 1.5708F));
PartDefinition cube_r3 = bone2.addOrReplaceChild("cube_r3", PartDefinition cube_r3 = bone2.addOrReplaceChild("cube_r3",
CubeListBuilder.create().texOffs(15, 29).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 4) CubeListBuilder.create().texOffs(15, 29).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 4)
.addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 0).addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 12) .addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 0).addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 12)
.addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 10).addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 18) .addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 10).addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 18)
.addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 38).addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 33) .addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 38).addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 33)
.addBox(0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 19).addBox(-1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 38) .addBox(0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 19).addBox(-1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 38)
.addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 38).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 38) .addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 38).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 38)
.addBox(0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 38).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 38) .addBox(0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 38).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 38)
.addBox(-1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 38).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 37) .addBox(-1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 38).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 37)
.addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 37).addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 37) .addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 37).addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 37)
.addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 37).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 37) .addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 37).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 37)
.addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 37).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 36) .addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 37).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 36)
.addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 34).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 32) .addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 34).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 32)
.addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 30).addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 36) .addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 30).addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 36)
.addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 28).addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 26) .addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 28).addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 26)
.addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 24).addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 36) .addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 24).addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 36)
.addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 22).addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 20) .addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 22).addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 20)
.addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 18).addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 36) .addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 18).addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 36)
.addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(1.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 1.5708F)); PartPose.offsetAndRotation(1.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 1.5708F));
PartDefinition cube_r4 = bone2.addOrReplaceChild("cube_r4", PartDefinition cube_r4 = bone2.addOrReplaceChild("cube_r4",
CubeListBuilder.create().texOffs(33, 9).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 21).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 15) CubeListBuilder.create().texOffs(33, 9).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 21).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 15)
.addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 31).addBox(-5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 30) .addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 31).addBox(-5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 30)
.addBox(6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 32).addBox(-5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 32) .addBox(6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 32).addBox(-5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 32)
.addBox(6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 3).addBox(-5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 1) .addBox(6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 3).addBox(-5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 1)
.addBox(6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 40).addBox(-4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 38) .addBox(6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 40).addBox(-4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 38)
.addBox(4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 36).addBox(4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 48) .addBox(4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 36).addBox(4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 48)
.addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 34).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 32) .addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 34).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 32)
.addBox(-4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 30).addBox(5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 48) .addBox(-4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 30).addBox(5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 48)
.addBox(5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 28).addBox(-4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 26) .addBox(5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 28).addBox(-4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 26)
.addBox(5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 24).addBox(-4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 48) .addBox(5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 24).addBox(-4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 48)
.addBox(5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 22).addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 20) .addBox(5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 22).addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 20)
.addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 18).addBox(-2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 48) .addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 18).addBox(-2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 48)
.addBox(-2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 16).addBox(6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 14) .addBox(-2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 16).addBox(6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 14)
.addBox(6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 12).addBox(-5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 48) .addBox(6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 12).addBox(-5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 48)
.addBox(-5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 10).addBox(-1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 4) .addBox(-5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 10).addBox(-1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 4)
.addBox(2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 2).addBox(-1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 0) .addBox(2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 2).addBox(-1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(48, 0)
.addBox(2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-1.0F, 0.0F, 0.0F, 1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(-1.0F, 0.0F, 0.0F, 1.5708F, 0.0F, 0.0F));
PartDefinition cube_r5 = bone2.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(21, 33).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartDefinition cube_r5 = bone2.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(21, 33).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.0F, -1.5708F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 0.0F, -1.5708F, 1.5708F));
PartDefinition cube_r6 = bone2.addOrReplaceChild("cube_r6", PartDefinition cube_r6 = bone2.addOrReplaceChild("cube_r6",
CubeListBuilder.create().texOffs(18, 40).addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 40).addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 40) CubeListBuilder.create().texOffs(18, 40).addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 40).addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 40)
.addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 39).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 35) .addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 39).addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 35)
.addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 31).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 31) .addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 31).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 31)
.addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 32).addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 32) .addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 32).addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 32)
.addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 7).addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 33) .addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 7).addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 33)
.addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 7).addBox(1.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 5) .addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 7).addBox(1.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 5)
.addBox(1.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 3).addBox(2.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 27) .addBox(1.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 3).addBox(2.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 27)
.addBox(2.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 1).addBox(2.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 26) .addBox(2.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 1).addBox(2.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 26)
.addBox(1.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 26).addBox(3.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 26) .addBox(1.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 26).addBox(3.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 26)
.addBox(3.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 26).addBox(4.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 26) .addBox(3.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 26).addBox(4.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 26)
.addBox(3.5F, -2.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 25).addBox(3.5F, -2.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 25) .addBox(3.5F, -2.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 25).addBox(3.5F, -2.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 25)
.addBox(3.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 25).addBox(3.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 25) .addBox(3.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 25).addBox(3.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 25)
.addBox(2.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 24).addBox(1.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 22) .addBox(2.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 24).addBox(1.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 22)
.addBox(3.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 20).addBox(2.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 18) .addBox(3.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 20).addBox(2.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 18)
.addBox(1.5F, -4.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 9).addBox(-3.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 11) .addBox(1.5F, -4.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 9).addBox(-3.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 11)
.addBox(-3.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 13).addBox(-4.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 27) .addBox(-3.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 13).addBox(-4.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 27)
.addBox(-4.5F, -2.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 15).addBox(-4.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 17) .addBox(-4.5F, -2.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 15).addBox(-4.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 17)
.addBox(-3.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 19).addBox(-3.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 27) .addBox(-3.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 19).addBox(-3.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 27)
.addBox(-4.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 27).addBox(-4.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 21) .addBox(-4.5F, -1.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 27).addBox(-4.5F, -1.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 21)
.addBox(-2.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 23).addBox(-2.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 25) .addBox(-2.5F, -3.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 23).addBox(-2.5F, -3.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 25)
.addBox(-2.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 27).addBox(-2.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 28) .addBox(-2.5F, -2.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 27).addBox(-2.5F, -1.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 28)
.addBox(-2.5F, -4.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 28).addBox(-3.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 28) .addBox(-2.5F, -4.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 28).addBox(-3.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 28)
.addBox(-4.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 28).addBox(-4.5F, -2.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 28) .addBox(-4.5F, -3.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 28).addBox(-4.5F, -2.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 28)
.addBox(-5.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 30).addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 33) .addBox(-5.5F, -1.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 30).addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 33)
.addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 39).addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 31) .addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 39).addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 31)
.addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 29).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 27) .addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 29).addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 27)
.addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 39).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 25) .addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 39).addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 25)
.addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 23).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 21) .addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 23).addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 21)
.addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 39).addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 19) .addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 39).addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 19)
.addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 17).addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 15) .addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 17).addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 15)
.addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 39).addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 13) .addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 39).addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 13)
.addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 11).addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 9) .addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 11).addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 9)
.addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 39).addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 7) .addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 39).addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 7)
.addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.0F, -1.0F, 1.5708F, 0.0F, 0.0F));
PartDefinition cube_r7 = bone2.addOrReplaceChild("cube_r7", PartDefinition cube_r7 = bone2.addOrReplaceChild("cube_r7",
CubeListBuilder.create().texOffs(15, 31).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 28).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 32) CubeListBuilder.create().texOffs(15, 31).addBox(-6.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 28).addBox(5.5F, -0.5F, -1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 32)
.addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 31).addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 5) .addBox(-6.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 31).addBox(5.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 5)
.addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 32).addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 22) .addBox(-6.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 32).addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 22)
.addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 13).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 20) .addBox(1.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 13).addBox(-0.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 20)
.addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 18).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 16) .addBox(-2.5F, -0.5F, 5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 18).addBox(1.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 16)
.addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 12).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 24) .addBox(-0.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 12).addBox(-2.5F, -0.5F, -6.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 24)
.addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 22).addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 42) .addBox(-6.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 22).addBox(-6.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 42)
.addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 10).addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 8) .addBox(5.5F, -0.5F, 1.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 10).addBox(5.5F, -0.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 8)
.addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 6).addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 42) .addBox(-3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 6).addBox(-3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 42)
.addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 4).addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 2) .addBox(2.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 4).addBox(2.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 2)
.addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 0).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 42) .addBox(4.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(42, 0).addBox(-5.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 42)
.addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 41).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 41) .addBox(4.5F, -0.5F, 2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(39, 41).addBox(-5.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(33, 41)
.addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 41).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 41) .addBox(4.5F, -0.5F, 3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(27, 41).addBox(4.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 41)
.addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 41).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 41) .addBox(-5.5F, -0.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 41).addBox(-4.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 41)
.addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 41).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 40) .addBox(-4.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 41).addBox(3.5F, -0.5F, 4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(36, 40)
.addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 40).addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(3.5F, -0.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(30, 40).addBox(-5.5F, -0.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 1.0F, 1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.0F, 1.0F, 1.5708F, 0.0F, 0.0F));
PartDefinition cube_r8 = bone2.addOrReplaceChild("cube_r8", PartDefinition cube_r8 = bone2.addOrReplaceChild("cube_r8",
CubeListBuilder.create().texOffs(9, 7).addBox(1.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 5).addBox(1.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 3) CubeListBuilder.create().texOffs(9, 7).addBox(1.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 5).addBox(1.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 3)
.addBox(0.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 9).addBox(0.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 1) .addBox(0.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 9).addBox(0.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 1)
.addBox(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 8).addBox(1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 8) .addBox(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 8).addBox(1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 8)
.addBox(-1.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 7).addBox(-1.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 6) .addBox(-1.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 7).addBox(-1.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 6)
.addBox(-2.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 4).addBox(-1.0F, -1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 2) .addBox(-2.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 4).addBox(-1.0F, -1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 2)
.addBox(-1.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 0).addBox(-1.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 6) .addBox(-1.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 0).addBox(-1.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 6)
.addBox(-1.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 5).addBox(0.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 4) .addBox(-1.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 5).addBox(0.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 4)
.addBox(1.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 3).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 1) .addBox(1.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 3).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 1)
.addBox(0.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 2).addBox(1.0F, 1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 14) .addBox(0.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 2).addBox(1.0F, 1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 14)
.addBox(5.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 14).addBox(5.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 13) .addBox(5.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 14).addBox(5.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 13)
.addBox(6.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 13).addBox(6.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 12) .addBox(6.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 13).addBox(6.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 12)
.addBox(6.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 10).addBox(5.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 8) .addBox(6.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 10).addBox(5.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 8)
.addBox(7.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 6).addBox(7.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 12) .addBox(7.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 6).addBox(7.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 12)
.addBox(8.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 4).addBox(7.0F, -1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 2) .addBox(8.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 4).addBox(7.0F, -1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 2)
.addBox(7.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 0).addBox(7.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 12) .addBox(7.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 0).addBox(7.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 12)
.addBox(7.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 11).addBox(6.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 11) .addBox(7.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 11).addBox(6.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 11)
.addBox(5.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 10).addBox(7.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 10) .addBox(5.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 10).addBox(7.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 10)
.addBox(6.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 9).addBox(5.0F, 1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(6.0F, 0.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 9).addBox(5.0F, 1.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-3.5F, 3.5F, -3.5F, -1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(-3.5F, 3.5F, -3.5F, -1.5708F, 0.0F, 0.0F));
PartDefinition cube_r9 = bone2.addOrReplaceChild("cube_r9", PartDefinition cube_r9 = bone2.addOrReplaceChild("cube_r9",
CubeListBuilder.create().texOffs(0, 18).addBox(-2.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 17).addBox(-2.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 17) CubeListBuilder.create().texOffs(0, 18).addBox(-2.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 17).addBox(-2.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 17)
.addBox(-1.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 17).addBox(-1.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 16) .addBox(-1.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 17).addBox(-1.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 16)
.addBox(-1.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 16).addBox(-2.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 16) .addBox(-1.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 16).addBox(-2.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 16)
.addBox(0.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 15).addBox(0.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 13) .addBox(0.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 15).addBox(0.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 13)
.addBox(1.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 11).addBox(0.0F, -1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 9) .addBox(1.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 11).addBox(0.0F, -1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 9)
.addBox(0.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 15).addBox(0.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 7) .addBox(0.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 15).addBox(0.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 7)
.addBox(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 5).addBox(-1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 3) .addBox(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 5).addBox(-1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 3)
.addBox(-2.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 15).addBox(0.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 1) .addBox(-2.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 15).addBox(0.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 1)
.addBox(-1.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 14).addBox(-2.0F, 1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 20) .addBox(-1.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 14).addBox(-2.0F, 1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 20)
.addBox(-6.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 20).addBox(-6.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 20) .addBox(-6.0F, -2.0F, -2.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 20).addBox(-6.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 20)
.addBox(-7.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 19).addBox(-7.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 19) .addBox(-7.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 19).addBox(-7.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 19)
.addBox(-7.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 19).addBox(-6.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 18) .addBox(-7.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 19).addBox(-6.0F, 0.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 18)
.addBox(-8.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 16).addBox(-8.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 14) .addBox(-8.0F, -1.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 16).addBox(-8.0F, -2.0F, -1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 14)
.addBox(-9.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 12).addBox(-8.0F, -1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 18) .addBox(-9.0F, -2.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 12).addBox(-8.0F, -1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 18)
.addBox(-8.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 10).addBox(-8.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 8) .addBox(-8.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 10).addBox(-8.0F, -2.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 8)
.addBox(-8.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 6).addBox(-7.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 18) .addBox(-8.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 6).addBox(-7.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 18)
.addBox(-6.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 4).addBox(-8.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 2) .addBox(-6.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 4).addBox(-8.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 2)
.addBox(-7.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 0).addBox(-6.0F, 1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(-7.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 0).addBox(-6.0F, 1.0F, 1.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(3.5F, 3.5F, 3.5F, 1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(3.5F, 3.5F, 3.5F, 1.5708F, 0.0F, 0.0F));
PartDefinition cube_r10 = bone2.addOrReplaceChild("cube_r10", PartDefinition cube_r10 = bone2.addOrReplaceChild("cube_r10",
CubeListBuilder.create().texOffs(12, 22).addBox(-2.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 22).addBox(-2.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 22) CubeListBuilder.create().texOffs(12, 22).addBox(-2.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 22).addBox(-2.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 22)
.addBox(-3.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 21).addBox(-3.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 19) .addBox(-3.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 21).addBox(-3.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 19)
.addBox(-3.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 17).addBox(-2.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 15) .addBox(-3.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 17).addBox(-2.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 15)
.addBox(-4.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 21).addBox(-4.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 13) .addBox(-4.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 21).addBox(-4.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 13)
.addBox(-5.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 11).addBox(-4.5F, -2.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 9) .addBox(-5.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 11).addBox(-4.5F, -2.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 9)
.addBox(-4.5F, -2.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 21).addBox(-4.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 7) .addBox(-4.5F, -2.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 21).addBox(-4.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 7)
.addBox(-4.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 5).addBox(-3.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 3) .addBox(-4.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 5).addBox(-3.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 3)
.addBox(-2.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 21).addBox(-4.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 1) .addBox(-2.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 21).addBox(-4.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 1)
.addBox(-3.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 20).addBox(-2.5F, -4.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 24) .addBox(-3.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 20).addBox(-2.5F, -4.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 24)
.addBox(1.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 16).addBox(1.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 14) .addBox(1.5F, -1.5F, -5.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 16).addBox(1.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 14)
.addBox(2.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 12).addBox(2.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 24) .addBox(2.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 12).addBox(2.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(12, 24)
.addBox(2.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 10).addBox(1.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 8) .addBox(2.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 10).addBox(1.5F, -3.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 8)
.addBox(3.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 6).addBox(3.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 24) .addBox(3.5F, -2.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 6).addBox(3.5F, -1.5F, -4.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 24)
.addBox(4.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 4).addBox(3.5F, -2.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 2) .addBox(4.5F, -1.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 4).addBox(3.5F, -2.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 2)
.addBox(3.5F, -2.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 0).addBox(3.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 24) .addBox(3.5F, -2.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(24, 0).addBox(3.5F, -1.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 24)
.addBox(3.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 23).addBox(2.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 23) .addBox(3.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(21, 23).addBox(2.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(15, 23)
.addBox(1.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 23).addBox(3.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 23) .addBox(1.5F, -3.5F, -3.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(9, 23).addBox(3.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(3, 23)
.addBox(2.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 22).addBox(1.5F, -4.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(2.5F, -3.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(18, 22).addBox(1.5F, -4.5F, -2.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 1.0F, -1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.0F, 1.0F, -1.5708F, 0.0F, 0.0F));
PartDefinition cube_r11 = bone2.addOrReplaceChild("cube_r11", CubeListBuilder.create().texOffs(45, 31).addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartDefinition cube_r11 = bone2.addOrReplaceChild("cube_r11", CubeListBuilder.create().texOffs(45, 31).addBox(5.5F, -0.5F, 0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -1.0F, 0.0F, 0.0F, -1.5708F, 1.5708F)); PartPose.offsetAndRotation(0.0F, -1.0F, 0.0F, 0.0F, -1.5708F, 1.5708F));
return LayerDefinition.create(meshdefinition, 64, 64); return LayerDefinition.create(meshdefinition, 64, 64);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,90 +1,85 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.4 // Made with Blockbench 4.9.4
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelbocekarrow<T extends Entity> extends EntityModel<T> { public class Modelbocekarrow<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbocekarrow"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbocekarrow"), "main");
public final ModelPart jian; public final ModelPart jian;
public Modelbocekarrow(ModelPart root) { public Modelbocekarrow(ModelPart root) {
this.jian = root.getChild("jian"); this.jian = root.getChild("jian");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition jian = partdefinition.addOrReplaceChild("jian", CubeListBuilder.create().texOffs(0, 0).addBox(-0.068F, -0.068F, -12.7575F, 0.1361F, 0.1361F, 25.515F, new CubeDeformation(0.0F)), PartDefinition jian = partdefinition.addOrReplaceChild("jian", CubeListBuilder.create().texOffs(0, 0).addBox(-0.068F, -0.068F, -12.7575F, 0.1361F, 0.1361F, 25.515F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.0011F, 5.3718F, -0.0975F, -1.5708F, 0.0F, 0.0F)); PartPose.offsetAndRotation(-0.0011F, 5.3718F, -0.0975F, -1.5708F, 0.0F, 0.0F));
PartDefinition bone5 = jian.addOrReplaceChild("bone5", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, -12.0507F)); PartDefinition bone5 = jian.addOrReplaceChild("bone5", CubeListBuilder.create(), PartPose.offset(0.0F, 0.0F, -12.0507F));
PartDefinition cube_r1 = bone5.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r1 = bone5.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F));
PartDefinition cube_r2 = bone5.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)), PartDefinition cube_r2 = bone5.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F));
PartDefinition bone6 = jian.addOrReplaceChild("bone6", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -12.0507F, 0.0F, 0.0F, 1.5708F)); PartDefinition bone6 = jian.addOrReplaceChild("bone6", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -12.0507F, 0.0F, 0.0F, 1.5708F));
PartDefinition cube_r3 = bone6.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r3 = bone6.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F));
PartDefinition cube_r4 = bone6.addOrReplaceChild("cube_r4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)), PartDefinition cube_r4 = bone6.addOrReplaceChild("cube_r4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F));
PartDefinition bone7 = jian.addOrReplaceChild("bone7", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -12.0507F, 0.0F, 0.0F, -3.1416F)); PartDefinition bone7 = jian.addOrReplaceChild("bone7", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -12.0507F, 0.0F, 0.0F, -3.1416F));
PartDefinition cube_r5 = bone7.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r5 = bone7.addOrReplaceChild("cube_r5", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F));
PartDefinition cube_r6 = bone7.addOrReplaceChild("cube_r6", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)), PartDefinition cube_r6 = bone7.addOrReplaceChild("cube_r6", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F));
PartDefinition bone8 = jian.addOrReplaceChild("bone8", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -12.0507F, 0.0F, 0.0F, -1.5708F)); PartDefinition bone8 = jian.addOrReplaceChild("bone8", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, -12.0507F, 0.0F, 0.0F, -1.5708F));
PartDefinition cube_r7 = bone8.addOrReplaceChild("cube_r7", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r7 = bone8.addOrReplaceChild("cube_r7", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.2381F, -0.5783F, 0.068F, 0.2041F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.504F, 0.3134F, 2.0813F, 0.0F, 0.0F));
PartDefinition cube_r8 = bone8.addOrReplaceChild("cube_r8", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)), PartDefinition cube_r8 = bone8.addOrReplaceChild("cube_r8", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.7144F, 0.068F, 0.2041F, 1.1567F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.3674F, 0.0F, 0.5105F, 0.0F, 0.0F));
PartDefinition bone10 = jian.addOrReplaceChild("bone10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 3.1979F, 0.068F, 0.4763F, 1.3948F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 7.6545F)); PartDefinition bone10 = jian.addOrReplaceChild("bone10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 3.1979F, 0.068F, 0.4763F, 1.3948F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 7.6545F));
PartDefinition cube_r9 = bone10.addOrReplaceChild("cube_r9", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 0.034F, 0.068F, 0.1361F, 0.8845F, new CubeDeformation(0.0F)), PartDefinition cube_r9 = bone10.addOrReplaceChild("cube_r9", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 0.034F, 0.068F, 0.1361F, 0.8845F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.4145F, 2.7282F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.4145F, 2.7282F, 0.5803F, 0.0F, 0.0F));
PartDefinition cube_r10 = bone10.addOrReplaceChild("cube_r10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.4252F, 0.068F, 0.1361F, 0.6804F, new CubeDeformation(0.0F)), PartDefinition cube_r10 = bone10.addOrReplaceChild("cube_r10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.068F, -0.4252F, 0.068F, 0.1361F, 0.6804F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2337F, 3.0964F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.2337F, 3.0964F, 0.5803F, 0.0F, 0.0F));
PartDefinition cube_r11 = bone10.addOrReplaceChild("cube_r11", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 0.2381F, -0.2211F, 0.068F, 0.1361F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r11 = bone10.addOrReplaceChild("cube_r11", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 0.2381F, -0.2211F, 0.068F, 0.1361F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.376F, 3.0032F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.376F, 3.0032F, 0.5803F, 0.0F, 0.0F));
PartDefinition bone3 = jian.addOrReplaceChild("bone3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 3.1979F, 0.068F, 0.4763F, 1.3948F, new CubeDeformation(0.0F)), PartDefinition bone3 = jian.addOrReplaceChild("bone3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 3.1979F, 0.068F, 0.4763F, 1.3948F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 7.6545F, 0.0F, 0.0F, 2.138F)); PartPose.offsetAndRotation(0.0F, 0.0F, 7.6545F, 0.0F, 0.0F, 2.138F));
PartDefinition cube_r12 = bone3.addOrReplaceChild("cube_r12", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.1531F, 2.623F, 0.068F, 0.1361F, 0.8845F, new CubeDeformation(0.0F)), PartDefinition cube_r12 = bone3.addOrReplaceChild("cube_r12", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.1531F, 2.623F, 0.068F, 0.1361F, 0.8845F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.4145F, -0.3677F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.4145F, -0.3677F, 0.5803F, 0.0F, 0.0F));
PartDefinition cube_r13 = bone3.addOrReplaceChild("cube_r13", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.6294F, 2.1637F, 0.068F, 0.1361F, 0.6804F, new CubeDeformation(0.0F)), PartDefinition cube_r13 = bone3.addOrReplaceChild("cube_r13", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.6294F, 2.1637F, 0.068F, 0.1361F, 0.6804F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2337F, 0.0006F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.2337F, 0.0006F, 0.5803F, 0.0F, 0.0F));
PartDefinition cube_r14 = bone3.addOrReplaceChild("cube_r14", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.9356F, 2.3679F, 0.068F, 0.1361F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r14 = bone3.addOrReplaceChild("cube_r14", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.9356F, 2.3679F, 0.068F, 0.1361F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.376F, -0.0927F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.376F, -0.0927F, 0.5803F, 0.0F, 0.0F));
PartDefinition bone4 = jian.addOrReplaceChild("bone4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 3.1979F, 0.068F, 0.4763F, 1.3948F, new CubeDeformation(0.0F)), PartDefinition bone4 = jian.addOrReplaceChild("bone4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, -0.5443F, 3.1979F, 0.068F, 0.4763F, 1.3948F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 7.6545F, 0.0F, 0.0F, -2.0944F)); PartPose.offsetAndRotation(0.0F, 0.0F, 7.6545F, 0.0F, 0.0F, -2.0944F));
PartDefinition cube_r15 = bone4.addOrReplaceChild("cube_r15", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.1531F, 2.623F, 0.068F, 0.1361F, 0.8845F, new CubeDeformation(0.0F)), PartDefinition cube_r15 = bone4.addOrReplaceChild("cube_r15", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.1531F, 2.623F, 0.068F, 0.1361F, 0.8845F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.4145F, -0.3677F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.4145F, -0.3677F, 0.5803F, 0.0F, 0.0F));
PartDefinition cube_r16 = bone4.addOrReplaceChild("cube_r16", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.6294F, 2.1637F, 0.068F, 0.1361F, 0.6804F, new CubeDeformation(0.0F)), PartDefinition cube_r16 = bone4.addOrReplaceChild("cube_r16", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.6294F, 2.1637F, 0.068F, 0.1361F, 0.6804F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2337F, 0.0006F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.2337F, 0.0006F, 0.5803F, 0.0F, 0.0F));
PartDefinition cube_r17 = bone4.addOrReplaceChild("cube_r17", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.9356F, 2.3679F, 0.068F, 0.1361F, 0.4763F, new CubeDeformation(0.0F)), PartDefinition cube_r17 = bone4.addOrReplaceChild("cube_r17", CubeListBuilder.create().texOffs(0, 0).addBox(-0.034F, 1.9356F, 2.3679F, 0.068F, 0.1361F, 0.4763F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.376F, -0.0927F, 0.5803F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.376F, -0.0927F, 0.5803F, 0.0F, 0.0F));
return LayerDefinition.create(meshdefinition, 64, 64); return LayerDefinition.create(meshdefinition, 64, 64);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
jian.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); jian.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,46 +1,41 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.2 // Made with Blockbench 4.9.2
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelbulle<T extends Entity> extends EntityModel<T> { public class Modelbulle<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbulle"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbulle"), "main");
public final ModelPart bone; public final ModelPart bone;
public Modelbulle(ModelPart root) { public Modelbulle(ModelPart root) {
this.bone = root.getChild("bone"); this.bone = root.getChild("bone");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create().texOffs(2, 2).addBox(0.5F, -26.5F, -0.5F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 24.0F, 0.0F)); PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create().texOffs(2, 2).addBox(0.5F, -26.5F, -0.5F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 24.0F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16); return LayerDefinition.create(meshdefinition, 16, 16);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,48 +1,43 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.4 // Made with Blockbench 4.9.4
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelbullet<T extends Entity> extends EntityModel<T> { public class Modelbullet<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbullet"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelbullet"), "main");
public final ModelPart bone; public final ModelPart bone;
public Modelbullet(ModelPart root) { public Modelbullet(ModelPart root) {
this.bone = root.getChild("bone"); this.bone = root.getChild("bone");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 8.0F, 0.0F)); PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 8.0F, 0.0F));
PartDefinition bone2 = bone.addOrReplaceChild("bone2", CubeListBuilder.create(), PartPose.offset(-2.1213F, 8.5F, 0.0F)); PartDefinition bone2 = bone.addOrReplaceChild("bone2", CubeListBuilder.create(), PartPose.offset(-2.1213F, 8.5F, 0.0F));
PartDefinition cube_r1 = bone2.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(1, 1).addBox(-1.5F, -21.5F, -1.5F, 1.0F, 5.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); PartDefinition cube_r1 = bone2.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(1, 1).addBox(-1.5F, -21.5F, -1.5F, 1.0F, 5.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16); return LayerDefinition.create(meshdefinition, 16, 16);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,60 +1,55 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.3 // Made with Blockbench 4.9.3
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelclaymore<T extends Entity> extends EntityModel<T> { public class Modelclaymore<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelclaymore"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelclaymore"), "main");
public final ModelPart claymore; public final ModelPart claymore;
public Modelclaymore(ModelPart root) { public Modelclaymore(ModelPart root) {
this.claymore = root.getChild("claymore"); this.claymore = root.getChild("claymore");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition claymore = partdefinition.addOrReplaceChild("claymore", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); PartDefinition claymore = partdefinition.addOrReplaceChild("claymore", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F));
PartDefinition bone = claymore.addOrReplaceChild("bone", PartDefinition bone = claymore.addOrReplaceChild("bone",
CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -7.75F, -0.5F, 7.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 14).addBox(-2.0F, -8.0F, 0.0F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(14, 7) CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -7.75F, -0.5F, 7.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 14).addBox(-2.0F, -8.0F, 0.0F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(14, 7)
.addBox(2.0F, -8.75F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 7).addBox(-3.0F, -8.75F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(2.0F, -8.75F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 7).addBox(-3.0F, -8.75F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 3.1416F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 3.1416F, 0.0F));
PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(8, 7).addBox(-1.5F, -6.0F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)), PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(8, 7).addBox(-1.5F, -6.0F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(4.3118F, -1.75F, -0.4598F, 0.0F, 0.3927F, 0.0F)); PartPose.offsetAndRotation(4.3118F, -1.75F, -0.4598F, 0.0F, 0.3927F, 0.0F));
PartDefinition cube_r2 = bone.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 7).addBox(0.5F, -6.0F, -1.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)), PartDefinition cube_r2 = bone.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 7).addBox(0.5F, -6.0F, -1.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-5.6184F, -1.75F, 0.0814F, 0.0F, -0.3927F, 0.0F)); PartPose.offsetAndRotation(-5.6184F, -1.75F, 0.0814F, 0.0F, -0.3927F, 0.0F));
PartDefinition cube_r3 = bone.addOrReplaceChild("cube_r3", PartDefinition cube_r3 = bone.addOrReplaceChild("cube_r3",
CubeListBuilder.create().texOffs(12, 13).addBox(0.0F, -0.75F, -0.5F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 15).addBox(6.0F, -0.75F, -0.5F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(12, 13).addBox(0.0F, -0.75F, -0.5F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 15).addBox(6.0F, -0.75F, -0.5F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-3.0F, -2.6F, 0.3F, -0.7854F, 0.0F, 0.0F)); PartPose.offsetAndRotation(-3.0F, -2.6F, 0.3F, -0.7854F, 0.0F, 0.0F));
PartDefinition cube_r4 = bone.addOrReplaceChild("cube_r4", PartDefinition cube_r4 = bone.addOrReplaceChild("cube_r4",
CubeListBuilder.create().texOffs(10, 13).addBox(0.0F, -0.5F, -0.25F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(14, 13).addBox(6.0F, -0.5F, -0.25F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(10, 13).addBox(0.0F, -0.5F, -0.25F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(14, 13).addBox(6.0F, -0.5F, -0.25F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-3.0F, -2.6F, 0.3F, 0.7854F, 0.0F, 0.0F)); PartPose.offsetAndRotation(-3.0F, -2.6F, 0.3F, 0.7854F, 0.0F, 0.0F));
return LayerDefinition.create(meshdefinition, 32, 32); return LayerDefinition.create(meshdefinition, 32, 32);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
claymore.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); claymore.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,52 +1,47 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.2 // Made with Blockbench 4.9.2
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelmissile<T extends Entity> extends EntityModel<T> { public class Modelmissile<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelmissile"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelmissile"), "main");
public final ModelPart bone; public final ModelPart bone;
public Modelmissile(ModelPart root) { public Modelmissile(ModelPart root) {
this.bone = root.getChild("bone"); this.bone = root.getChild("bone");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", PartDefinition bone = partdefinition.addOrReplaceChild("bone",
CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -34.0F, -1.0F, 2.0F, 18.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(8, 8).addBox(-0.5F, -21.0F, -2.0F, 1.0F, 4.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(14, 4) CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -34.0F, -1.0F, 2.0F, 18.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(8, 8).addBox(-0.5F, -21.0F, -2.0F, 1.0F, 4.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(14, 4)
.addBox(-0.5F, -32.0F, -2.0F, 1.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(8, 0).addBox(-0.5F, -36.0F, -0.5F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(-0.5F, -32.0F, -2.0F, 1.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(8, 0).addBox(-0.5F, -36.0F, -0.5F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offset(0.0F, 24.0F, 0.0F)); PartPose.offset(0.0F, 24.0F, 0.0F));
PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1",
CubeListBuilder.create().texOffs(14, 12).addBox(-0.5F, -3.0F, -2.0F, 1.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(8, 0).addBox(-0.5F, 8.0F, -2.0F, 1.0F, 4.0F, 4.0F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(14, 12).addBox(-0.5F, -3.0F, -2.0F, 1.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(8, 0).addBox(-0.5F, 8.0F, -2.0F, 1.0F, 4.0F, 4.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -29.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); PartPose.offsetAndRotation(0.0F, -29.0F, 0.0F, 0.0F, -1.5708F, 0.0F));
return LayerDefinition.create(meshdefinition, 32, 32); return LayerDefinition.create(meshdefinition, 32, 32);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,85 +1,80 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.4 // Made with Blockbench 4.9.4
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelmortar_shell_Converted<T extends Entity> extends EntityModel<T> { public class Modelmortar_shell_Converted<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelmortar_shell_converted"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelmortar_shell_converted"), "main");
public final ModelPart Rockets; public final ModelPart Rockets;
public Modelmortar_shell_Converted(ModelPart root) { public Modelmortar_shell_Converted(ModelPart root) {
this.Rockets = root.getChild("Rockets"); this.Rockets = root.getChild("Rockets");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition Rockets = partdefinition.addOrReplaceChild("Rockets", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -24.7579F, 0.4535F, -1.5708F, 0.0F, 0.0F)); PartDefinition Rockets = partdefinition.addOrReplaceChild("Rockets", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -24.7579F, 0.4535F, -1.5708F, 0.0F, 0.0F));
PartDefinition octagon_r1 = Rockets.addOrReplaceChild("octagon_r1", CubeListBuilder.create().texOffs(6, 3).addBox(-1.3735F, -0.2401F, -1.5325F, 0.7465F, 0.4803F, 1.7605F, new CubeDeformation(0.0F)), PartDefinition octagon_r1 = Rockets.addOrReplaceChild("octagon_r1", CubeListBuilder.create().texOffs(6, 3).addBox(-1.3735F, -0.2401F, -1.5325F, 0.7465F, 0.4803F, 1.7605F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(1.8097F, 0.0033F, 5.8407F, 0.0F, 0.3927F, 0.0F)); PartPose.offsetAndRotation(1.8097F, 0.0033F, 5.8407F, 0.0F, 0.3927F, 0.0F));
PartDefinition octagon_r2 = Rockets.addOrReplaceChild("octagon_r2", CubeListBuilder.create().texOffs(7, 0).addBox(0.627F, -0.2401F, -1.5325F, 0.7465F, 0.4803F, 1.7605F, new CubeDeformation(0.0F)), PartDefinition octagon_r2 = Rockets.addOrReplaceChild("octagon_r2", CubeListBuilder.create().texOffs(7, 0).addBox(0.627F, -0.2401F, -1.5325F, 0.7465F, 0.4803F, 1.7605F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-1.8097F, 0.0033F, 5.8407F, 0.0F, -0.3927F, 0.0F)); PartPose.offsetAndRotation(-1.8097F, 0.0033F, 5.8407F, 0.0F, -0.3927F, 0.0F));
PartDefinition octagon_r3 = Rockets.addOrReplaceChild("octagon_r3", CubeListBuilder.create().texOffs(0, 8).addBox(-0.2401F, 0.627F, -1.4075F, 0.4803F, 0.684F, 1.6355F, new CubeDeformation(0.0F)), PartDefinition octagon_r3 = Rockets.addOrReplaceChild("octagon_r3", CubeListBuilder.create().texOffs(0, 8).addBox(-0.2401F, 0.627F, -1.4075F, 0.4803F, 0.684F, 1.6355F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, 6.5823F, -0.3927F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.0003F, 6.5823F, -0.3927F, 0.0F, 0.0F));
PartDefinition octagon_r4 = Rockets.addOrReplaceChild("octagon_r4", CubeListBuilder.create().texOffs(4, 8).addBox(-0.2401F, -1.311F, -1.4075F, 0.4803F, 0.684F, 1.6355F, new CubeDeformation(0.0F)), PartDefinition octagon_r4 = Rockets.addOrReplaceChild("octagon_r4", CubeListBuilder.create().texOffs(4, 8).addBox(-0.2401F, -1.311F, -1.4075F, 0.4803F, 0.684F, 1.6355F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, 6.5823F, 0.3927F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.0F, -0.0003F, 6.5823F, 0.3927F, 0.0F, 0.0F));
PartDefinition octagon_r5 = Rockets.addOrReplaceChild("octagon_r5", PartDefinition octagon_r5 = Rockets.addOrReplaceChild("octagon_r5",
CubeListBuilder.create().texOffs(2, 0).addBox(-0.57F, -0.2361F, -4.1689F, 1.14F, 0.4722F, 2.85F, new CubeDeformation(0.0F)).texOffs(0, 3).addBox(-0.2361F, -0.57F, -4.1689F, 0.4722F, 1.14F, 2.85F, new CubeDeformation(0.0F)) CubeListBuilder.create().texOffs(2, 0).addBox(-0.57F, -0.2361F, -4.1689F, 1.14F, 0.4722F, 2.85F, new CubeDeformation(0.0F)).texOffs(0, 3).addBox(-0.2361F, -0.57F, -4.1689F, 0.4722F, 1.14F, 2.85F, new CubeDeformation(0.0F))
.texOffs(0, 15).addBox(-0.741F, -0.3069F, -3.4849F, 1.482F, 0.6139F, 1.824F, new CubeDeformation(0.0F)).texOffs(19, 0).addBox(-0.3069F, -0.741F, -3.4849F, 0.6139F, 1.482F, 1.824F, new CubeDeformation(0.0F)).texOffs(13, 13) .texOffs(0, 15).addBox(-0.741F, -0.3069F, -3.4849F, 1.482F, 0.6139F, 1.824F, new CubeDeformation(0.0F)).texOffs(19, 0).addBox(-0.3069F, -0.741F, -3.4849F, 0.6139F, 1.482F, 1.824F, new CubeDeformation(0.0F)).texOffs(13, 13)
.addBox(-0.912F, -0.3778F, -2.3449F, 1.824F, 0.7555F, 7.0265F, new CubeDeformation(0.0F)).texOffs(19, 0).addBox(-0.3778F, -0.912F, -2.3449F, 0.7555F, 1.824F, 7.0265F, new CubeDeformation(0.0F)).texOffs(29, 23) .addBox(-0.912F, -0.3778F, -2.3449F, 1.824F, 0.7555F, 7.0265F, new CubeDeformation(0.0F)).texOffs(19, 0).addBox(-0.3778F, -0.912F, -2.3449F, 0.7555F, 1.824F, 7.0265F, new CubeDeformation(0.0F)).texOffs(29, 23)
.addBox(-0.4486F, -1.083F, -1.3189F, 0.8972F, 2.166F, 5.066F, new CubeDeformation(0.0F)).texOffs(28, 0).addBox(-1.083F, -0.4486F, -1.3189F, 2.166F, 0.8972F, 5.066F, new CubeDeformation(0.0F)).texOffs(29, 30) .addBox(-0.4486F, -1.083F, -1.3189F, 0.8972F, 2.166F, 5.066F, new CubeDeformation(0.0F)).texOffs(28, 0).addBox(-1.083F, -0.4486F, -1.3189F, 2.166F, 0.8972F, 5.066F, new CubeDeformation(0.0F)).texOffs(29, 30)
.addBox(-1.254F, -0.5194F, -0.2929F, 2.508F, 1.0388F, 3.128F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.5194F, -1.254F, -0.2929F, 1.0388F, 2.508F, 3.128F, new CubeDeformation(0.0F)).texOffs(0, 8) .addBox(-1.254F, -0.5194F, -0.2929F, 2.508F, 1.0388F, 3.128F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.5194F, -1.254F, -0.2929F, 1.0388F, 2.508F, 3.128F, new CubeDeformation(0.0F)).texOffs(0, 8)
.addBox(-1.425F, -0.5902F, 0.7331F, 2.85F, 1.1805F, 1.19F, new CubeDeformation(0.0F)).texOffs(7, 5).addBox(-0.5902F, -1.425F, 0.7331F, 1.1805F, 2.85F, 1.19F, new CubeDeformation(0.0F)), .addBox(-1.425F, -0.5902F, 0.7331F, 2.85F, 1.1805F, 1.19F, new CubeDeformation(0.0F)).texOffs(7, 5).addBox(-0.5902F, -1.425F, 0.7331F, 1.1805F, 2.85F, 1.19F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, -0.8848F, 0.0F, 0.0F, -0.3927F)); PartPose.offsetAndRotation(0.0F, -0.0003F, -0.8848F, 0.0F, 0.0F, -0.3927F));
PartDefinition octagon_r6 = Rockets.addOrReplaceChild("octagon_r6", PartDefinition octagon_r6 = Rockets.addOrReplaceChild("octagon_r6",
CubeListBuilder.create().texOffs(4, 0).addBox(-0.57F, -0.2361F, -4.1689F, 1.14F, 0.4722F, 2.85F, new CubeDeformation(0.0F)).texOffs(0, 4).addBox(-0.2361F, -0.57F, -4.1689F, 0.4722F, 1.14F, 2.85F, new CubeDeformation(0.0F)) CubeListBuilder.create().texOffs(4, 0).addBox(-0.57F, -0.2361F, -4.1689F, 1.14F, 0.4722F, 2.85F, new CubeDeformation(0.0F)).texOffs(0, 4).addBox(-0.2361F, -0.57F, -4.1689F, 0.4722F, 1.14F, 2.85F, new CubeDeformation(0.0F))
.texOffs(11, 17).addBox(-0.741F, -0.3069F, -3.4849F, 1.482F, 0.6139F, 1.824F, new CubeDeformation(0.0F)).texOffs(19, 3).addBox(-0.3069F, -0.741F, -3.4849F, 0.6139F, 1.482F, 1.824F, new CubeDeformation(0.0F)).texOffs(0, 15) .texOffs(11, 17).addBox(-0.741F, -0.3069F, -3.4849F, 1.482F, 0.6139F, 1.824F, new CubeDeformation(0.0F)).texOffs(19, 3).addBox(-0.3069F, -0.741F, -3.4849F, 0.6139F, 1.482F, 1.824F, new CubeDeformation(0.0F)).texOffs(0, 15)
.addBox(-0.912F, -0.3778F, -2.3449F, 1.824F, 0.7555F, 7.0265F, new CubeDeformation(0.0F)).texOffs(11, 21).addBox(-0.3778F, -0.912F, -2.3449F, 0.7555F, 1.824F, 7.0265F, new CubeDeformation(0.0F)).texOffs(24, 9) .addBox(-0.912F, -0.3778F, -2.3449F, 1.824F, 0.7555F, 7.0265F, new CubeDeformation(0.0F)).texOffs(11, 21).addBox(-0.3778F, -0.912F, -2.3449F, 0.7555F, 1.824F, 7.0265F, new CubeDeformation(0.0F)).texOffs(24, 9)
.addBox(-1.083F, -0.4486F, -1.3189F, 2.166F, 0.8972F, 5.066F, new CubeDeformation(0.0F)).texOffs(9, 30).addBox(-0.4486F, -1.083F, -1.3189F, 0.8972F, 2.166F, 5.066F, new CubeDeformation(0.0F)).texOffs(0, 31) .addBox(-1.083F, -0.4486F, -1.3189F, 2.166F, 0.8972F, 5.066F, new CubeDeformation(0.0F)).texOffs(9, 30).addBox(-0.4486F, -1.083F, -1.3189F, 0.8972F, 2.166F, 5.066F, new CubeDeformation(0.0F)).texOffs(0, 31)
.addBox(-1.254F, -0.5194F, -0.2929F, 2.508F, 1.0388F, 3.128F, new CubeDeformation(0.0F)).texOffs(33, 6).addBox(-0.5194F, -1.254F, -0.2929F, 1.0388F, 2.508F, 3.128F, new CubeDeformation(0.0F)).texOffs(11, 15) .addBox(-1.254F, -0.5194F, -0.2929F, 2.508F, 1.0388F, 3.128F, new CubeDeformation(0.0F)).texOffs(33, 6).addBox(-0.5194F, -1.254F, -0.2929F, 1.0388F, 2.508F, 3.128F, new CubeDeformation(0.0F)).texOffs(11, 15)
.addBox(-1.425F, -0.5902F, 0.7331F, 2.85F, 1.1805F, 1.19F, new CubeDeformation(0.0F)).texOffs(0, 18).addBox(-0.5902F, -1.425F, 0.7331F, 1.1805F, 2.85F, 1.19F, new CubeDeformation(0.0F)), .addBox(-1.425F, -0.5902F, 0.7331F, 2.85F, 1.1805F, 1.19F, new CubeDeformation(0.0F)).texOffs(0, 18).addBox(-0.5902F, -1.425F, 0.7331F, 1.1805F, 2.85F, 1.19F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.0003F, -0.8848F, 0.0F, 0.0F, 0.3927F)); PartPose.offsetAndRotation(0.0F, -0.0003F, -0.8848F, 0.0F, 0.0F, 0.3927F));
PartDefinition group2 = Rockets.addOrReplaceChild("group2", CubeListBuilder.create(), PartPose.offset(0.0F, -6.0003F, 12.3571F)); PartDefinition group2 = Rockets.addOrReplaceChild("group2", CubeListBuilder.create(), PartPose.offset(0.0F, -6.0003F, 12.3571F));
PartDefinition group3 = Rockets.addOrReplaceChild("group3", CubeListBuilder.create(), PartPose.offset(0.0F, -9.7972F, 8.7641F)); PartDefinition group3 = Rockets.addOrReplaceChild("group3", CubeListBuilder.create(), PartPose.offset(0.0F, -9.7972F, 8.7641F));
PartDefinition octagon_r7 = group3.addOrReplaceChild("octagon_r7", CubeListBuilder.create().texOffs(20, 21).addBox(-0.7434F, -0.308F, 1.7936F, 1.4868F, 0.6158F, 5.7403F, new CubeDeformation(0.0F)).texOffs(28, 15).addBox(-0.3079F, -0.7435F, PartDefinition octagon_r7 = group3.addOrReplaceChild("octagon_r7", CubeListBuilder.create().texOffs(20, 21).addBox(-0.7434F, -0.308F, 1.7936F, 1.4868F, 0.6158F, 5.7403F, new CubeDeformation(0.0F)).texOffs(28, 15).addBox(-0.3079F, -0.7435F,
1.7936F, 0.6159F, 1.4868F, 5.7403F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 9.797F, -9.6489F, 0.0F, 0.0F, -0.3927F)); 1.7936F, 0.6159F, 1.4868F, 5.7403F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 9.797F, -9.6489F, 0.0F, 0.0F, -0.3927F));
PartDefinition octagon_r8 = group3.addOrReplaceChild("octagon_r8", PartDefinition octagon_r8 = group3.addOrReplaceChild("octagon_r8",
CubeListBuilder.create().texOffs(0, 24).addBox(-0.7434F, -0.308F, 1.7936F, 1.4868F, 0.6158F, 5.7403F, new CubeDeformation(0.0F)).texOffs(21, 28).addBox(-0.308F, -0.7435F, 1.7936F, 0.6159F, 1.4868F, 5.7403F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 24).addBox(-0.7434F, -0.308F, 1.7936F, 1.4868F, 0.6158F, 5.7403F, new CubeDeformation(0.0F)).texOffs(21, 28).addBox(-0.308F, -0.7435F, 1.7936F, 0.6159F, 1.4868F, 5.7403F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 9.797F, -9.6489F, 0.0F, 0.0F, 0.3927F)); PartPose.offsetAndRotation(0.0F, 9.797F, -9.6489F, 0.0F, 0.0F, 0.3927F));
PartDefinition group4 = Rockets.addOrReplaceChild("group4", CubeListBuilder.create(), PartPose.offset(0.0F, -9.7972F, 8.7641F)); PartDefinition group4 = Rockets.addOrReplaceChild("group4", CubeListBuilder.create(), PartPose.offset(0.0F, -9.7972F, 8.7641F));
PartDefinition group = Rockets.addOrReplaceChild("group", CubeListBuilder.create(), PartPose.offset(0.0F, 0.2029F, -5.0537F)); PartDefinition group = Rockets.addOrReplaceChild("group", CubeListBuilder.create(), PartPose.offset(0.0F, 0.2029F, -5.0537F));
PartDefinition octagon_r9 = group.addOrReplaceChild("octagon_r9", PartDefinition octagon_r9 = group.addOrReplaceChild("octagon_r9",
CubeListBuilder.create().texOffs(0, 1).addBox(-0.1549F, -0.3739F, -4.905F, 0.3098F, 0.7478F, 1.1522F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.3739F, -0.1549F, -4.905F, 0.7478F, 0.3098F, 1.1522F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 1).addBox(-0.1549F, -0.3739F, -4.905F, 0.3098F, 0.7478F, 1.1522F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.3739F, -0.1549F, -4.905F, 0.7478F, 0.3098F, 1.1522F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2031F, 4.1689F, 0.0F, 0.0F, -0.3927F)); PartPose.offsetAndRotation(0.0F, -0.2031F, 4.1689F, 0.0F, 0.0F, -0.3927F));
PartDefinition octagon_r10 = group.addOrReplaceChild("octagon_r10", PartDefinition octagon_r10 = group.addOrReplaceChild("octagon_r10",
CubeListBuilder.create().texOffs(8, 8).addBox(-0.1549F, -0.3739F, -4.905F, 0.3098F, 0.7478F, 1.1522F, new CubeDeformation(0.0F)).texOffs(0, 1).addBox(-0.3739F, -0.1549F, -4.905F, 0.7478F, 0.3098F, 1.1522F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(8, 8).addBox(-0.1549F, -0.3739F, -4.905F, 0.3098F, 0.7478F, 1.1522F, new CubeDeformation(0.0F)).texOffs(0, 1).addBox(-0.3739F, -0.1549F, -4.905F, 0.7478F, 0.3098F, 1.1522F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, -0.2031F, 4.1689F, 0.0F, 0.0F, 0.3927F)); PartPose.offsetAndRotation(0.0F, -0.2031F, 4.1689F, 0.0F, 0.0F, 0.3927F));
return LayerDefinition.create(meshdefinition, 16, 16); return LayerDefinition.create(meshdefinition, 16, 16);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
Rockets.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); Rockets.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,329 +1,324 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.4 // Made with Blockbench 4.9.4
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modelrpg7_rocket_Converted<T extends Entity> extends EntityModel<T> { public class Modelrpg7_rocket_Converted<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelrpg_7_rocket_converted"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modelrpg_7_rocket_converted"), "main");
public final ModelPart Rockets; public final ModelPart Rockets;
public Modelrpg7_rocket_Converted(ModelPart root) { public Modelrpg7_rocket_Converted(ModelPart root) {
this.Rockets = root.getChild("Rockets"); this.Rockets = root.getChild("Rockets");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition Rockets = partdefinition.addOrReplaceChild("Rockets", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -24.7579F, 0.4535F, -1.5708F, 0.0F, 0.0F)); PartDefinition Rockets = partdefinition.addOrReplaceChild("Rockets", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -24.7579F, 0.4535F, -1.5708F, 0.0F, 0.0F));
PartDefinition Rockets2 = Rockets.addOrReplaceChild("Rockets2", CubeListBuilder.create(), PartPose.offset(0.0F, 0.4579F, -0.0535F)); PartDefinition Rockets2 = Rockets.addOrReplaceChild("Rockets2", CubeListBuilder.create(), PartPose.offset(0.0F, 0.4579F, -0.0535F));
PartDefinition bone23 = Rockets2.addOrReplaceChild("bone23", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -10.1988F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -1.0385F)); PartDefinition bone23 = Rockets2.addOrReplaceChild("bone23", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -10.1988F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -1.0385F));
PartDefinition octagon_r1 = bone23.addOrReplaceChild("octagon_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r1 = bone23.addOrReplaceChild("octagon_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r2 = bone23.addOrReplaceChild("octagon_r2", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r2 = bone23.addOrReplaceChild("octagon_r2", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r3 = bone23.addOrReplaceChild("octagon_r3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r3 = bone23.addOrReplaceChild("octagon_r3", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r4 = bone23.addOrReplaceChild("octagon_r4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r4 = bone23.addOrReplaceChild("octagon_r4", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r5 = bone23.addOrReplaceChild("octagon_r5", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r5 = bone23.addOrReplaceChild("octagon_r5", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r6 = bone23.addOrReplaceChild("octagon_r6", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r6 = bone23.addOrReplaceChild("octagon_r6", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r7 = bone23.addOrReplaceChild("octagon_r7", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)), PartDefinition octagon_r7 = bone23.addOrReplaceChild("octagon_r7", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4007F, -0.9673F, -16.1742F, 0.8014F, 1.0084F, 10.3003F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 5.9754F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone24 = Rockets2.addOrReplaceChild("bone24", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -0.2217F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -10.1912F)); PartDefinition bone24 = Rockets2.addOrReplaceChild("bone24", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -0.2217F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -10.1912F));
PartDefinition octagon_r8 = bone24.addOrReplaceChild("octagon_r8", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r8 = bone24.addOrReplaceChild("octagon_r8", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r9 = bone24.addOrReplaceChild("octagon_r9", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r9 = bone24.addOrReplaceChild("octagon_r9", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r10 = bone24.addOrReplaceChild("octagon_r10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r10 = bone24.addOrReplaceChild("octagon_r10", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r11 = bone24.addOrReplaceChild("octagon_r11", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r11 = bone24.addOrReplaceChild("octagon_r11", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r12 = bone24.addOrReplaceChild("octagon_r12", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r12 = bone24.addOrReplaceChild("octagon_r12", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r13 = bone24.addOrReplaceChild("octagon_r13", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r13 = bone24.addOrReplaceChild("octagon_r13", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r14 = bone24.addOrReplaceChild("octagon_r14", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)), PartDefinition octagon_r14 = bone24.addOrReplaceChild("octagon_r14", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5521F, -1.333F, -21.1812F, 1.1043F, 1.3896F, 1.2137F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 20.9595F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone34 = Rockets2.addOrReplaceChild("bone34", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, 0.3534F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -10.312F)); PartDefinition bone34 = Rockets2.addOrReplaceChild("bone34", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, 0.3534F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -10.312F));
PartDefinition octagon_r15 = bone34.addOrReplaceChild("octagon_r15", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r15 = bone34.addOrReplaceChild("octagon_r15", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r16 = bone34.addOrReplaceChild("octagon_r16", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r16 = bone34.addOrReplaceChild("octagon_r16", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r17 = bone34.addOrReplaceChild("octagon_r17", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r17 = bone34.addOrReplaceChild("octagon_r17", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r18 = bone34.addOrReplaceChild("octagon_r18", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r18 = bone34.addOrReplaceChild("octagon_r18", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r19 = bone34.addOrReplaceChild("octagon_r19", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r19 = bone34.addOrReplaceChild("octagon_r19", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r20 = bone34.addOrReplaceChild("octagon_r20", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r20 = bone34.addOrReplaceChild("octagon_r20", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r21 = bone34.addOrReplaceChild("octagon_r21", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)), PartDefinition octagon_r21 = bone34.addOrReplaceChild("octagon_r21", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6331F, -1.5284F, -23.6787F, 1.2662F, 1.5933F, 0.784F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 24.0321F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone26 = Rockets2.addOrReplaceChild("bone26", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -1.5592F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -9.2513F)); PartDefinition bone26 = Rockets2.addOrReplaceChild("bone26", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -1.5592F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -9.2513F));
PartDefinition octagon_r22 = bone26.addOrReplaceChild("octagon_r22", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r22 = bone26.addOrReplaceChild("octagon_r22", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r23 = bone26.addOrReplaceChild("octagon_r23", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r23 = bone26.addOrReplaceChild("octagon_r23", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r24 = bone26.addOrReplaceChild("octagon_r24", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r24 = bone26.addOrReplaceChild("octagon_r24", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r25 = bone26.addOrReplaceChild("octagon_r25", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r25 = bone26.addOrReplaceChild("octagon_r25", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r26 = bone26.addOrReplaceChild("octagon_r26", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r26 = bone26.addOrReplaceChild("octagon_r26", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r27 = bone26.addOrReplaceChild("octagon_r27", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r27 = bone26.addOrReplaceChild("octagon_r27", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r28 = bone26.addOrReplaceChild("octagon_r28", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)), PartDefinition octagon_r28 = bone26.addOrReplaceChild("octagon_r28", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4638F, -1.1197F, -19.1652F, 0.9276F, 1.1673F, 0.9359F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.606F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone19 = Rockets2.addOrReplaceChild("bone19", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, 0.9259F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -6.0195F)); PartDefinition bone19 = Rockets2.addOrReplaceChild("bone19", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, 0.9259F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -6.0195F));
PartDefinition octagon_r29 = bone19.addOrReplaceChild("octagon_r29", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r29 = bone19.addOrReplaceChild("octagon_r29", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r30 = bone19.addOrReplaceChild("octagon_r30", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r30 = bone19.addOrReplaceChild("octagon_r30", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r31 = bone19.addOrReplaceChild("octagon_r31", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r31 = bone19.addOrReplaceChild("octagon_r31", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r32 = bone19.addOrReplaceChild("octagon_r32", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r32 = bone19.addOrReplaceChild("octagon_r32", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r33 = bone19.addOrReplaceChild("octagon_r33", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r33 = bone19.addOrReplaceChild("octagon_r33", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r34 = bone19.addOrReplaceChild("octagon_r34", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r34 = bone19.addOrReplaceChild("octagon_r34", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r35 = bone19.addOrReplaceChild("octagon_r35", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)), PartDefinition octagon_r35 = bone19.addOrReplaceChild("octagon_r35", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6472F, -1.5624F, -13.8248F, 1.2943F, 1.6287F, 3.5402F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 14.7507F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone33 = bone19.addOrReplaceChild("bone33", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -2.4449F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, -1.0285F)); PartDefinition bone33 = bone19.addOrReplaceChild("bone33", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -2.4449F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, -1.0285F));
PartDefinition octagon_r36 = bone33.addOrReplaceChild("octagon_r36", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r36 = bone33.addOrReplaceChild("octagon_r36", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r37 = bone33.addOrReplaceChild("octagon_r37", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r37 = bone33.addOrReplaceChild("octagon_r37", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r38 = bone33.addOrReplaceChild("octagon_r38", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r38 = bone33.addOrReplaceChild("octagon_r38", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r39 = bone33.addOrReplaceChild("octagon_r39", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r39 = bone33.addOrReplaceChild("octagon_r39", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r40 = bone33.addOrReplaceChild("octagon_r40", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r40 = bone33.addOrReplaceChild("octagon_r40", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r41 = bone33.addOrReplaceChild("octagon_r41", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r41 = bone33.addOrReplaceChild("octagon_r41", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, -1.5708F));
PartDefinition octagon_r42 = bone33.addOrReplaceChild("octagon_r42", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)), PartDefinition octagon_r42 = bone33.addOrReplaceChild("octagon_r42", CubeListBuilder.create().texOffs(0, 0).addBox(-0.6913F, -1.6689F, -19.8031F, 1.3826F, 1.7398F, 4.5899F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 17.3581F, 0.0F, 0.0F, 0.7854F));
PartDefinition bone20 = Rockets2.addOrReplaceChild("bone20", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.2F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, 2.8992F)); PartDefinition bone20 = Rockets2.addOrReplaceChild("bone20", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.2F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, 2.8992F));
PartDefinition octagon_r43 = bone20.addOrReplaceChild("octagon_r43", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r43 = bone20.addOrReplaceChild("octagon_r43", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r44 = bone20.addOrReplaceChild("octagon_r44", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r44 = bone20.addOrReplaceChild("octagon_r44", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r45 = bone20.addOrReplaceChild("octagon_r45", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r45 = bone20.addOrReplaceChild("octagon_r45", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r46 = bone20.addOrReplaceChild("octagon_r46", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r46 = bone20.addOrReplaceChild("octagon_r46", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r47 = bone20.addOrReplaceChild("octagon_r47", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r47 = bone20.addOrReplaceChild("octagon_r47", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r48 = bone20.addOrReplaceChild("octagon_r48", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r48 = bone20.addOrReplaceChild("octagon_r48", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r49 = bone20.addOrReplaceChild("octagon_r49", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)), PartDefinition octagon_r49 = bone20.addOrReplaceChild("octagon_r49", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3182F, -0.7683F, -1.313F, 0.6365F, 0.801F, 1.2F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.113F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone22 = Rockets2.addOrReplaceChild("bone22", CubeListBuilder.create(), PartPose.offset(0.0268F, 0.0407F, 3.383F)); PartDefinition bone22 = Rockets2.addOrReplaceChild("bone22", CubeListBuilder.create(), PartPose.offset(0.0268F, 0.0407F, 3.383F));
PartDefinition octagon_r50 = bone22.addOrReplaceChild("octagon_r50", CubeListBuilder.create().texOffs(0, 0).addBox(0.3224F, -0.7931F, -0.5685F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r50 = bone22.addOrReplaceChild("octagon_r50", CubeListBuilder.create().texOffs(0, 0).addBox(0.3224F, -0.7931F, -0.5685F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -0.7854F));
PartDefinition octagon_r51 = bone22.addOrReplaceChild("octagon_r51", CubeListBuilder.create().texOffs(0, 0).addBox(0.3224F, -0.7982F, -0.4228F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r51 = bone22.addOrReplaceChild("octagon_r51", CubeListBuilder.create().texOffs(0, 0).addBox(0.3224F, -0.7982F, -0.4228F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -0.7854F));
PartDefinition octagon_r52 = bone22.addOrReplaceChild("octagon_r52", CubeListBuilder.create().texOffs(0, 0).addBox(0.0278F, -0.5846F, -0.5258F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r52 = bone22.addOrReplaceChild("octagon_r52", CubeListBuilder.create().texOffs(0, 0).addBox(0.0278F, -0.5846F, -0.5258F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -1.5708F));
PartDefinition octagon_r53 = bone22.addOrReplaceChild("octagon_r53", CubeListBuilder.create().texOffs(0, 0).addBox(0.0278F, -0.6255F, -0.4008F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r53 = bone22.addOrReplaceChild("octagon_r53", CubeListBuilder.create().texOffs(0, 0).addBox(0.0278F, -0.6255F, -0.4008F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -1.5708F));
PartDefinition octagon_r54 = bone22.addOrReplaceChild("octagon_r54", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3482F, -0.6542F, -0.4296F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r54 = bone22.addOrReplaceChild("octagon_r54", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3482F, -0.6542F, -0.4296F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, -2.3562F));
PartDefinition octagon_r55 = bone22.addOrReplaceChild("octagon_r55", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3482F, -0.6213F, -0.5081F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r55 = bone22.addOrReplaceChild("octagon_r55", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3482F, -0.6213F, -0.5081F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -2.3562F));
PartDefinition octagon_r56 = bone22.addOrReplaceChild("octagon_r56", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5852F, -0.8866F, -0.3801F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r56 = bone22.addOrReplaceChild("octagon_r56", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5852F, -0.8866F, -0.3801F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -3.1416F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, 0.4494F, 0.0F, -3.1416F));
PartDefinition octagon_r57 = bone22.addOrReplaceChild("octagon_r57", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5852F, -0.8626F, -0.6379F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r57 = bone22.addOrReplaceChild("octagon_r57", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5852F, -0.8626F, -0.6379F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(-0.4742F, 0.1389F, -0.9306F, -0.7854F, 0.0F, 3.1416F));
PartDefinition octagon_r58 = bone22.addOrReplaceChild("octagon_r58", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.4137F, -0.1891F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r58 = bone22.addOrReplaceChild("octagon_r58", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.4137F, -0.1891F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, -0.7854F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, -0.7854F, 0.0F, 2.3562F));
PartDefinition octagon_r59 = bone22.addOrReplaceChild("octagon_r59", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.3149F, -0.6559F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r59 = bone22.addOrReplaceChild("octagon_r59", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.3149F, -0.6559F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, 0.4494F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, 0.4494F, 0.0F, 2.3562F));
PartDefinition octagon_r60 = bone22.addOrReplaceChild("octagon_r60", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.3282F, -0.6495F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r60 = bone22.addOrReplaceChild("octagon_r60", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.3282F, -0.6495F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, 0.4494F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, 0.4494F, 0.0F, 1.5708F));
PartDefinition octagon_r61 = bone22.addOrReplaceChild("octagon_r61", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.4242F, -0.1995F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r61 = bone22.addOrReplaceChild("octagon_r61", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.4242F, -0.1995F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, -0.7854F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.7589F, 0.3353F, -0.9306F, -0.7854F, 0.0F, 1.5708F));
PartDefinition octagon_r62 = bone22.addOrReplaceChild("octagon_r62", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.4137F, -0.1891F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r62 = bone22.addOrReplaceChild("octagon_r62", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.4137F, -0.1891F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, -0.7854F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, -0.7854F, 0.0F, 0.7854F));
PartDefinition octagon_r63 = bone22.addOrReplaceChild("octagon_r63", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.3149F, -0.6559F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r63 = bone22.addOrReplaceChild("octagon_r63", CubeListBuilder.create().texOffs(0, 0).addBox(0.1884F, -0.3149F, -0.6559F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, 0.4494F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, 0.4494F, 0.0F, 0.7854F));
PartDefinition octagon_r64 = bone22.addOrReplaceChild("octagon_r64", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.3282F, -0.6495F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)), PartDefinition octagon_r64 = bone22.addOrReplaceChild("octagon_r64", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.3282F, -0.6495F, 0.2221F, 0.4016F, 0.9842F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, 0.4494F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, 0.4494F, 0.0F, 0.0F));
PartDefinition octagon_r65 = bone22.addOrReplaceChild("octagon_r65", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.4242F, -0.1995F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r65 = bone22.addOrReplaceChild("octagon_r65", CubeListBuilder.create().texOffs(0, 0).addBox(-0.4464F, -0.4242F, -0.1995F, 0.2221F, 0.3016F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, -0.7854F, 0.0F, 0.0F)); PartPose.offsetAndRotation(0.3353F, -0.7589F, -0.9306F, -0.7854F, 0.0F, 0.0F));
PartDefinition bone21 = Rockets2.addOrReplaceChild("bone21", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, 2.6961F)); PartDefinition bone21 = Rockets2.addOrReplaceChild("bone21", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, 2.6961F));
PartDefinition octagon_r66 = bone21.addOrReplaceChild("octagon_r66", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r66 = bone21.addOrReplaceChild("octagon_r66", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r67 = bone21.addOrReplaceChild("octagon_r67", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r67 = bone21.addOrReplaceChild("octagon_r67", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r68 = bone21.addOrReplaceChild("octagon_r68", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r68 = bone21.addOrReplaceChild("octagon_r68", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r69 = bone21.addOrReplaceChild("octagon_r69", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r69 = bone21.addOrReplaceChild("octagon_r69", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r70 = bone21.addOrReplaceChild("octagon_r70", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r70 = bone21.addOrReplaceChild("octagon_r70", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r71 = bone21.addOrReplaceChild("octagon_r71", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r71 = bone21.addOrReplaceChild("octagon_r71", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r72 = bone21.addOrReplaceChild("octagon_r72", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)), PartDefinition octagon_r72 = bone21.addOrReplaceChild("octagon_r72", CubeListBuilder.create().texOffs(0, 0).addBox(-0.1111F, -0.91F, -0.205F, 0.2221F, 0.1484F, 0.4099F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone18 = Rockets2.addOrReplaceChild("bone18", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2378F, -0.6508F, -9.1073F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartPose.offset(-0.0021F, 0.0474F, 7.8333F)); PartDefinition bone18 = Rockets2.addOrReplaceChild("bone18", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2378F, -0.6508F, -9.1073F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartPose.offset(-0.0021F, 0.0474F, 7.8333F));
PartDefinition octagon_r73 = bone18.addOrReplaceChild("octagon_r73", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r73 = bone18.addOrReplaceChild("octagon_r73", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r74 = bone18.addOrReplaceChild("octagon_r74", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r74 = bone18.addOrReplaceChild("octagon_r74", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r75 = bone18.addOrReplaceChild("octagon_r75", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r75 = bone18.addOrReplaceChild("octagon_r75", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r76 = bone18.addOrReplaceChild("octagon_r76", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r76 = bone18.addOrReplaceChild("octagon_r76", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r77 = bone18.addOrReplaceChild("octagon_r77", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r77 = bone18.addOrReplaceChild("octagon_r77", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r78 = bone18.addOrReplaceChild("octagon_r78", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r78 = bone18.addOrReplaceChild("octagon_r78", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r79 = bone18.addOrReplaceChild("octagon_r79", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)), PartDefinition octagon_r79 = bone18.addOrReplaceChild("octagon_r79", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2668F, -0.6441F, -2.0088F, 0.5336F, 0.6715F, 14.8775F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.029F, -0.0067F, -7.0986F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone25 = Rockets2.addOrReplaceChild("bone25", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 0.2985F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -12.411F)); PartDefinition bone25 = Rockets2.addOrReplaceChild("bone25", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 0.2985F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -12.411F));
PartDefinition octagon_r80 = bone25.addOrReplaceChild("octagon_r80", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r80 = bone25.addOrReplaceChild("octagon_r80", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r81 = bone25.addOrReplaceChild("octagon_r81", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r81 = bone25.addOrReplaceChild("octagon_r81", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r82 = bone25.addOrReplaceChild("octagon_r82", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r82 = bone25.addOrReplaceChild("octagon_r82", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r83 = bone25.addOrReplaceChild("octagon_r83", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r83 = bone25.addOrReplaceChild("octagon_r83", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r84 = bone25.addOrReplaceChild("octagon_r84", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r84 = bone25.addOrReplaceChild("octagon_r84", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r85 = bone25.addOrReplaceChild("octagon_r85", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r85 = bone25.addOrReplaceChild("octagon_r85", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r86 = bone25.addOrReplaceChild("octagon_r86", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)), PartDefinition octagon_r86 = bone25.addOrReplaceChild("octagon_r86", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3281F, -0.792F, 13.5543F, 0.6561F, 0.8257F, 1.2092F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -13.2557F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone30 = Rockets2.addOrReplaceChild("bone30", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, -3.9858F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -18.5853F)); PartDefinition bone30 = Rockets2.addOrReplaceChild("bone30", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, -3.9858F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -18.5853F));
PartDefinition octagon_r87 = bone30.addOrReplaceChild("octagon_r87", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r87 = bone30.addOrReplaceChild("octagon_r87", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r88 = bone30.addOrReplaceChild("octagon_r88", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r88 = bone30.addOrReplaceChild("octagon_r88", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r89 = bone30.addOrReplaceChild("octagon_r89", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r89 = bone30.addOrReplaceChild("octagon_r89", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r90 = bone30.addOrReplaceChild("octagon_r90", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r90 = bone30.addOrReplaceChild("octagon_r90", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r91 = bone30.addOrReplaceChild("octagon_r91", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r91 = bone30.addOrReplaceChild("octagon_r91", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r92 = bone30.addOrReplaceChild("octagon_r92", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r92 = bone30.addOrReplaceChild("octagon_r92", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r93 = bone30.addOrReplaceChild("octagon_r93", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)), PartDefinition octagon_r93 = bone30.addOrReplaceChild("octagon_r93", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2953F, -0.7128F, 7.8443F, 0.5905F, 0.7431F, 5.4076F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.8302F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone31 = Rockets2.addOrReplaceChild("bone31", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 1.3934F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -25.0853F)); PartDefinition bone31 = Rockets2.addOrReplaceChild("bone31", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 1.3934F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -25.0853F));
PartDefinition octagon_r94 = bone31.addOrReplaceChild("octagon_r94", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r94 = bone31.addOrReplaceChild("octagon_r94", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r95 = bone31.addOrReplaceChild("octagon_r95", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r95 = bone31.addOrReplaceChild("octagon_r95", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r96 = bone31.addOrReplaceChild("octagon_r96", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r96 = bone31.addOrReplaceChild("octagon_r96", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r97 = bone31.addOrReplaceChild("octagon_r97", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r97 = bone31.addOrReplaceChild("octagon_r97", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r98 = bone31.addOrReplaceChild("octagon_r98", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r98 = bone31.addOrReplaceChild("octagon_r98", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r99 = bone31.addOrReplaceChild("octagon_r99", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r99 = bone31.addOrReplaceChild("octagon_r99", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r100 = bone31.addOrReplaceChild("octagon_r100", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)), PartDefinition octagon_r100 = bone31.addOrReplaceChild("octagon_r100", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 12.0737F, 0.5551F, 0.6985F, 0.3832F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.6803F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone32 = Rockets2.addOrReplaceChild("bone32", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, -0.4736F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -24.5343F)); PartDefinition bone32 = Rockets2.addOrReplaceChild("bone32", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, -0.4736F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -24.5343F));
PartDefinition octagon_r101 = bone32.addOrReplaceChild("octagon_r101", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r101 = bone32.addOrReplaceChild("octagon_r101", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r102 = bone32.addOrReplaceChild("octagon_r102", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r102 = bone32.addOrReplaceChild("octagon_r102", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r103 = bone32.addOrReplaceChild("octagon_r103", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r103 = bone32.addOrReplaceChild("octagon_r103", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r104 = bone32.addOrReplaceChild("octagon_r104", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r104 = bone32.addOrReplaceChild("octagon_r104", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r105 = bone32.addOrReplaceChild("octagon_r105", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r105 = bone32.addOrReplaceChild("octagon_r105", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r106 = bone32.addOrReplaceChild("octagon_r106", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r106 = bone32.addOrReplaceChild("octagon_r106", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r107 = bone32.addOrReplaceChild("octagon_r107", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)), PartDefinition octagon_r107 = bone32.addOrReplaceChild("octagon_r107", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2775F, -0.6701F, 11.5097F, 0.5551F, 0.6985F, 0.9472F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -11.9832F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone29 = Rockets2.addOrReplaceChild("bone29", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, -0.5789F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -12.2801F)); PartDefinition bone29 = Rockets2.addOrReplaceChild("bone29", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, -0.5789F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -12.2801F));
PartDefinition octagon_r108 = bone29.addOrReplaceChild("octagon_r108", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r108 = bone29.addOrReplaceChild("octagon_r108", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r109 = bone29.addOrReplaceChild("octagon_r109", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r109 = bone29.addOrReplaceChild("octagon_r109", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r110 = bone29.addOrReplaceChild("octagon_r110", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r110 = bone29.addOrReplaceChild("octagon_r110", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r111 = bone29.addOrReplaceChild("octagon_r111", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r111 = bone29.addOrReplaceChild("octagon_r111", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r112 = bone29.addOrReplaceChild("octagon_r112", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r112 = bone29.addOrReplaceChild("octagon_r112", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r113 = bone29.addOrReplaceChild("octagon_r113", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r113 = bone29.addOrReplaceChild("octagon_r113", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r114 = bone29.addOrReplaceChild("octagon_r114", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)), PartDefinition octagon_r114 = bone29.addOrReplaceChild("octagon_r114", CubeListBuilder.create().texOffs(0, 0).addBox(-0.2552F, -0.6161F, 9.59F, 0.5104F, 0.6423F, 1.104F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -10.169F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone28 = Rockets2.addOrReplaceChild("bone28", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, -3.0583F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -19.1553F)); PartDefinition bone28 = Rockets2.addOrReplaceChild("bone28", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, -3.0583F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartPose.offset(0.0268F, 0.0407F, -19.1553F));
PartDefinition octagon_r115 = bone28.addOrReplaceChild("octagon_r115", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r115 = bone28.addOrReplaceChild("octagon_r115", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r116 = bone28.addOrReplaceChild("octagon_r116", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r116 = bone28.addOrReplaceChild("octagon_r116", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r117 = bone28.addOrReplaceChild("octagon_r117", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r117 = bone28.addOrReplaceChild("octagon_r117", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r118 = bone28.addOrReplaceChild("octagon_r118", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r118 = bone28.addOrReplaceChild("octagon_r118", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r119 = bone28.addOrReplaceChild("octagon_r119", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r119 = bone28.addOrReplaceChild("octagon_r119", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r120 = bone28.addOrReplaceChild("octagon_r120", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r120 = bone28.addOrReplaceChild("octagon_r120", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r121 = bone28.addOrReplaceChild("octagon_r121", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)), PartDefinition octagon_r121 = bone28.addOrReplaceChild("octagon_r121", CubeListBuilder.create().texOffs(0, 0).addBox(-0.3543F, -0.8554F, 11.3379F, 0.7086F, 0.8917F, 4.6066F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -14.3962F, 0.0F, 0.0F, -1.5708F));
PartDefinition bone27 = Rockets2.addOrReplaceChild("bone27", PartDefinition bone27 = Rockets2.addOrReplaceChild("bone27",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2342F, -0.5653F, -4.8664F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2014F, -0.4862F, -11.3624F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2342F, -0.5653F, -4.8664F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2014F, -0.4862F, -11.3624F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)),
PartPose.offset(0.0268F, 0.0407F, -13.0786F)); PartPose.offset(0.0268F, 0.0407F, -13.0786F));
PartDefinition octagon_r122 = bone27.addOrReplaceChild("octagon_r122", PartDefinition octagon_r122 = bone27.addOrReplaceChild("octagon_r122",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 0.7854F));
PartDefinition octagon_r123 = bone27.addOrReplaceChild("octagon_r123", PartDefinition octagon_r123 = bone27.addOrReplaceChild("octagon_r123",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 2.3562F));
PartDefinition octagon_r124 = bone27.addOrReplaceChild("octagon_r124", PartDefinition octagon_r124 = bone27.addOrReplaceChild("octagon_r124",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 1.5708F));
PartDefinition octagon_r125 = bone27.addOrReplaceChild("octagon_r125", PartDefinition octagon_r125 = bone27.addOrReplaceChild("octagon_r125",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 3.1416F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, 3.1416F));
PartDefinition octagon_r126 = bone27.addOrReplaceChild("octagon_r126", PartDefinition octagon_r126 = bone27.addOrReplaceChild("octagon_r126",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -2.3562F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -2.3562F));
PartDefinition octagon_r127 = bone27.addOrReplaceChild("octagon_r127", PartDefinition octagon_r127 = bone27.addOrReplaceChild("octagon_r127",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -0.7854F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -0.7854F));
PartDefinition octagon_r128 = bone27.addOrReplaceChild("octagon_r128", PartDefinition octagon_r128 = bone27.addOrReplaceChild("octagon_r128",
CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)), CubeListBuilder.create().texOffs(0, 0).addBox(-0.2014F, -0.4862F, -1.9F, 0.4028F, 0.5069F, 1.9F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-0.2342F, -0.5653F, 4.596F, 0.4684F, 0.5894F, 6.404F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -1.5708F)); PartPose.offsetAndRotation(0.0F, 0.0F, -9.4624F, 0.0F, 0.0F, -1.5708F));
return LayerDefinition.create(meshdefinition, 16, 16); return LayerDefinition.create(meshdefinition, 16, 16);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
Rockets.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); Rockets.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,50 +1,45 @@
package net.mcreator.target.client.model; package net.mcreator.target.client.model;
import net.minecraft.world.entity.Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.CubeDeformation;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.EntityModel;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.Entity;
// Made with Blockbench 4.9.3 // Made with Blockbench 4.9.3
// Exported for Minecraft version 1.17 or later with Mojang mappings // Exported for Minecraft version 1.17 or later with Mojang mappings
// Paste this class into your mod and generate all required imports // Paste this class into your mod and generate all required imports
public class Modeltaser_rod<T extends Entity> extends EntityModel<T> { public class Modeltaser_rod<T extends Entity> extends EntityModel<T> {
// This layer location should be baked with EntityRendererProvider.Context in // This layer location should be baked with EntityRendererProvider.Context in
// the entity renderer and passed into this model's constructor // the entity renderer and passed into this model's constructor
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modeltaser_rod"), "main"); public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("target", "modeltaser_rod"), "main");
public final ModelPart bone; public final ModelPart bone;
public Modeltaser_rod(ModelPart root) { public Modeltaser_rod(ModelPart root) {
this.bone = root.getChild("bone"); this.bone = root.getChild("bone");
} }
public static LayerDefinition createBodyLayer() { public static LayerDefinition createBodyLayer() {
MeshDefinition meshdefinition = new MeshDefinition(); MeshDefinition meshdefinition = new MeshDefinition();
PartDefinition partdefinition = meshdefinition.getRoot(); PartDefinition partdefinition = meshdefinition.getRoot();
PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F));
PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1",
CubeListBuilder.create().texOffs(0, 4).addBox(-0.5F, -27.0F, -2.5F, 1.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-1.0F, -23.0F, -7.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 0) CubeListBuilder.create().texOffs(0, 4).addBox(-0.5F, -27.0F, -2.5F, 1.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 0).addBox(-1.0F, -23.0F, -7.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 0)
.addBox(-1.0F, -23.0F, -3.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 4).addBox(-0.5F, -27.0F, -6.5F, 1.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), .addBox(-1.0F, -23.0F, -3.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 4).addBox(-0.5F, -27.0F, -6.5F, 1.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F));
return LayerDefinition.create(meshdefinition, 16, 16); return LayerDefinition.create(meshdefinition, 16, 16);
} }
@Override @Override
public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
} }
@Override @Override
public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {
bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha);
} }
} }

View file

@ -1,16 +1,10 @@
package net.mcreator.target.client.particle; package net.mcreator.target.client.particle;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.client.particle.TextureSheetParticle;
import net.minecraft.client.particle.SpriteSet;
import net.minecraft.client.particle.ParticleRenderType;
import net.minecraft.client.particle.ParticleProvider;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.particle.*;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public class BulltholeParticle extends TextureSheetParticle { public class BulltholeParticle extends TextureSheetParticle {

View file

@ -1,67 +1,61 @@
package net.mcreator.target.client.particle; package net.mcreator.target.client.particle;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.client.particle.TextureSheetParticle;
import net.minecraft.client.particle.SpriteSet;
import net.minecraft.client.particle.ParticleRenderType;
import net.minecraft.client.particle.ParticleProvider;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.client.particle.*;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public class FirestarParticle extends TextureSheetParticle { public class FirestarParticle extends TextureSheetParticle {
public static FirestarParticleProvider provider(SpriteSet spriteSet) { public static FirestarParticleProvider provider(SpriteSet spriteSet) {
return new FirestarParticleProvider(spriteSet); return new FirestarParticleProvider(spriteSet);
} }
public static class FirestarParticleProvider implements ParticleProvider<SimpleParticleType> { public static class FirestarParticleProvider implements ParticleProvider<SimpleParticleType> {
private final SpriteSet spriteSet; private final SpriteSet spriteSet;
public FirestarParticleProvider(SpriteSet spriteSet) { public FirestarParticleProvider(SpriteSet spriteSet) {
this.spriteSet = spriteSet; this.spriteSet = spriteSet;
} }
public Particle createParticle(SimpleParticleType typeIn, ClientLevel worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { public Particle createParticle(SimpleParticleType typeIn, ClientLevel worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) {
FirestarParticle particle = new FirestarParticle(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, this.spriteSet); FirestarParticle particle = new FirestarParticle(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, this.spriteSet);
return particle; return particle;
} }
} }
private final SpriteSet spriteSet; private final SpriteSet spriteSet;
protected FirestarParticle(ClientLevel world, double x, double y, double z, double vx, double vy, double vz, SpriteSet spriteSet) { protected FirestarParticle(ClientLevel world, double x, double y, double z, double vx, double vy, double vz, SpriteSet spriteSet) {
super(world, x, y, z); super(world, x, y, z);
this.spriteSet = spriteSet; this.spriteSet = spriteSet;
this.setSize(0.2f, 0.2f); this.setSize(0.2f, 0.2f);
this.quadSize *= 0.5f; this.quadSize *= 0.5f;
this.lifetime = (int) Math.max(1, 40 + (this.random.nextInt(40) - 20)); this.lifetime = Math.max(1, 40 + (this.random.nextInt(40) - 20));
this.gravity = 1f; this.gravity = 1f;
this.hasPhysics = true; this.hasPhysics = true;
this.xd = vx * 1; this.xd = vx * 1;
this.yd = vy * 1; this.yd = vy * 1;
this.zd = vz * 1; this.zd = vz * 1;
this.setSpriteFromAge(spriteSet); this.setSpriteFromAge(spriteSet);
} }
@Override @Override
public int getLightColor(float partialTick) { public int getLightColor(float partialTick) {
return 15728880; return 15728880;
} }
@Override @Override
public ParticleRenderType getRenderType() { public ParticleRenderType getRenderType() {
return ParticleRenderType.PARTICLE_SHEET_LIT; return ParticleRenderType.PARTICLE_SHEET_LIT;
} }
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
if (!this.removed) { if (!this.removed) {
this.setSprite(this.spriteSet.get((this.age / 2) % 8 + 1, 8)); this.setSprite(this.spriteSet.get((this.age / 2) % 8 + 1, 8));
} }
} }
} }

View file

@ -1,42 +1,40 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.BocekarrowEntity;
import net.mcreator.target.client.model.Modelbocekarrow;
import com.mojang.math.Axis;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.target.client.model.Modelbocekarrow;
import net.mcreator.target.entity.BocekarrowEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class BocekarrowRenderer extends EntityRenderer<BocekarrowEntity> { public class BocekarrowRenderer extends EntityRenderer<BocekarrowEntity> {
private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/bocekarrow.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/bocekarrow.png");
private final Modelbocekarrow model; private final Modelbocekarrow model;
public BocekarrowRenderer(EntityRendererProvider.Context context) { public BocekarrowRenderer(EntityRendererProvider.Context context) {
super(context); super(context);
model = new Modelbocekarrow(context.bakeLayer(Modelbocekarrow.LAYER_LOCATION)); model = new Modelbocekarrow(context.bakeLayer(Modelbocekarrow.LAYER_LOCATION));
} }
@Override @Override
public void render(BocekarrowEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(BocekarrowEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn))); VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose(); poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
} }
@Override @Override
public ResourceLocation getTextureLocation(BocekarrowEntity entity) { public ResourceLocation getTextureLocation(BocekarrowEntity entity) {
return texture; return texture;
} }
} }

View file

@ -1,42 +1,38 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.model.ClaymoreModel;
import net.mcreator.target.entity.ClaymoreEntity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.entity.ClaymoreEntity;
import net.mcreator.target.entity.model.ClaymoreModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class ClaymoreRenderer extends GeoEntityRenderer<ClaymoreEntity> { public class ClaymoreRenderer extends GeoEntityRenderer<ClaymoreEntity> {
public ClaymoreRenderer(EntityRendererProvider.Context renderManager) { public ClaymoreRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new ClaymoreModel()); super(renderManager, new ClaymoreModel());
this.shadowRadius = 0f; this.shadowRadius = 0f;
} }
@Override @Override
public RenderType getRenderType(ClaymoreEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(ClaymoreEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@Override @Override
public void preRender(PoseStack poseStack, ClaymoreEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green, public void preRender(PoseStack poseStack, ClaymoreEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) { float blue, float alpha) {
float scale = 0.5f; float scale = 0.5f;
this.scaleHeight = scale; this.scaleHeight = scale;
this.scaleWidth = scale; this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
} }
@Override @Override
protected float getDeathMaxRotation(ClaymoreEntity entityLivingBaseIn) { protected float getDeathMaxRotation(ClaymoreEntity entityLivingBaseIn) {
return 0.0F; return 0.0F;
} }
} }

View file

@ -1,42 +1,40 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.GunGrenadeEntity;
import net.mcreator.target.client.model.ModelGrenade;
import com.mojang.math.Axis;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.target.client.model.ModelGrenade;
import net.mcreator.target.entity.GunGrenadeEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class GunGrenadeRenderer extends EntityRenderer<GunGrenadeEntity> { public class GunGrenadeRenderer extends EntityRenderer<GunGrenadeEntity> {
private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/grenade.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/grenade.png");
private final ModelGrenade model; private final ModelGrenade model;
public GunGrenadeRenderer(EntityRendererProvider.Context context) { public GunGrenadeRenderer(EntityRendererProvider.Context context) {
super(context); super(context);
model = new ModelGrenade(context.bakeLayer(ModelGrenade.LAYER_LOCATION)); model = new ModelGrenade(context.bakeLayer(ModelGrenade.LAYER_LOCATION));
} }
@Override @Override
public void render(GunGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(GunGrenadeEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn))); VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose(); poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
} }
@Override @Override
public ResourceLocation getTextureLocation(GunGrenadeEntity entity) { public ResourceLocation getTextureLocation(GunGrenadeEntity entity) {
return texture; return texture;
} }
} }

View file

@ -1,42 +1,38 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.model.MortarModel;
import net.mcreator.target.entity.MortarEntity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.entity.MortarEntity;
import net.mcreator.target.entity.model.MortarModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class MortarRenderer extends GeoEntityRenderer<MortarEntity> { public class MortarRenderer extends GeoEntityRenderer<MortarEntity> {
public MortarRenderer(EntityRendererProvider.Context renderManager) { public MortarRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new MortarModel()); super(renderManager, new MortarModel());
this.shadowRadius = 0f; this.shadowRadius = 0f;
} }
@Override @Override
public RenderType getRenderType(MortarEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(MortarEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@Override @Override
public void preRender(PoseStack poseStack, MortarEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green, public void preRender(PoseStack poseStack, MortarEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) { float blue, float alpha) {
float scale = 1f; float scale = 1f;
this.scaleHeight = scale; this.scaleHeight = scale;
this.scaleWidth = scale; this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
} }
@Override @Override
protected float getDeathMaxRotation(MortarEntity entityLivingBaseIn) { protected float getDeathMaxRotation(MortarEntity entityLivingBaseIn) {
return 0.0F; return 0.0F;
} }
} }

View file

@ -1,42 +1,40 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.MortarShellEntity;
import net.mcreator.target.client.model.Modelmortar_shell_Converted;
import com.mojang.math.Axis;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.target.client.model.Modelmortar_shell_Converted;
import net.mcreator.target.entity.MortarShellEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class MortarShellRenderer extends EntityRenderer<MortarShellEntity> { public class MortarShellRenderer extends EntityRenderer<MortarShellEntity> {
private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/mortar_shell.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/mortar_shell.png");
private final Modelmortar_shell_Converted model; private final Modelmortar_shell_Converted model;
public MortarShellRenderer(EntityRendererProvider.Context context) { public MortarShellRenderer(EntityRendererProvider.Context context) {
super(context); super(context);
model = new Modelmortar_shell_Converted(context.bakeLayer(Modelmortar_shell_Converted.LAYER_LOCATION)); model = new Modelmortar_shell_Converted(context.bakeLayer(Modelmortar_shell_Converted.LAYER_LOCATION));
} }
@Override @Override
public void render(MortarShellEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(MortarShellEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn))); VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose(); poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
} }
@Override @Override
public ResourceLocation getTextureLocation(MortarShellEntity entity) { public ResourceLocation getTextureLocation(MortarShellEntity entity) {
return texture; return texture;
} }
} }

View file

@ -1,54 +1,45 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.layers.RenderLayer;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.mcreator.target.entity.ProjectileEntity;
import net.mcreator.target.client.model.Modelbullet;
import net.minecraft.core.BlockPos;
import com.mojang.math.Axis;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.target.client.model.Modelbullet;
import net.mcreator.target.entity.ProjectileEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class ProjectileRenderer extends EntityRenderer<ProjectileEntity> { public class ProjectileRenderer extends EntityRenderer<ProjectileEntity> {
private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/bullet_tex.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/bullet_tex.png");
private final Modelbullet model; private final Modelbullet model;
public ProjectileRenderer(EntityRendererProvider.Context context) { public ProjectileRenderer(EntityRendererProvider.Context context) {
super(context); super(context);
model = new Modelbullet(context.bakeLayer(Modelbullet.LAYER_LOCATION)); model = new Modelbullet(context.bakeLayer(Modelbullet.LAYER_LOCATION));
} }
protected int getBlockLightLevel(ProjectileEntity pEntity, BlockPos pPos) { protected int getBlockLightLevel(ProjectileEntity pEntity, BlockPos pPos) {
return 15; return 15;
} }
@Override @Override
public void render(ProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(ProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.eyes(this.getTextureLocation(entityIn))); VertexConsumer vb = bufferIn.getBuffer(RenderType.eyes(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose(); poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
} }
@Override @Override
public ResourceLocation getTextureLocation(ProjectileEntity entity) { public ResourceLocation getTextureLocation(ProjectileEntity entity) {
return texture; return texture;
} }
} }

View file

@ -1,42 +1,40 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.RpgRocketEntity;
import net.mcreator.target.client.model.Modelrpg7_rocket_Converted;
import com.mojang.math.Axis;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.target.client.model.Modelrpg7_rocket_Converted;
import net.mcreator.target.entity.RpgRocketEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class RpgRocketRenderer extends EntityRenderer<RpgRocketEntity> { public class RpgRocketRenderer extends EntityRenderer<RpgRocketEntity> {
private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/rocket.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/rocket.png");
private final Modelrpg7_rocket_Converted model; private final Modelrpg7_rocket_Converted model;
public RpgRocketRenderer(EntityRendererProvider.Context context) { public RpgRocketRenderer(EntityRendererProvider.Context context) {
super(context); super(context);
model = new Modelrpg7_rocket_Converted(context.bakeLayer(Modelrpg7_rocket_Converted.LAYER_LOCATION)); model = new Modelrpg7_rocket_Converted(context.bakeLayer(Modelrpg7_rocket_Converted.LAYER_LOCATION));
} }
@Override @Override
public void render(RpgRocketEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(RpgRocketEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn))); VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose(); poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
} }
@Override @Override
public ResourceLocation getTextureLocation(RpgRocketEntity entity) { public ResourceLocation getTextureLocation(RpgRocketEntity entity) {
return texture; return texture;
} }
} }

View file

@ -1,42 +1,38 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.model.SenpaiModel;
import net.mcreator.target.entity.SenpaiEntity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.entity.SenpaiEntity;
import net.mcreator.target.entity.model.SenpaiModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class SenpaiRenderer extends GeoEntityRenderer<SenpaiEntity> { public class SenpaiRenderer extends GeoEntityRenderer<SenpaiEntity> {
public SenpaiRenderer(EntityRendererProvider.Context renderManager) { public SenpaiRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new SenpaiModel()); super(renderManager, new SenpaiModel());
this.shadowRadius = 0.5f; this.shadowRadius = 0.5f;
} }
@Override @Override
public RenderType getRenderType(SenpaiEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(SenpaiEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@Override @Override
public void preRender(PoseStack poseStack, SenpaiEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green, public void preRender(PoseStack poseStack, SenpaiEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) { float blue, float alpha) {
float scale = 1f; float scale = 1f;
this.scaleHeight = scale; this.scaleHeight = scale;
this.scaleWidth = scale; this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
} }
@Override @Override
protected float getDeathMaxRotation(SenpaiEntity entityLivingBaseIn) { protected float getDeathMaxRotation(SenpaiEntity entityLivingBaseIn) {
return 0.0F; return 0.0F;
} }
} }

View file

@ -1,42 +1,38 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.model.Target1Model;
import net.mcreator.target.entity.Target1Entity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.entity.Target1Entity;
import net.mcreator.target.entity.model.Target1Model;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class Target1Renderer extends GeoEntityRenderer<Target1Entity> { public class Target1Renderer extends GeoEntityRenderer<Target1Entity> {
public Target1Renderer(EntityRendererProvider.Context renderManager) { public Target1Renderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new Target1Model()); super(renderManager, new Target1Model());
this.shadowRadius = 0f; this.shadowRadius = 0f;
} }
@Override @Override
public RenderType getRenderType(Target1Entity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(Target1Entity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@Override @Override
public void preRender(PoseStack poseStack, Target1Entity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green, public void preRender(PoseStack poseStack, Target1Entity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) { float blue, float alpha) {
float scale = 1f; float scale = 1f;
this.scaleHeight = scale; this.scaleHeight = scale;
this.scaleWidth = scale; this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
} }
@Override @Override
protected float getDeathMaxRotation(Target1Entity entityLivingBaseIn) { protected float getDeathMaxRotation(Target1Entity entityLivingBaseIn) {
return 0.0F; return 0.0F;
} }
} }

View file

@ -1,44 +1,40 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.model.TargetModel;
import net.mcreator.target.entity.layer.TargetLayer;
import net.mcreator.target.entity.TargetEntity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.entity.TargetEntity;
import net.mcreator.target.entity.layer.TargetLayer;
import net.mcreator.target.entity.model.TargetModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public class TargetRenderer extends GeoEntityRenderer<TargetEntity> { public class TargetRenderer extends GeoEntityRenderer<TargetEntity> {
public TargetRenderer(EntityRendererProvider.Context renderManager) { public TargetRenderer(EntityRendererProvider.Context renderManager) {
super(renderManager, new TargetModel()); super(renderManager, new TargetModel());
this.shadowRadius = 0f; this.shadowRadius = 0f;
this.addRenderLayer(new TargetLayer(this)); this.addRenderLayer(new TargetLayer(this));
} }
@Override @Override
public RenderType getRenderType(TargetEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(TargetEntity animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@Override @Override
public void preRender(PoseStack poseStack, TargetEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green, public void preRender(PoseStack poseStack, TargetEntity entity, BakedGeoModel model, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, float red, float green,
float blue, float alpha) { float blue, float alpha) {
float scale = 1f; float scale = 1f;
this.scaleHeight = scale; this.scaleHeight = scale;
this.scaleWidth = scale; this.scaleWidth = scale;
super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha);
} }
@Override @Override
protected float getDeathMaxRotation(TargetEntity entityLivingBaseIn) { protected float getDeathMaxRotation(TargetEntity entityLivingBaseIn) {
return 0.0F; return 0.0F;
} }
} }

View file

@ -1,42 +1,40 @@
package net.mcreator.target.client.renderer; package net.mcreator.target.client.renderer;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.TaserBulletProjectileEntity;
import net.mcreator.target.client.model.Modeltaser_rod;
import com.mojang.math.Axis;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.math.Axis;
import net.mcreator.target.client.model.Modeltaser_rod;
import net.mcreator.target.entity.TaserBulletProjectileEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
public class TaserBulletProjectileRenderer extends EntityRenderer<TaserBulletProjectileEntity> { public class TaserBulletProjectileRenderer extends EntityRenderer<TaserBulletProjectileEntity> {
private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/taser_rod.png"); private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/taser_rod.png");
private final Modeltaser_rod model; private final Modeltaser_rod model;
public TaserBulletProjectileRenderer(EntityRendererProvider.Context context) { public TaserBulletProjectileRenderer(EntityRendererProvider.Context context) {
super(context); super(context);
model = new Modeltaser_rod(context.bakeLayer(Modeltaser_rod.LAYER_LOCATION)); model = new Modeltaser_rod(context.bakeLayer(Modeltaser_rod.LAYER_LOCATION));
} }
@Override @Override
public void render(TaserBulletProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { public void render(TaserBulletProjectileEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn))); VertexConsumer vb = bufferIn.getBuffer(RenderType.entityCutout(this.getTextureLocation(entityIn)));
poseStack.pushPose(); poseStack.pushPose();
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90));
poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot())));
model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f);
poseStack.popPose(); poseStack.popPose();
super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
} }
@Override @Override
public ResourceLocation getTextureLocation(TaserBulletProjectileEntity entity) { public ResourceLocation getTextureLocation(TaserBulletProjectileEntity entity) {
return texture; return texture;
} }
} }

View file

@ -1,42 +1,32 @@
package net.mcreator.target.client.screens; package net.mcreator.target.client.screens;
import org.checkerframework.checker.units.qual.h;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.player.Player;
import net.minecraft.client.Minecraft;
import net.mcreator.target.procedures.AmmocountProcedure;
import net.mcreator.target.procedures.AmmobarXianShiYouXiNeiDieJiaCengProcedure; import net.mcreator.target.procedures.AmmobarXianShiYouXiNeiDieJiaCengProcedure;
import net.mcreator.target.procedures.AmmocountProcedure;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber({Dist.CLIENT}) @Mod.EventBusSubscriber({Dist.CLIENT})
public class AmmobarOverlay { public class AmmobarOverlay {
@SubscribeEvent(priority = EventPriority.NORMAL) @SubscribeEvent(priority = EventPriority.NORMAL)
public static void eventHandler(RenderGuiEvent.Pre event) { public static void eventHandler(RenderGuiEvent.Pre event) {
int w = event.getWindow().getGuiScaledWidth(); int w = event.getWindow().getGuiScaledWidth();
int h = event.getWindow().getGuiScaledHeight(); int h = event.getWindow().getGuiScaledHeight();
Level world = null; Player entity = Minecraft.getInstance().player;
double x = 0; if (AmmobarXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
double y = 0; event.getGuiGraphics().drawString(
double z = 0; Minecraft.getInstance().font,
Player entity = Minecraft.getInstance().player; AmmocountProcedure.execute(entity),
if (entity != null) { w / 2 + 92,
world = entity.level(); h - 11,
x = entity.getX(); -16711936,
y = entity.getY(); false
z = entity.getZ(); );
} }
if (AmmobarXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) { }
event.getGuiGraphics().drawString(Minecraft.getInstance().font,
AmmocountProcedure.execute(entity), w / 2 + 92, h - 11, -16711936, false);
}
}
} }

View file

@ -1,140 +1,105 @@
package net.mcreator.target.client.screens; package net.mcreator.target.client.screens;
import org.checkerframework.checker.units.qual.h;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.player.Player;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.Minecraft;
import net.mcreator.target.init.TargetModAttributes;
import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.procedures.CrosshairXianShiYouXiNeiDieJiaCengProcedure;
import net.minecraft.client.gui.GuiGraphics;
import com.mojang.blaze3d.systems.RenderSystem;
import org.joml.Matrix4f;
import com.mojang.blaze3d.vertex.BufferUploader;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.VertexFormat;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.*;
import com.mojang.blaze3d.vertex.Tesselator; import net.mcreator.target.init.TargetModAttributes;
import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.procedures.CrosshairXianShiYouXiNeiDieJiaCengProcedure;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.joml.Matrix4f;
@Mod.EventBusSubscriber({Dist.CLIENT}) @Mod.EventBusSubscriber({Dist.CLIENT})
public class CrosshairOverlay { public class CrosshairOverlay {
@SubscribeEvent(priority = EventPriority.NORMAL) @SubscribeEvent(priority = EventPriority.NORMAL)
public static void eventHandler(RenderGuiEvent.Pre event) { public static void eventHandler(RenderGuiEvent.Pre event) {
int w = event.getWindow().getGuiScaledWidth(); int w = event.getWindow().getGuiScaledWidth();
int h = event.getWindow().getGuiScaledHeight(); int h = event.getWindow().getGuiScaledHeight();
Level world = null; Player entity = Minecraft.getInstance().player;
double x = 0;
double y = 0;
double z = 0;
Player entity = Minecraft.getInstance().player;
double spread = 0; double spread = entity.getAttribute(TargetModAttributes.SPREAD.get()).getBaseValue();
spread = entity.getAttribute(TargetModAttributes.SPREAD.get()).getBaseValue();
double hitind = 0; double hitind = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).hitind;
hitind = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).hitind;
double headind = 0; double headind = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).headind;
headind = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).headind;
double killind = 0; double killind = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).killind;
killind = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).killind;
if (entity != null) { RenderSystem.disableDepthTest();
world = entity.level(); RenderSystem.depthMask(false);
x = entity.getX(); RenderSystem.enableBlend();
y = entity.getY(); RenderSystem.setShader(GameRenderer::getPositionTexShader);
z = entity.getZ(); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
} RenderSystem.setShaderColor(1, 1, 1, 1);
RenderSystem.disableDepthTest(); if (CrosshairXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
RenderSystem.depthMask(false); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/point.png"), w / 2 + -7.5f, h / 2 + -8, 0, 0, 16, 16, 16, 16);
RenderSystem.enableBlend();
RenderSystem.setShader(GameRenderer::getPositionTexShader);
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
RenderSystem.setShaderColor(1, 1, 1, 1);
if (CrosshairXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/point.png"), w / 2 + -7.5f, h / 2 + -8, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2 + -9.5f - 2.8f * (float)spread, h / 2 + -8, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2 + -9.5f - 2.8f * (float) spread, h / 2 + -8, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2 + -6.5f + 2.8f * (float)spread, h / 2 + -8, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexheng.png"), w / 2 + -6.5f + 2.8f * (float) spread, h / 2 + -8, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexshu.png"), w / 2 + -7.5f, h / 2 + -7 + 2.8f * (float)spread, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexshu.png"), w / 2 + -7.5f, h / 2 + -7 + 2.8f * (float) spread, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexshu.png"), w / 2 + -7.5f, h / 2 + -10 - 2.8f * (float)spread, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/rexshu.png"), w / 2 + -7.5f, h / 2 + -10 - 2.8f * (float) spread, 0, 0, 16, 16, 16, 16);
} }
float ww = 0; float ww = w / 2 - 7.5f + (float) (2 * (Math.random() - 0.5f));
float hh = 0; float hh = h / 2 - 8 + (float) (2 * (Math.random() - 0.5f));
float m = 0; float m = (float) ((40 - killind) / 5.5f);
ww = w / 2 + -7.5f + (float)(2 * (Math.random() - 0.5f));
hh = h / 2 + -8 + (float)(2 * (Math.random() - 0.5f));
m = (float)((40 - killind)/5.5f);
if (hitind > 0) { if (hitind > 0) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/hit_marker.png"), ww, hh, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/hit_marker.png"), ww, hh, 0, 0, 16, 16, 16, 16);
} }
if (headind > 0) { if (headind > 0) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/headshotmark.png"), ww, hh, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/headshotmark.png"), ww, hh, 0, 0, 16, 16, 16, 16);
} }
if (killind > 0) { if (killind > 0) {
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark1.png"), w / 2 + -7.5f -2 + m, h / 2 + -8 -2 + m, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark1.png"), w / 2 + -7.5f - 2 + m, h / 2 + -8 - 2 + m, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark2.png"), w / 2 + -7.5f +2 - m, h / 2 + -8 -2 + m, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark2.png"), w / 2 + -7.5f + 2 - m, h / 2 + -8 - 2 + m, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark3.png"), w / 2 + -7.5f -2 + m, h / 2 + -8 +2 - m, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark3.png"), w / 2 + -7.5f - 2 + m, h / 2 + -8 + 2 - m, 0, 0, 16, 16, 16, 16);
preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark4.png"), w / 2 + -7.5f +2 - m, h / 2 + -8 +2 - m, 0, 0, 16, 16, 16, 16); preciseBlit(event.getGuiGraphics(), new ResourceLocation("target:textures/screens/kill_mark4.png"), w / 2 + -7.5f + 2 - m, h / 2 + -8 + 2 - m, 0, 0, 16, 16, 16, 16);
} }
RenderSystem.depthMask(true); RenderSystem.depthMask(true);
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
RenderSystem.enableDepthTest(); RenderSystem.enableDepthTest();
RenderSystem.disableBlend(); RenderSystem.disableBlend();
RenderSystem.setShaderColor(1, 1, 1, 1); RenderSystem.setShaderColor(1, 1, 1, 1);
} }
private static void preciseBlit(GuiGraphics gui,ResourceLocation pAtlasLocation, float pX, float pY, float pUOffset, float pVOffset, float pWidth, float pHeight, float pTextureWidth, float pTextureHeight) { private static void preciseBlit(GuiGraphics gui, ResourceLocation pAtlasLocation, float pX, float pY, float pUOffset, float pVOffset, float pWidth, float pHeight, float pTextureWidth, float pTextureHeight) {
float pX1 = pX; float pX2 = pX + pWidth;
float pX2 = pX + pWidth; float pY2 = pY + pHeight;
float pY1 = pY; float pBlitOffset = 0;
float pY2 = pY + pHeight;
float pBlitOffset = 0;
float pMinU = pUOffset / pTextureWidth; float pMinU = pUOffset / pTextureWidth;
float pMaxU = (pUOffset + pWidth) / pTextureWidth; float pMaxU = (pUOffset + pWidth) / pTextureWidth;
float pMinV = pVOffset / pTextureHeight; float pMinV = pVOffset / pTextureHeight;
float pMaxV = (pVOffset + pHeight) / pTextureHeight; float pMaxV = (pVOffset + pHeight) / pTextureHeight;
RenderSystem.setShaderTexture(0, pAtlasLocation); RenderSystem.setShaderTexture(0, pAtlasLocation);
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexShader);
Matrix4f matrix4f = gui.pose().last().pose(); Matrix4f matrix4f = gui.pose().last().pose();
BufferBuilder bufferbuilder = Tesselator.getInstance().getBuilder(); BufferBuilder bufferbuilder = Tesselator.getInstance().getBuilder();
bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX);
bufferbuilder.vertex(matrix4f, pX1, pY1, pBlitOffset).uv(pMinU, pMinV).endVertex(); bufferbuilder.vertex(matrix4f, pX, pY, pBlitOffset).uv(pMinU, pMinV).endVertex();
bufferbuilder.vertex(matrix4f, pX1, pY2, pBlitOffset).uv(pMinU, pMaxV).endVertex(); bufferbuilder.vertex(matrix4f, pX, pY2, pBlitOffset).uv(pMinU, pMaxV).endVertex();
bufferbuilder.vertex(matrix4f, pX2, pY2, pBlitOffset).uv(pMaxU, pMaxV).endVertex(); bufferbuilder.vertex(matrix4f, pX2, pY2, pBlitOffset).uv(pMaxU, pMaxV).endVertex();
bufferbuilder.vertex(matrix4f, pX2, pY1, pBlitOffset).uv(pMaxU, pMinV).endVertex(); bufferbuilder.vertex(matrix4f, pX2, pY, pBlitOffset).uv(pMaxU, pMinV).endVertex();
BufferUploader.drawWithShader(bufferbuilder.end()); BufferUploader.drawWithShader(bufferbuilder.end());
} }
} }

View file

@ -1,56 +1,38 @@
package net.mcreator.target.client.screens; package net.mcreator.target.client.screens;
import org.checkerframework.checker.units.qual.h;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.player.Player;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.Minecraft;
import net.mcreator.target.procedures.M79uiXianShiYouXiNeiDieJiaCengProcedure;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import net.mcreator.target.procedures.M79uiXianShiYouXiNeiDieJiaCengProcedure;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber({Dist.CLIENT}) @Mod.EventBusSubscriber({Dist.CLIENT})
public class M79uiOverlay { public class M79uiOverlay {
@SubscribeEvent(priority = EventPriority.NORMAL) @SubscribeEvent(priority = EventPriority.NORMAL)
public static void eventHandler(RenderGuiEvent.Pre event) { public static void eventHandler(RenderGuiEvent.Pre event) {
int w = event.getWindow().getGuiScaledWidth(); int w = event.getWindow().getGuiScaledWidth();
int h = event.getWindow().getGuiScaledHeight(); int h = event.getWindow().getGuiScaledHeight();
Level world = null; Player entity = Minecraft.getInstance().player;
double x = 0; RenderSystem.disableDepthTest();
double y = 0; RenderSystem.depthMask(false);
double z = 0; RenderSystem.enableBlend();
Player entity = Minecraft.getInstance().player; RenderSystem.setShader(GameRenderer::getPositionTexShader);
if (entity != null) { RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
world = entity.level(); RenderSystem.setShaderColor(1, 1, 1, 1);
x = entity.getX(); if (M79uiXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
y = entity.getY(); event.getGuiGraphics().blit(new ResourceLocation("target:textures/screens/rex.png"), w / 2 + -16, h / 2 + -16, 0, 0, 32, 32, 32, 32);
z = entity.getZ(); }
} RenderSystem.depthMask(true);
RenderSystem.disableDepthTest(); RenderSystem.defaultBlendFunc();
RenderSystem.depthMask(false); RenderSystem.enableDepthTest();
RenderSystem.enableBlend(); RenderSystem.disableBlend();
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderColor(1, 1, 1, 1);
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); }
RenderSystem.setShaderColor(1, 1, 1, 1);
if (M79uiXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
event.getGuiGraphics().blit(new ResourceLocation("target:textures/screens/rex.png"), w / 2 + -16, h / 2 + -16, 0, 0, 32, 32, 32, 32);
}
RenderSystem.depthMask(true);
RenderSystem.defaultBlendFunc();
RenderSystem.enableDepthTest();
RenderSystem.disableBlend();
RenderSystem.setShaderColor(1, 1, 1, 1);
}
} }

View file

@ -1,42 +1,31 @@
package net.mcreator.target.client.screens; package net.mcreator.target.client.screens;
import org.checkerframework.checker.units.qual.h;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.player.Player;
import net.minecraft.client.Minecraft;
import net.mcreator.target.procedures.SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure;
import net.mcreator.target.procedures.EntityRangeProcedure; import net.mcreator.target.procedures.EntityRangeProcedure;
import net.mcreator.target.procedures.SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RenderGuiEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber({Dist.CLIENT}) @Mod.EventBusSubscriber({Dist.CLIENT})
public class SpyglassRangeOverlay { public class SpyglassRangeOverlay {
@SubscribeEvent(priority = EventPriority.NORMAL) @SubscribeEvent(priority = EventPriority.NORMAL)
public static void eventHandler(RenderGuiEvent.Pre event) { public static void eventHandler(RenderGuiEvent.Pre event) {
int w = event.getWindow().getGuiScaledWidth(); int w = event.getWindow().getGuiScaledWidth();
int h = event.getWindow().getGuiScaledHeight(); int h = event.getWindow().getGuiScaledHeight();
Level world = null; Player entity = Minecraft.getInstance().player;
double x = 0; if (SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
double y = 0; event.getGuiGraphics().drawString(
double z = 0; Minecraft.getInstance().font,
Player entity = Minecraft.getInstance().player; EntityRangeProcedure.execute(entity),
if (entity != null) { w / 2 + 19,
world = entity.level(); h / 2 + -23,
x = entity.getX(); -1,
y = entity.getY(); false
z = entity.getZ(); );
} }
if (SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) { }
event.getGuiGraphics().drawString(Minecraft.getInstance().font,
EntityRangeProcedure.execute(entity), w / 2 + 19, h / 2 + -23, -1, false);
}
}
} }

View file

@ -1,39 +1,25 @@
package net.mcreator.target.command; package net.mcreator.target.command;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.common.util.FakePlayerFactory;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.Entity;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.core.Direction;
import net.minecraft.commands.Commands;
import net.mcreator.target.procedures.HugeexpProcedure; import net.mcreator.target.procedures.HugeexpProcedure;
import net.minecraft.commands.Commands;
import net.minecraft.world.level.Level;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public class BigexpCommand { public class BigexpCommand {
@SubscribeEvent @SubscribeEvent
public static void registerCommand(RegisterCommandsEvent event) { public static void registerCommand(RegisterCommandsEvent event) {
event.getDispatcher().register(Commands.literal("target:bigexp") event.getDispatcher().register(Commands.literal("target:bigexp")
.executes(arguments -> {
Level world = arguments.getSource().getUnsidedLevel();
double x = arguments.getSource().getPosition().x();
double y = arguments.getSource().getPosition().y();
double z = arguments.getSource().getPosition().z();
.executes(arguments -> { HugeexpProcedure.execute(world, x, y, z);
Level world = arguments.getSource().getUnsidedLevel(); return 0;
double x = arguments.getSource().getPosition().x(); }));
double y = arguments.getSource().getPosition().y(); }
double z = arguments.getSource().getPosition().z();
Entity entity = arguments.getSource().getEntity();
if (entity == null && world instanceof ServerLevel _servLevel)
entity = FakePlayerFactory.getMinecraft(_servLevel);
Direction direction = Direction.DOWN;
if (entity != null)
direction = entity.getDirection();
HugeexpProcedure.execute(world, x, y, z);
return 0;
}));
}
} }

View file

@ -1,39 +1,25 @@
package net.mcreator.target.command; package net.mcreator.target.command;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.common.util.FakePlayerFactory;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.Entity;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.core.Direction;
import net.minecraft.commands.Commands;
import net.mcreator.target.procedures.MedexpProcedure; import net.mcreator.target.procedures.MedexpProcedure;
import net.minecraft.commands.Commands;
import net.minecraft.world.level.Level;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public class MediumexpCommand { public class MediumexpCommand {
@SubscribeEvent @SubscribeEvent
public static void registerCommand(RegisterCommandsEvent event) { public static void registerCommand(RegisterCommandsEvent event) {
event.getDispatcher().register(Commands.literal("target:mediumexp") event.getDispatcher().register(Commands.literal("target:mediumexp")
.executes(arguments -> {
Level world = arguments.getSource().getUnsidedLevel();
double x = arguments.getSource().getPosition().x();
double y = arguments.getSource().getPosition().y();
double z = arguments.getSource().getPosition().z();
.executes(arguments -> { MedexpProcedure.execute(world, x, y, z);
Level world = arguments.getSource().getUnsidedLevel(); return 0;
double x = arguments.getSource().getPosition().x(); }));
double y = arguments.getSource().getPosition().y(); }
double z = arguments.getSource().getPosition().z();
Entity entity = arguments.getSource().getEntity();
if (entity == null && world instanceof ServerLevel _servLevel)
entity = FakePlayerFactory.getMinecraft(_servLevel);
Direction direction = Direction.DOWN;
if (entity != null)
direction = entity.getDirection();
MedexpProcedure.execute(world, x, y, z);
return 0;
}));
}
} }

View file

@ -1,191 +1,179 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.phys.*;
import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.BoundingBoxManager;
import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.headshot.IHeadshotBox;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.Items;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.RandomSource;
import net.minecraft.sounds.SoundSource;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.Optional; import java.util.Optional;
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
public class BocekarrowEntity extends AbstractArrow implements ItemSupplier { public class BocekarrowEntity extends AbstractArrow implements ItemSupplier {
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW); public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW);
public BocekarrowEntity(PlayMessages.SpawnEntity packet, Level world) { public BocekarrowEntity(PlayMessages.SpawnEntity packet, Level world) {
super(TargetModEntities.BOCEKARROW.get(), world); super(TargetModEntities.BOCEKARROW.get(), world);
}
public BocekarrowEntity(EntityType<? extends BocekarrowEntity> type, Level world) {
super(type, world);
}
public BocekarrowEntity(EntityType<? extends BocekarrowEntity> type, double x, double y, double z, Level world) {
super(type, x, y, z, world);
}
public BocekarrowEntity(EntityType<? extends BocekarrowEntity> type, LivingEntity entity, Level world) {
super(type, entity, world);
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack getItem() {
return PROJECTILE_ITEM;
}
@Override
protected ItemStack getPickupItem() {
return PROJECTILE_ITEM;
}
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
public void onHitBlock(BlockHitResult blockHitResult) {
super.onHitBlock(blockHitResult);
}
@Override
protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position();
Entity entity = result.getEntity();
if(this.getOwner() instanceof LivingEntity living){
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:indication voice @a ~ ~ ~ 1 1");
}
}
if (entity instanceof LivingEntity livingEntity) {
entity.invulnerableTime = 0;
}
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if(entity instanceof LivingEntity)
{
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null)
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null)
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent())
{
box = box.inflate( 0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55))
{
hitPos = headshotHitPos.get();
headshot = true;
}
if(headshot){
if(this.getOwner() instanceof LivingEntity living){
setBaseDamage(getBaseDamage() * 2);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
this.discard();
} }
@Override public BocekarrowEntity(EntityType<? extends BocekarrowEntity> type, Level world) {
public void tick() { super(type, world);
super.tick(); }
if(this.tickCount>200){
this.discard();
}
}
public static BocekarrowEntity shoot(Level world, LivingEntity entity, RandomSource source) { public BocekarrowEntity(EntityType<? extends BocekarrowEntity> type, double x, double y, double z, Level world) {
return shoot(world, entity, source, 1f, 5, 0); super(type, x, y, z, world);
} }
public static BocekarrowEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) { public BocekarrowEntity(EntityType<? extends BocekarrowEntity> type, LivingEntity entity, Level world) {
BocekarrowEntity entityarrow = new BocekarrowEntity(TargetModEntities.BOCEKARROW.get(), entity, world); super(type, entity, world);
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0); }
entityarrow.setSilent(true);
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (random.nextFloat() * 0.5f + 1) + (power / 2));
return entityarrow;
}
public static BocekarrowEntity shoot(LivingEntity entity, LivingEntity target) { @Override
BocekarrowEntity entityarrow = new BocekarrowEntity(TargetModEntities.BOCEKARROW.get(), entity, entity.level()); public Packet<ClientGamePacketListener> getAddEntityPacket() {
double dx = target.getX() - entity.getX(); return NetworkHooks.getEntitySpawningPacket(this);
double dy = target.getY() + target.getEyeHeight() - 1.1; }
double dz = target.getZ() - entity.getZ();
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F); @Override
entityarrow.setSilent(true); @OnlyIn(Dist.CLIENT)
entityarrow.setBaseDamage(5); public ItemStack getItem() {
entityarrow.setKnockback(5); return PROJECTILE_ITEM;
entityarrow.setCritArrow(false); }
entity.level().addFreshEntity(entityarrow);
entity.level().playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (RandomSource.create().nextFloat() * 0.5f + 1)); @Override
return entityarrow; protected ItemStack getPickupItem() {
} return PROJECTILE_ITEM;
}
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
public void onHitBlock(BlockHitResult blockHitResult) {
super.onHitBlock(blockHitResult);
}
@Override
protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position();
Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) {
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:indication voice @a ~ ~ ~ 1 1");
}
}
if (entity instanceof LivingEntity livingEntity) {
entity.invulnerableTime = 0;
}
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if (entity instanceof LivingEntity) {
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if (headshotBox != null) {
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if (box != null) {
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if (!headshotHitPos.isPresent()) {
box = box.inflate(0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if (headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) {
headshot = true;
}
if (headshot) {
if (this.getOwner() instanceof LivingEntity living) {
setBaseDamage(getBaseDamage() * 2);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
this.discard();
}
@Override
public void tick() {
super.tick();
if (this.tickCount > 200) {
this.discard();
}
}
public static BocekarrowEntity shoot(Level world, LivingEntity entity, RandomSource source) {
return shoot(world, entity, source, 1f, 5, 0);
}
public static BocekarrowEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) {
BocekarrowEntity entityarrow = new BocekarrowEntity(TargetModEntities.BOCEKARROW.get(), entity, world);
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0);
entityarrow.setSilent(true);
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (random.nextFloat() * 0.5f + 1) + (power / 2));
return entityarrow;
}
public static BocekarrowEntity shoot(LivingEntity entity, LivingEntity target) {
BocekarrowEntity entityarrow = new BocekarrowEntity(TargetModEntities.BOCEKARROW.get(), entity, entity.level());
double dx = target.getX() - entity.getX();
double dy = target.getY() + target.getEyeHeight() - 1.1;
double dz = target.getZ() - entity.getZ();
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true);
entityarrow.setBaseDamage(5);
entityarrow.setKnockback(5);
entityarrow.setCritArrow(false);
entity.level().addFreshEntity(entityarrow);
entity.level().playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (RandomSource.create().nextFloat() * 0.5f + 1));
return entityarrow;
}
} }

View file

@ -1,309 +1,292 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoEntity;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.SpawnEggItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.TamableAnimal;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.MobType;
import net.minecraft.world.entity.MobSpawnType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.AreaEffectCloud;
import net.minecraft.world.entity.AgeableMob;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionHand;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.nbt.CompoundTag;
import net.mcreator.target.procedures.ClaymoreYouJiShiTiShiProcedure;
import net.mcreator.target.procedures.ClaymoreDangShiTiSiWangShiProcedure;
import net.mcreator.target.procedures.ClaymoreDangShiTiGengXinKeShiProcedure;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.procedures.ClaymoreDangShiTiGengXinKeShiProcedure;
import net.mcreator.target.procedures.ClaymoreDangShiTiSiWangShiProcedure;
import net.mcreator.target.procedures.ClaymoreYouJiShiTiShiProcedure;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.SpawnEggItem;
import net.minecraft.world.level.Level;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List; import java.util.List;
public class ClaymoreEntity extends TamableAnimal implements GeoEntity { public class ClaymoreEntity extends TamableAnimal implements GeoEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.STRING);
public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.STRING);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private boolean swinging; private boolean swinging;
private boolean lastloop; private boolean lastloop;
private long lastSwing; private long lastSwing;
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public ClaymoreEntity(PlayMessages.SpawnEntity packet, Level world) { public ClaymoreEntity(PlayMessages.SpawnEntity packet, Level world) {
this(TargetModEntities.CLAYMORE.get(), world); this(TargetModEntities.CLAYMORE.get(), world);
} }
public ClaymoreEntity(EntityType<ClaymoreEntity> type, Level world) { public ClaymoreEntity(EntityType<ClaymoreEntity> type, Level world) {
super(type, world); super(type, world);
xpReward = 0; xpReward = 0;
setNoAi(false); setNoAi(false);
setPersistenceRequired(); setPersistenceRequired();
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
this.entityData.define(SHOOT, false); this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined"); this.entityData.define(ANIMATION, "undefined");
this.entityData.define(TEXTURE, "claymore"); this.entityData.define(TEXTURE, "claymore");
} }
public void setTexture(String texture) { public void setTexture(String texture) {
this.entityData.set(TEXTURE, texture); this.entityData.set(TEXTURE, texture);
} }
public String getTexture() { public String getTexture() {
return this.entityData.get(TEXTURE); return this.entityData.get(TEXTURE);
} }
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override @Override
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
} }
@Override @Override
public MobType getMobType() { public MobType getMobType() {
return MobType.UNDEFINED; return MobType.UNDEFINED;
} }
@Override @Override
public boolean removeWhenFarAway(double distanceToClosestPlayer) { public boolean removeWhenFarAway(double distanceToClosestPlayer) {
return false; return false;
} }
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (source.is(DamageTypes.IN_FIRE)) if (source.is(DamageTypes.IN_FIRE))
return false; return false;
if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud)
return false; return false;
if (source.is(DamageTypes.FALL)) if (source.is(DamageTypes.FALL))
return false; return false;
if (source.is(DamageTypes.CACTUS)) if (source.is(DamageTypes.CACTUS))
return false; return false;
if (source.is(DamageTypes.DROWN)) if (source.is(DamageTypes.DROWN))
return false; return false;
if (source.is(DamageTypes.LIGHTNING_BOLT)) if (source.is(DamageTypes.LIGHTNING_BOLT))
return false; return false;
if (source.is(DamageTypes.EXPLOSION)) if (source.is(DamageTypes.EXPLOSION))
return false; return false;
if (source.is(DamageTypes.DRAGON_BREATH)) if (source.is(DamageTypes.DRAGON_BREATH))
return false; return false;
if (source.is(DamageTypes.WITHER)) if (source.is(DamageTypes.WITHER))
return false; return false;
if (source.is(DamageTypes.WITHER_SKULL)) if (source.is(DamageTypes.WITHER_SKULL))
return false; return false;
return super.hurt(source, amount); return super.hurt(source, amount);
} }
@Override @Override
public void die(DamageSource source) { public void die(DamageSource source) {
super.die(source); super.die(source);
ClaymoreDangShiTiSiWangShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this); ClaymoreDangShiTiSiWangShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this);
} }
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);
compound.putString("Texture", this.getTexture()); compound.putString("Texture", this.getTexture());
} }
@Override @Override
public void readAdditionalSaveData(CompoundTag compound) { public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound); super.readAdditionalSaveData(compound);
if (compound.contains("Texture")) if (compound.contains("Texture"))
this.setTexture(compound.getString("Texture")); this.setTexture(compound.getString("Texture"));
} }
@Override @Override
public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) { public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) {
ItemStack itemstack = sourceentity.getItemInHand(hand); ItemStack itemstack = sourceentity.getItemInHand(hand);
InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide()); InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide());
Item item = itemstack.getItem(); Item item = itemstack.getItem();
if (itemstack.getItem() instanceof SpawnEggItem) { if (itemstack.getItem() instanceof SpawnEggItem) {
retval = super.mobInteract(sourceentity, hand); retval = super.mobInteract(sourceentity, hand);
} else if (this.level().isClientSide()) { } else if (this.level().isClientSide()) {
retval = (this.isTame() && this.isOwnedBy(sourceentity) || this.isFood(itemstack)) ? InteractionResult.sidedSuccess(this.level().isClientSide()) : InteractionResult.PASS; retval = (this.isTame() && this.isOwnedBy(sourceentity) || this.isFood(itemstack)) ? InteractionResult.sidedSuccess(this.level().isClientSide()) : InteractionResult.PASS;
} else { } else {
if (this.isTame()) { if (this.isTame()) {
if (this.isOwnedBy(sourceentity)) { if (this.isOwnedBy(sourceentity)) {
if (item.isEdible() && this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) { if (item.isEdible() && this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) {
this.usePlayerItem(sourceentity, hand, itemstack); this.usePlayerItem(sourceentity, hand, itemstack);
this.heal((float) item.getFoodProperties().getNutrition()); this.heal((float) item.getFoodProperties().getNutrition());
retval = InteractionResult.sidedSuccess(this.level().isClientSide()); retval = InteractionResult.sidedSuccess(this.level().isClientSide());
} else if (this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) { } else if (this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) {
this.usePlayerItem(sourceentity, hand, itemstack); this.usePlayerItem(sourceentity, hand, itemstack);
this.heal(4); this.heal(4);
retval = InteractionResult.sidedSuccess(this.level().isClientSide()); retval = InteractionResult.sidedSuccess(this.level().isClientSide());
} else { } else {
retval = super.mobInteract(sourceentity, hand); retval = super.mobInteract(sourceentity, hand);
} }
} }
} else if (this.isFood(itemstack)) { } else if (this.isFood(itemstack)) {
this.usePlayerItem(sourceentity, hand, itemstack); this.usePlayerItem(sourceentity, hand, itemstack);
if (this.random.nextInt(3) == 0 && !net.minecraftforge.event.ForgeEventFactory.onAnimalTame(this, sourceentity)) { if (this.random.nextInt(3) == 0 && !net.minecraftforge.event.ForgeEventFactory.onAnimalTame(this, sourceentity)) {
this.tame(sourceentity); this.tame(sourceentity);
this.level().broadcastEntityEvent(this, (byte) 7); this.level().broadcastEntityEvent(this, (byte) 7);
} else { } else {
this.level().broadcastEntityEvent(this, (byte) 6); this.level().broadcastEntityEvent(this, (byte) 6);
} }
this.setPersistenceRequired(); this.setPersistenceRequired();
retval = InteractionResult.sidedSuccess(this.level().isClientSide()); retval = InteractionResult.sidedSuccess(this.level().isClientSide());
} else { } else {
retval = super.mobInteract(sourceentity, hand); retval = super.mobInteract(sourceentity, hand);
if (retval == InteractionResult.SUCCESS || retval == InteractionResult.CONSUME) if (retval == InteractionResult.SUCCESS || retval == InteractionResult.CONSUME)
this.setPersistenceRequired(); this.setPersistenceRequired();
} }
} }
double x = this.getX(); Entity entity = this;
double y = this.getY();
double z = this.getZ();
Entity entity = this;
Level world = this.level();
ClaymoreYouJiShiTiShiProcedure.execute(entity, sourceentity); ClaymoreYouJiShiTiShiProcedure.execute(entity, sourceentity);
return retval; return retval;
} }
@Override @Override
public void baseTick() { public void baseTick() {
super.baseTick(); super.baseTick();
ClaymoreDangShiTiGengXinKeShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this); ClaymoreDangShiTiGengXinKeShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this);
this.refreshDimensions(); this.refreshDimensions();
} }
@Override @Override
public EntityDimensions getDimensions(Pose p_33597_) { public EntityDimensions getDimensions(Pose p_33597_) {
return super.getDimensions(p_33597_).scale((float) 0.5); return super.getDimensions(p_33597_).scale((float) 0.5);
} }
@Override @Override
public AgeableMob getBreedOffspring(ServerLevel serverWorld, AgeableMob ageable) { public AgeableMob getBreedOffspring(ServerLevel serverWorld, AgeableMob ageable) {
ClaymoreEntity retval = TargetModEntities.CLAYMORE.get().create(serverWorld); ClaymoreEntity retval = TargetModEntities.CLAYMORE.get().create(serverWorld);
retval.finalizeSpawn(serverWorld, serverWorld.getCurrentDifficultyAt(retval.blockPosition()), MobSpawnType.BREEDING, null, null); retval.finalizeSpawn(serverWorld, serverWorld.getCurrentDifficultyAt(retval.blockPosition()), MobSpawnType.BREEDING, null, null);
return retval; return retval;
} }
@Override @Override
public boolean isFood(ItemStack stack) { public boolean isFood(ItemStack stack) {
return List.of().contains(stack.getItem()); return false;
} }
@Override @Override
public boolean isPushable() { public boolean isPushable() {
return false; return false;
} }
@Override @Override
protected void doPush(Entity entityIn) { protected void doPush(Entity entityIn) {
} }
@Override @Override
protected void pushEntities() { protected void pushEntities() {
} }
@Override @Override
public void aiStep() { public void aiStep() {
super.aiStep(); super.aiStep();
this.updateSwingTime(); this.updateSwingTime();
} }
public static void init() { public static void init() {
} }
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
AttributeSupplier.Builder builder = Mob.createMobAttributes(); AttributeSupplier.Builder builder = Mob.createMobAttributes();
builder = builder.add(Attributes.MOVEMENT_SPEED, 0); builder = builder.add(Attributes.MOVEMENT_SPEED, 0);
builder = builder.add(Attributes.MAX_HEALTH, 20); builder = builder.add(Attributes.MAX_HEALTH, 20);
builder = builder.add(Attributes.ARMOR, 0); builder = builder.add(Attributes.ARMOR, 0);
builder = builder.add(Attributes.ATTACK_DAMAGE, 0); builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
builder = builder.add(Attributes.FOLLOW_RANGE, 16); builder = builder.add(Attributes.FOLLOW_RANGE, 16);
builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 1); builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 1);
return builder; return builder;
} }
private PlayState movementPredicate(AnimationState event) { private PlayState movementPredicate(AnimationState event) {
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.claymore.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.claymore.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (animationprocedure.equals("empty")) { } else if (animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
protected void tickDeath() { protected void tickDeath() {
++this.deathTime; ++this.deathTime;
if (this.deathTime == 1) { if (this.deathTime == 1) {
this.remove(ClaymoreEntity.RemovalReason.KILLED); this.remove(ClaymoreEntity.RemovalReason.KILLED);
this.dropExperience(); this.dropExperience();
} }
} }
public String getSyncedAnimation() { public String getSyncedAnimation() {
return this.entityData.get(ANIMATION); return this.entityData.get(ANIMATION);
} }
public void setAnimation(String animation) { public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation); this.entityData.set(ANIMATION, animation);
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
data.add(new AnimationController<>(this, "movement", 4, this::movementPredicate)); data.add(new AnimationController<>(this, "movement", 4, this::movementPredicate));
data.add(new AnimationController<>(this, "procedure", 4, this::procedurePredicate)); data.add(new AnimationController<>(this, "procedure", 4, this::procedurePredicate));
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
} }

View file

@ -1,190 +1,180 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.block.*;
import net.minecraft.world.phys.*;
import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.BoundingBoxManager;
import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.headshot.IHeadshotBox;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.RandomSource;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongShiTiShiProcedure;
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure;
import net.mcreator.target.procedures.GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.procedures.GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure;
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongShiTiShiProcedure;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import java.util.Optional; import java.util.Optional;
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
public class GunGrenadeEntity extends AbstractArrow implements ItemSupplier { public class GunGrenadeEntity extends AbstractArrow implements ItemSupplier {
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR); public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR);
public GunGrenadeEntity(PlayMessages.SpawnEntity packet, Level world) { public GunGrenadeEntity(PlayMessages.SpawnEntity packet, Level world) {
super(TargetModEntities.GUN_GRENADE.get(), world); super(TargetModEntities.GUN_GRENADE.get(), world);
}
public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) {
super(type, world);
}
public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, double x, double y, double z, Level world) {
super(type, x, y, z, world);
}
public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, LivingEntity entity, Level world) {
super(type, entity, world);
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack getItem() {
return PROJECTILE_ITEM;
}
@Override
protected ItemStack getPickupItem() {
return PROJECTILE_ITEM;
}
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position();
Entity entity = result.getEntity();
if(this.getOwner() instanceof LivingEntity living){
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:indication voice @a ~ ~ ~ 1 1");
}
}
GunGrenadeDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this);
if (entity instanceof LivingEntity livingEntity) {
entity.invulnerableTime = 0;
}
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if(entity instanceof LivingEntity)
{
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null)
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null)
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent())
{
box = box.inflate( 0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55))
{
hitPos = headshotHitPos.get();
headshot = true;
}
if(headshot){
if(this.getOwner() instanceof LivingEntity living){
setBaseDamage(getBaseDamage() * 2);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
this.discard();
} }
@Override public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) {
public void onHitBlock(BlockHitResult blockHitResult) { super(type, world);
super.onHitBlock(blockHitResult); }
GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.execute(this.level(), this);
}
@Override public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, double x, double y, double z, Level world) {
public void tick() { super(type, x, y, z, world);
super.tick(); }
GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this);
if(this.tickCount>200){
this.discard();
}
}
public static GunGrenadeEntity shoot(Level world, LivingEntity entity, RandomSource source) { public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, LivingEntity entity, Level world) {
return shoot(world, entity, source, 1f, 5, 5); super(type, entity, world);
} }
public static GunGrenadeEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) { @Override
GunGrenadeEntity entityarrow = new GunGrenadeEntity(TargetModEntities.GUN_GRENADE.get(), entity, world); public Packet<ClientGamePacketListener> getAddEntityPacket() {
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0); return NetworkHooks.getEntitySpawningPacket(this);
entityarrow.setSilent(true); }
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
return entityarrow;
}
public static GunGrenadeEntity shoot(LivingEntity entity, LivingEntity target) { @Override
GunGrenadeEntity entityarrow = new GunGrenadeEntity(TargetModEntities.GUN_GRENADE.get(), entity, entity.level()); @OnlyIn(Dist.CLIENT)
double dx = target.getX() - entity.getX(); public ItemStack getItem() {
double dy = target.getY() + target.getEyeHeight() - 1.1; return PROJECTILE_ITEM;
double dz = target.getZ() - entity.getZ(); }
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true); @Override
entityarrow.setBaseDamage(5); protected ItemStack getPickupItem() {
entityarrow.setKnockback(5); return PROJECTILE_ITEM;
entityarrow.setCritArrow(false); }
entity.level().addFreshEntity(entityarrow);
return entityarrow; @Override
} protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position();
Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) {
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:indication voice @a ~ ~ ~ 1 1");
}
}
GunGrenadeDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this);
if (entity instanceof LivingEntity) {
entity.invulnerableTime = 0;
}
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if (entity instanceof LivingEntity) {
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if (headshotBox != null) {
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if (box != null) {
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if (!headshotHitPos.isPresent()) {
box = box.inflate(0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if (headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) {
headshot = true;
}
if (headshot) {
if (this.getOwner() instanceof LivingEntity living) {
setBaseDamage(getBaseDamage() * 2);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
this.discard();
}
@Override
public void onHitBlock(BlockHitResult blockHitResult) {
super.onHitBlock(blockHitResult);
GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure.execute(this.level(), this);
}
@Override
public void tick() {
super.tick();
GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this);
if (this.tickCount > 200) {
this.discard();
}
}
public static GunGrenadeEntity shoot(Level world, LivingEntity entity, RandomSource source) {
return shoot(world, entity, source, 1f, 5, 5);
}
public static GunGrenadeEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) {
GunGrenadeEntity entityarrow = new GunGrenadeEntity(TargetModEntities.GUN_GRENADE.get(), entity, world);
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0);
entityarrow.setSilent(true);
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
return entityarrow;
}
public static GunGrenadeEntity shoot(LivingEntity entity, LivingEntity target) {
GunGrenadeEntity entityarrow = new GunGrenadeEntity(TargetModEntities.GUN_GRENADE.get(), entity, entity.level());
double dx = target.getX() - entity.getX();
double dy = target.getY() + target.getEyeHeight() - 1.1;
double dz = target.getZ() - entity.getZ();
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true);
entityarrow.setBaseDamage(5);
entityarrow.setKnockback(5);
entityarrow.setCritArrow(false);
entity.level().addFreshEntity(entityarrow);
return entityarrow;
}
} }

View file

@ -1,277 +1,264 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoEntity;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.SpawnGroupData;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.MobType;
import net.minecraft.world.entity.MobSpawnType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.AreaEffectCloud;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.nbt.CompoundTag;
import net.mcreator.target.procedures.MortarYouJiShiTiShiProcedure;
import net.mcreator.target.procedures.MortarShiTiChuShiShengChengShiProcedure;
import net.mcreator.target.procedures.MortarDangXiaoShiShiJianDaoShiProcedure;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.procedures.MortarDangXiaoShiShiJianDaoShiProcedure;
import net.mcreator.target.procedures.MortarShiTiChuShiShengChengShiProcedure;
import net.mcreator.target.procedures.MortarYouJiShiTiShiProcedure;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.registries.ForgeRegistries;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public class MortarEntity extends PathfinderMob implements GeoEntity { public class MortarEntity extends PathfinderMob implements GeoEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING);
public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(MortarEntity.class, EntityDataSerializers.STRING);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private boolean swinging; private boolean swinging;
private boolean lastloop; private boolean lastloop;
private long lastSwing; private long lastSwing;
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public MortarEntity(PlayMessages.SpawnEntity packet, Level world) { public MortarEntity(PlayMessages.SpawnEntity packet, Level world) {
this(TargetModEntities.MORTAR.get(), world); this(TargetModEntities.MORTAR.get(), world);
} }
public MortarEntity(EntityType<MortarEntity> type, Level world) { public MortarEntity(EntityType<MortarEntity> type, Level world) {
super(type, world); super(type, world);
xpReward = 0; xpReward = 0;
setNoAi(true); setNoAi(true);
setPersistenceRequired(); setPersistenceRequired();
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
this.entityData.define(SHOOT, false); this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined"); this.entityData.define(ANIMATION, "undefined");
this.entityData.define(TEXTURE, "mortar"); this.entityData.define(TEXTURE, "mortar");
} }
public void setTexture(String texture) { public void setTexture(String texture) {
this.entityData.set(TEXTURE, texture); this.entityData.set(TEXTURE, texture);
} }
public String getTexture() { public String getTexture() {
return this.entityData.get(TEXTURE); return this.entityData.get(TEXTURE);
} }
@Override @Override
protected float getStandingEyeHeight(Pose poseIn, EntityDimensions sizeIn) { protected float getStandingEyeHeight(Pose poseIn, EntityDimensions sizeIn) {
return 0.2F; return 0.2F;
} }
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override @Override
public MobType getMobType() { public MobType getMobType() {
return MobType.UNDEFINED; return MobType.UNDEFINED;
} }
@Override @Override
public boolean removeWhenFarAway(double distanceToClosestPlayer) { public boolean removeWhenFarAway(double distanceToClosestPlayer) {
return false; return false;
} }
@Override @Override
public SoundEvent getHurtSound(DamageSource ds) { public SoundEvent getHurtSound(DamageSource ds) {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit"));
} }
@Override @Override
public SoundEvent getDeathSound() { public SoundEvent getDeathSound() {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit"));
} }
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (source.is(DamageTypes.IN_FIRE)) if (source.is(DamageTypes.IN_FIRE))
return false; return false;
if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud)
return false; return false;
if (source.is(DamageTypes.FALL)) if (source.is(DamageTypes.FALL))
return false; return false;
if (source.is(DamageTypes.CACTUS)) if (source.is(DamageTypes.CACTUS))
return false; return false;
if (source.is(DamageTypes.DROWN)) if (source.is(DamageTypes.DROWN))
return false; return false;
if (source.is(DamageTypes.LIGHTNING_BOLT)) if (source.is(DamageTypes.LIGHTNING_BOLT))
return false; return false;
if (source.is(DamageTypes.FALLING_ANVIL)) if (source.is(DamageTypes.FALLING_ANVIL))
return false; return false;
if (source.is(DamageTypes.DRAGON_BREATH)) if (source.is(DamageTypes.DRAGON_BREATH))
return false; return false;
if (source.is(DamageTypes.WITHER)) if (source.is(DamageTypes.WITHER))
return false; return false;
if (source.is(DamageTypes.WITHER_SKULL)) if (source.is(DamageTypes.WITHER_SKULL))
return false; return false;
return super.hurt(source, amount); return super.hurt(source, amount);
} }
@Override @Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, @Nullable SpawnGroupData livingdata, @Nullable CompoundTag tag) { public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, @Nullable SpawnGroupData livingdata, @Nullable CompoundTag tag) {
SpawnGroupData retval = super.finalizeSpawn(world, difficulty, reason, livingdata, tag); SpawnGroupData retval = super.finalizeSpawn(world, difficulty, reason, livingdata, tag);
MortarShiTiChuShiShengChengShiProcedure.execute(this); MortarShiTiChuShiShengChengShiProcedure.execute(this);
return retval; return retval;
} }
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);
compound.putString("Texture", this.getTexture()); compound.putString("Texture", this.getTexture());
} }
@Override @Override
public void readAdditionalSaveData(CompoundTag compound) { public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound); super.readAdditionalSaveData(compound);
if (compound.contains("Texture")) if (compound.contains("Texture"))
this.setTexture(compound.getString("Texture")); this.setTexture(compound.getString("Texture"));
} }
@Override @Override
public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) { public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) {
ItemStack itemstack = sourceentity.getItemInHand(hand); ItemStack itemstack = sourceentity.getItemInHand(hand);
InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide()); InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide());
super.mobInteract(sourceentity, hand); super.mobInteract(sourceentity, hand);
double x = this.getX(); double x = this.getX();
double y = this.getY(); double y = this.getY();
double z = this.getZ(); double z = this.getZ();
Entity entity = this; Entity entity = this;
Level world = this.level(); Level world = this.level();
MortarYouJiShiTiShiProcedure.execute(world, x, y, z, entity, sourceentity); MortarYouJiShiTiShiProcedure.execute(world, x, y, z, entity, sourceentity);
return retval; return retval;
} }
@Override @Override
public void baseTick() { public void baseTick() {
super.baseTick(); super.baseTick();
this.refreshDimensions(); this.refreshDimensions();
} }
@Override @Override
public EntityDimensions getDimensions(Pose p_33597_) { public EntityDimensions getDimensions(Pose p_33597_) {
return super.getDimensions(p_33597_).scale((float) 1); return super.getDimensions(p_33597_).scale((float) 1);
} }
@Override @Override
public boolean isPushable() { public boolean isPushable() {
return false; return false;
} }
@Override @Override
protected void doPush(Entity entityIn) { protected void doPush(Entity entityIn) {
} }
@Override @Override
protected void pushEntities() { protected void pushEntities() {
} }
@Override @Override
public void aiStep() { public void aiStep() {
super.aiStep(); super.aiStep();
this.updateSwingTime(); this.updateSwingTime();
} }
public static void init() { public static void init() {
} }
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
AttributeSupplier.Builder builder = Mob.createMobAttributes(); AttributeSupplier.Builder builder = Mob.createMobAttributes();
builder = builder.add(Attributes.MOVEMENT_SPEED, 0); builder = builder.add(Attributes.MOVEMENT_SPEED, 0);
builder = builder.add(Attributes.MAX_HEALTH, 10); builder = builder.add(Attributes.MAX_HEALTH, 10);
builder = builder.add(Attributes.ARMOR, 0); builder = builder.add(Attributes.ARMOR, 0);
builder = builder.add(Attributes.ATTACK_DAMAGE, 0); builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
builder = builder.add(Attributes.FOLLOW_RANGE, 16); builder = builder.add(Attributes.FOLLOW_RANGE, 16);
builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 1); builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 1);
return builder; return builder;
} }
private PlayState movementPredicate(AnimationState event) { private PlayState movementPredicate(AnimationState event) {
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
if (this.isShiftKeyDown()) { if (this.isShiftKeyDown()) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.fire")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.fire"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.mortar.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (animationprocedure.equals("empty")) { } else if (animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
protected void tickDeath() { protected void tickDeath() {
++this.deathTime; ++this.deathTime;
if (this.deathTime == 5) { if (this.deathTime == 5) {
this.remove(MortarEntity.RemovalReason.KILLED); this.remove(MortarEntity.RemovalReason.KILLED);
this.dropExperience(); this.dropExperience();
MortarDangXiaoShiShiJianDaoShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ()); MortarDangXiaoShiShiJianDaoShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ());
} }
} }
public String getSyncedAnimation() { public String getSyncedAnimation() {
return this.entityData.get(ANIMATION); return this.entityData.get(ANIMATION);
} }
public void setAnimation(String animation) { public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation); this.entityData.set(ANIMATION, animation);
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate)); data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate)); data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate));
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
} }

View file

@ -1,121 +1,118 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.util.RandomSource;
import net.minecraft.sounds.SoundSource;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.mcreator.target.procedures.MortarShellDanSheWuJiZhongShiTiShiProcedure;
import net.mcreator.target.procedures.MortarShellDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.procedures.MortarShellDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.procedures.MortarShellDanSheWuJiZhongShiTiShiProcedure;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.registries.ForgeRegistries;
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
public class MortarShellEntity extends AbstractArrow implements ItemSupplier { public class MortarShellEntity extends AbstractArrow implements ItemSupplier {
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR); public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR);
public MortarShellEntity(PlayMessages.SpawnEntity packet, Level world) { public MortarShellEntity(PlayMessages.SpawnEntity packet, Level world) {
super(TargetModEntities.MORTAR_SHELL.get(), world); super(TargetModEntities.MORTAR_SHELL.get(), world);
}
public MortarShellEntity(EntityType<? extends MortarShellEntity> type, Level world) {
super(type, world);
}
public MortarShellEntity(EntityType<? extends MortarShellEntity> type, double x, double y, double z, Level world) {
super(type, x, y, z, world);
}
public MortarShellEntity(EntityType<? extends MortarShellEntity> type, LivingEntity entity, Level world) {
super(type, entity, world);
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack getItem() {
return PROJECTILE_ITEM;
}
@Override
protected ItemStack getPickupItem() {
return PROJECTILE_ITEM;
}
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
public void onHitEntity(EntityHitResult entityHitResult) {
super.onHitEntity(entityHitResult);
MortarShellDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this);
} }
@Override public MortarShellEntity(EntityType<? extends MortarShellEntity> type, Level world) {
public void onHitBlock(BlockHitResult blockHitResult) { super(type, world);
super.onHitBlock(blockHitResult); }
MortarShellDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this);
}
@Override public MortarShellEntity(EntityType<? extends MortarShellEntity> type, double x, double y, double z, Level world) {
public void tick() { super(type, x, y, z, world);
super.tick(); }
MortarShellDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this);
if (this.inGround)
this.discard();
}
public static MortarShellEntity shoot(Level world, LivingEntity entity, RandomSource source) { public MortarShellEntity(EntityType<? extends MortarShellEntity> type, LivingEntity entity, Level world) {
return shoot(world, entity, source, 1f, 5, 5); super(type, entity, world);
} }
public static MortarShellEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) { @Override
MortarShellEntity entityarrow = new MortarShellEntity(TargetModEntities.MORTAR_SHELL.get(), entity, world); public Packet<ClientGamePacketListener> getAddEntityPacket() {
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0); return NetworkHooks.getEntitySpawningPacket(this);
entityarrow.setSilent(true); }
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (random.nextFloat() * 0.5f + 1) + (power / 2));
return entityarrow;
}
public static MortarShellEntity shoot(LivingEntity entity, LivingEntity target) { @Override
MortarShellEntity entityarrow = new MortarShellEntity(TargetModEntities.MORTAR_SHELL.get(), entity, entity.level()); @OnlyIn(Dist.CLIENT)
double dx = target.getX() - entity.getX(); public ItemStack getItem() {
double dy = target.getY() + target.getEyeHeight() - 1.1; return PROJECTILE_ITEM;
double dz = target.getZ() - entity.getZ(); }
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true); @Override
entityarrow.setBaseDamage(5); protected ItemStack getPickupItem() {
entityarrow.setKnockback(5); return PROJECTILE_ITEM;
entityarrow.setCritArrow(false); }
entity.level().addFreshEntity(entityarrow);
entity.level().playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (RandomSource.create().nextFloat() * 0.5f + 1)); @Override
return entityarrow; protected void doPostHurtEffects(LivingEntity entity) {
} super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
public void onHitEntity(EntityHitResult entityHitResult) {
super.onHitEntity(entityHitResult);
MortarShellDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this);
}
@Override
public void onHitBlock(BlockHitResult blockHitResult) {
super.onHitBlock(blockHitResult);
MortarShellDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this);
}
@Override
public void tick() {
super.tick();
MortarShellDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this);
if (this.inGround)
this.discard();
}
public static MortarShellEntity shoot(Level world, LivingEntity entity, RandomSource source) {
return shoot(world, entity, source, 1f, 5, 5);
}
public static MortarShellEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) {
MortarShellEntity entityarrow = new MortarShellEntity(TargetModEntities.MORTAR_SHELL.get(), entity, world);
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0);
entityarrow.setSilent(true);
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (random.nextFloat() * 0.5f + 1) + (power / 2));
return entityarrow;
}
public static MortarShellEntity shoot(LivingEntity entity, LivingEntity target) {
MortarShellEntity entityarrow = new MortarShellEntity(TargetModEntities.MORTAR_SHELL.get(), entity, entity.level());
double dx = target.getX() - entity.getX();
double dy = target.getY() + target.getEyeHeight() - 1.1;
double dz = target.getZ() - entity.getZ();
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true);
entityarrow.setBaseDamage(5);
entityarrow.setKnockback(5);
entityarrow.setCritArrow(false);
entity.level().addFreshEntity(entityarrow);
entity.level().playSound(null, entity.getX(), entity.getY(), entity.getZ(), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("entity.arrow.shoot")), SoundSource.PLAYERS, 1, 1f / (RandomSource.create().nextFloat() * 0.5f + 1));
return entityarrow;
}
} }

View file

@ -1,45 +1,36 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.stats.Stats;
import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraft.world.level.ClipContext;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
import net.minecraft.world.item.Item;
import net.minecraft.world.phys.*;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.CommandSource;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.player.Player;
import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.BoundingBoxManager;
import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.headshot.IHeadshotBox;
import net.mcreator.target.init.TargetCustomModEntities; import net.mcreator.target.init.TargetCustomModEntities;
import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.procedures.ProjectileHitEntity;
import net.mcreator.target.procedures.ProjectileHeadshotEntity; import net.mcreator.target.procedures.ProjectileHeadshotEntity;
import net.minecraft.world.phys.shapes.VoxelShape; import net.mcreator.target.procedures.ProjectileHitEntity;
import net.minecraftforge.common.MinecraftForge;
import net.mcreator.target.util.math.ExtendedEntityRayTraceResult; import net.mcreator.target.util.math.ExtendedEntityRayTraceResult;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.ClipContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.LeavesBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.*;
import net.minecraft.world.phys.shapes.VoxelShape;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.function.BiFunction; import java.util.function.BiFunction;
@ -73,25 +64,27 @@ public class ProjectileEntity extends ThrowableItemProjectile {
super(TargetCustomModEntities.PROJECTILE.get(), p_i1775_2_, p_i1775_4_, p_i1775_6_, p_i1775_1_); super(TargetCustomModEntities.PROJECTILE.get(), p_i1775_2_, p_i1775_4_, p_i1775_6_, p_i1775_1_);
} }
@Override
protected void onHitEntity(EntityHitResult result) {
super.onHitEntity(result);
}
@Nullable @Nullable
protected EntityResult findEntityOnPath(Vec3 startVec, Vec3 endVec) protected EntityResult findEntityOnPath(Vec3 startVec, Vec3 endVec) {
{
Vec3 hitVec = null; Vec3 hitVec = null;
Entity hitEntity = null; Entity hitEntity = null;
boolean headshot = false; boolean headshot = false;
List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS); List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS);
double closestDistance = Double.MAX_VALUE; double closestDistance = Double.MAX_VALUE;
for(Entity entity : entities) for (Entity entity : entities) {
{ if (!entity.equals(this.shooter)) {
if(!entity.equals(this.shooter))
{
EntityResult result = this.getHitResult(entity, startVec, endVec); EntityResult result = this.getHitResult(entity, startVec, endVec);
if(result == null) if (result == null)
continue; continue;
Vec3 hitPos = result.getHitPos(); Vec3 hitPos = result.getHitPos();
double distanceToHit = startVec.distanceTo(hitPos); double distanceToHit = startVec.distanceTo(hitPos);
if(distanceToHit < closestDistance) if (distanceToHit < closestDistance) {
{
hitVec = hitPos; hitVec = hitPos;
hitEntity = entity; hitEntity = entity;
closestDistance = distanceToHit; closestDistance = distanceToHit;
@ -103,16 +96,13 @@ public class ProjectileEntity extends ThrowableItemProjectile {
} }
@Nullable @Nullable
protected List<EntityResult> findEntitiesOnPath(Vec3 startVec, Vec3 endVec) protected List<EntityResult> findEntitiesOnPath(Vec3 startVec, Vec3 endVec) {
{
List<EntityResult> hitEntities = new ArrayList<>(); List<EntityResult> hitEntities = new ArrayList<>();
List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS); List<Entity> entities = this.level().getEntities(this, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0), PROJECTILE_TARGETS);
for(Entity entity : entities) for (Entity entity : entities) {
{ if (!entity.equals(this.shooter)) {
if(!entity.equals(this.shooter))
{
EntityResult result = this.getHitResult(entity, startVec, endVec); EntityResult result = this.getHitResult(entity, startVec, endVec);
if(result == null) if (result == null)
continue; continue;
hitEntities.add(result); hitEntities.add(result);
} }
@ -122,12 +112,12 @@ public class ProjectileEntity extends ThrowableItemProjectile {
@Nullable @Nullable
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private EntityResult getHitResult(Entity entity, Vec3 startVec, Vec3 endVec) private EntityResult getHitResult(Entity entity, Vec3 startVec, Vec3 endVec) {
{
double expandHeight = entity instanceof Player && !entity.isCrouching() ? 0.0625 : 0.0; double expandHeight = entity instanceof Player && !entity.isCrouching() ? 0.0625 : 0.0;
AABB boundingBox = entity.getBoundingBox(); AABB boundingBox = entity.getBoundingBox();
if(entity instanceof ServerPlayer && this.shooter != null)
{ // 延迟补偿
if (entity instanceof ServerPlayer && this.shooter != null) {
int ping = (int) Math.floor((((ServerPlayer) this.shooter).latency / 1000.0) * 20.0 + 3.5); int ping = (int) Math.floor((((ServerPlayer) this.shooter).latency / 1000.0) * 20.0 + 3.5);
boundingBox = BoundingBoxManager.getBoundingBox((Player) entity, ping); boundingBox = BoundingBoxManager.getBoundingBox((Player) entity, ping);
} }
@ -135,11 +125,9 @@ public class ProjectileEntity extends ThrowableItemProjectile {
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null); Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
Vec3 grownHitPos = boundingBox.inflate(0.2, 0, 0.2).clip(startVec, endVec).orElse(null); Vec3 grownHitPos = boundingBox.inflate(0.2, 0, 0.2).clip(startVec, endVec).orElse(null);
if(hitPos == null && grownHitPos != null) if (hitPos == null && grownHitPos != null) {
{ HitResult result = rayTraceBlocks(this.level(), new ClipContext(startVec, grownHitPos, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this), IGNORE_LEAVES);
HitResult raytraceresult = rayTraceBlocks(this.level(), new ClipContext(startVec, grownHitPos, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this), IGNORE_LEAVES); if (result.getType() == HitResult.Type.BLOCK) {
if(raytraceresult.getType() == HitResult.Type.BLOCK)
{
return null; return null;
} }
hitPos = grownHitPos; hitPos = grownHitPos;
@ -147,23 +135,18 @@ public class ProjectileEntity extends ThrowableItemProjectile {
/* Check for headshot */ /* Check for headshot */
boolean headshot = false; boolean headshot = false;
if(entity instanceof LivingEntity) if (entity instanceof LivingEntity) {
{
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType()); IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null) if (headshotBox != null) {
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity); AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null) if (box != null) {
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z); box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec); Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent()) if (!headshotHitPos.isPresent()) {
{
box = box.inflate(0.2, 0.2, 0.2); box = box.inflate(0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec); headshotHitPos = box.clip(startVec, endVec);
} }
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) if (headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) {
{
hitPos = headshotHitPos.get(); hitPos = headshotHitPos.get();
headshot = true; headshot = true;
} }
@ -171,8 +154,7 @@ public class ProjectileEntity extends ThrowableItemProjectile {
} }
} }
if(hitPos == null) if (hitPos == null) {
{
return null; return null;
} }
@ -180,70 +162,42 @@ public class ProjectileEntity extends ThrowableItemProjectile {
} }
@Override @Override
public void tick() public void tick() {
{
super.tick(); super.tick();
this.updateHeading(); this.updateHeading();
this.onProjectileTick(); this.onProjectileTick();
if(!this.level().isClientSide()) if (!this.level().isClientSide()) {
{
Vec3 startVec = this.position(); Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement()); Vec3 endVec = startVec.add(this.getDeltaMovement());
HitResult result = rayTraceBlocks(this.level(), new ClipContext(startVec, endVec, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this), IGNORE_LEAVES); HitResult result = rayTraceBlocks(this.level(), new ClipContext(startVec, endVec, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this), IGNORE_LEAVES);
if(result.getType() != HitResult.Type.MISS) if (result.getType() != HitResult.Type.MISS) {
{
endVec = result.getLocation(); endVec = result.getLocation();
} }
List<EntityResult> hitEntities = null; EntityResult entityResult = this.findEntityOnPath(startVec, endVec);
int level = 0;
if(level == 0)
{
EntityResult entityResult = this.findEntityOnPath(startVec, endVec);
if(entityResult != null)
{
hitEntities = Collections.singletonList(entityResult);
}
}
else
{
hitEntities = this.findEntitiesOnPath(startVec, endVec);
}
if(hitEntities != null && hitEntities.size() > 0) if (entityResult != null) {
{ result = new ExtendedEntityRayTraceResult(entityResult);
for(EntityResult entityResult : hitEntities) if (((EntityHitResult) result).getEntity() instanceof Player player) {
{ if (this.shooter instanceof Player && !((Player) this.shooter).canHarmPlayer(player)) {
result = new ExtendedEntityRayTraceResult(entityResult); result = null;
if(((EntityHitResult) result).getEntity() instanceof Player)
{
Player player = (Player) ((EntityHitResult) result).getEntity();
if(this.shooter instanceof Player && !((Player) this.shooter).canHarmPlayer(player))
{
result = null;
}
}
if(result != null)
{
this.onHit(result, startVec, endVec);
} }
} }
} if (result != null) {
else this.onHit(result, startVec, endVec);
{ }
} else {
this.onHit(result, startVec, endVec); this.onHit(result, startVec, endVec);
} }
} }
if(this.tickCount>200){ if (this.tickCount > 200) {
this.discard(); this.discard();
} }
} }
protected void onProjectileTick() protected void onProjectileTick() {
{
} }
@Override @Override
@ -264,40 +218,29 @@ public class ProjectileEntity extends ThrowableItemProjectile {
this.discard(); this.discard();
} }
private void onHit(HitResult result, Vec3 startVec, Vec3 endVec) private void onHit(HitResult result, Vec3 startVec, Vec3 endVec) {
{ if (result instanceof ExtendedEntityRayTraceResult entityHitResult) {
if(result instanceof ExtendedEntityRayTraceResult entityHitResult)
{
Entity entity = entityHitResult.getEntity(); Entity entity = entityHitResult.getEntity();
if(entity.getId() == this.shooterId) if (entity.getId() == this.shooterId) {
{
return; return;
} }
if(this.shooter instanceof Player player) if (this.shooter instanceof Player player) {
{ if (entity.hasIndirectPassenger(player)) {
if(entity.hasIndirectPassenger(player))
{
return; return;
} }
} }
this.onHitEntity(entity, result.getLocation(), startVec, endVec, entityHitResult.isHeadshot()); this.onHitEntity(entity, result.getLocation(), startVec, endVec, entityHitResult.isHeadshot());
entity.invulnerableTime = 0; entity.invulnerableTime = 0;
} }
} }
protected void onHitEntity(Entity entity, Vec3 hitVec, Vec3 startVec, Vec3 endVec, boolean headshot) protected void onHitEntity(Entity entity, Vec3 hitVec, Vec3 startVec, Vec3 endVec, boolean headshot) {
{ if (headshot) {
ProjectileHeadshotEntity.execute(this.level(), entity, this, this.shooter);
if(headshot){
ProjectileHeadshotEntity.execute(this.level(), entity, this, this.shooter);
} }
ProjectileHitEntity.execute(this.level(), entity, this, this.shooter); ProjectileHitEntity.execute(this.level(), entity, this, this.shooter);
} }
@Override @Override
@ -313,11 +256,10 @@ public class ProjectileEntity extends ThrowableItemProjectile {
return this.damage; return this.damage;
} }
private static BlockHitResult rayTraceBlocks(Level world, ClipContext context, Predicate<BlockState> ignorePredicate) private static BlockHitResult rayTraceBlocks(Level world, ClipContext context, Predicate<BlockState> ignorePredicate) {
{
return performRayTrace(context, (rayTraceContext, blockPos) -> { return performRayTrace(context, (rayTraceContext, blockPos) -> {
BlockState blockState = world.getBlockState(blockPos); BlockState blockState = world.getBlockState(blockPos);
if(ignorePredicate.test(blockState)) return null; if (ignorePredicate.test(blockState)) return null;
FluidState fluidState = world.getFluidState(blockPos); FluidState fluidState = world.getFluidState(blockPos);
Vec3 startVec = rayTraceContext.getFrom(); Vec3 startVec = rayTraceContext.getFrom();
Vec3 endVec = rayTraceContext.getTo(); Vec3 endVec = rayTraceContext.getTo();
@ -334,16 +276,12 @@ public class ProjectileEntity extends ThrowableItemProjectile {
}); });
} }
private static <T> T performRayTrace(ClipContext context, BiFunction<ClipContext, BlockPos, T> hitFunction, Function<ClipContext, T> p_217300_2_) private static <T> T performRayTrace(ClipContext context, BiFunction<ClipContext, BlockPos, T> hitFunction, Function<ClipContext, T> p_217300_2_) {
{
Vec3 startVec = context.getFrom(); Vec3 startVec = context.getFrom();
Vec3 endVec = context.getTo(); Vec3 endVec = context.getTo();
if(startVec.equals(endVec)) if (startVec.equals(endVec)) {
{
return p_217300_2_.apply(context); return p_217300_2_.apply(context);
} } else {
else
{
double startX = Mth.lerp(-0.0000001, endVec.x, startVec.x); double startX = Mth.lerp(-0.0000001, endVec.x, startVec.x);
double startY = Mth.lerp(-0.0000001, endVec.y, startVec.y); double startY = Mth.lerp(-0.0000001, endVec.y, startVec.y);
double startZ = Mth.lerp(-0.0000001, endVec.z, startVec.z); double startZ = Mth.lerp(-0.0000001, endVec.z, startVec.z);
@ -355,8 +293,7 @@ public class ProjectileEntity extends ThrowableItemProjectile {
int blockZ = Mth.floor(endZ); int blockZ = Mth.floor(endZ);
BlockPos.MutableBlockPos mutablePos = new BlockPos.MutableBlockPos(blockX, blockY, blockZ); BlockPos.MutableBlockPos mutablePos = new BlockPos.MutableBlockPos(blockX, blockY, blockZ);
T t = hitFunction.apply(context, mutablePos); T t = hitFunction.apply(context, mutablePos);
if(t != null) if (t != null) {
{
return t; return t;
} }
@ -373,35 +310,25 @@ public class ProjectileEntity extends ThrowableItemProjectile {
double d13 = d10 * (signY > 0 ? 1.0D - Mth.frac(endY) : Mth.frac(endY)); double d13 = d10 * (signY > 0 ? 1.0D - Mth.frac(endY) : Mth.frac(endY));
double d14 = d11 * (signZ > 0 ? 1.0D - Mth.frac(endZ) : Mth.frac(endZ)); double d14 = d11 * (signZ > 0 ? 1.0D - Mth.frac(endZ) : Mth.frac(endZ));
while(d12 <= 1.0D || d13 <= 1.0D || d14 <= 1.0D) while (d12 <= 1.0D || d13 <= 1.0D || d14 <= 1.0D) {
{ if (d12 < d13) {
if(d12 < d13) if (d12 < d14) {
{
if(d12 < d14)
{
blockX += signX; blockX += signX;
d12 += d9; d12 += d9;
} } else {
else
{
blockZ += signZ; blockZ += signZ;
d14 += d11; d14 += d11;
} }
} } else if (d13 < d14) {
else if(d13 < d14)
{
blockY += signY; blockY += signY;
d13 += d10; d13 += d10;
} } else {
else
{
blockZ += signZ; blockZ += signZ;
d14 += d11; d14 += d11;
} }
T t1 = hitFunction.apply(context, mutablePos.set(blockX, blockY, blockZ)); T t1 = hitFunction.apply(context, mutablePos.set(blockX, blockY, blockZ));
if(t1 != null) if (t1 != null) {
{
return t1; return t1;
} }
} }
@ -410,17 +337,15 @@ public class ProjectileEntity extends ThrowableItemProjectile {
} }
} }
public LivingEntity getShooter() public LivingEntity getShooter() {
{
return this.shooter; return this.shooter;
} }
public int getShooterId()
{ public int getShooterId() {
return this.shooterId; return this.shooterId;
} }
public void updateHeading() public void updateHeading() {
{
double horizontalDistance = this.getDeltaMovement().horizontalDistance(); double horizontalDistance = this.getDeltaMovement().horizontalDistance();
this.setYRot((float) (Mth.atan2(this.getDeltaMovement().x(), this.getDeltaMovement().z()) * (180D / Math.PI))); this.setYRot((float) (Mth.atan2(this.getDeltaMovement().x(), this.getDeltaMovement().z()) * (180D / Math.PI)));
this.setXRot((float) (Mth.atan2(this.getDeltaMovement().y(), horizontalDistance) * (180D / Math.PI))); this.setXRot((float) (Mth.atan2(this.getDeltaMovement().y(), horizontalDistance) * (180D / Math.PI)));
@ -428,14 +353,12 @@ public class ProjectileEntity extends ThrowableItemProjectile {
this.xRotO = this.getXRot(); this.xRotO = this.getXRot();
} }
public static class EntityResult public static class EntityResult {
{ private final Entity entity;
private Entity entity; private final Vec3 hitVec;
private Vec3 hitVec; private final boolean headshot;
private boolean headshot;
public EntityResult(Entity entity, Vec3 hitVec, boolean headshot) public EntityResult(Entity entity, Vec3 hitVec, boolean headshot) {
{
this.entity = entity; this.entity = entity;
this.hitVec = hitVec; this.hitVec = hitVec;
this.headshot = headshot; this.headshot = headshot;
@ -444,24 +367,21 @@ public class ProjectileEntity extends ThrowableItemProjectile {
/** /**
* Gets the entity that was hit by the projectile * Gets the entity that was hit by the projectile
*/ */
public Entity getEntity() public Entity getEntity() {
{
return this.entity; return this.entity;
} }
/** /**
* Gets the position the projectile hit * Gets the position the projectile hit
*/ */
public Vec3 getHitPos() public Vec3 getHitPos() {
{
return this.hitVec; return this.hitVec;
} }
/** /**
* Gets if this was a headshot * Gets if this was a headshot
*/ */
public boolean isHeadshot() public boolean isHeadshot() {
{
return this.headshot; return this.headshot;
} }
} }

View file

@ -1,190 +1,180 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.block.*;
import net.minecraft.world.phys.*;
import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.BoundingBoxManager;
import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.headshot.IHeadshotBox;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.RandomSource;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.mcreator.target.procedures.RpgRocketDanSheWuJiZhongFangKuaiShiProcedure;
import net.mcreator.target.procedures.RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.procedures.RocketHitProcedure;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.procedures.RocketHitProcedure;
import net.mcreator.target.procedures.RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.procedures.RpgRocketDanSheWuJiZhongFangKuaiShiProcedure;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import java.util.Optional; import java.util.Optional;
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
public class RpgRocketEntity extends AbstractArrow implements ItemSupplier { public class RpgRocketEntity extends AbstractArrow implements ItemSupplier {
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR); public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR);
public RpgRocketEntity(PlayMessages.SpawnEntity packet, Level world) { public RpgRocketEntity(PlayMessages.SpawnEntity packet, Level world) {
super(TargetModEntities.RPG_ROCKET.get(), world); super(TargetModEntities.RPG_ROCKET.get(), world);
}
public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) {
super(type, world);
}
public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, double x, double y, double z, Level world) {
super(type, x, y, z, world);
}
public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, LivingEntity entity, Level world) {
super(type, entity, world);
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack getItem() {
return PROJECTILE_ITEM;
}
@Override
protected ItemStack getPickupItem() {
return PROJECTILE_ITEM;
}
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position();
Entity entity = result.getEntity();
if(this.getOwner() instanceof LivingEntity living){
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:indication voice @a ~ ~ ~ 1 1");
}
}
RocketHitProcedure.execute(this.level(), this);
if (entity instanceof LivingEntity livingEntity) {
entity.invulnerableTime = 0;
}
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if(entity instanceof LivingEntity)
{
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null)
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null)
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent())
{
box = box.inflate( 0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55))
{
hitPos = headshotHitPos.get();
headshot = true;
}
if(headshot){
if(this.getOwner() instanceof LivingEntity living){
setBaseDamage(getBaseDamage() * 5);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
this.discard();
} }
@Override public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) {
public void onHitBlock(BlockHitResult blockHitResult) { super(type, world);
super.onHitBlock(blockHitResult); }
RpgRocketDanSheWuJiZhongFangKuaiShiProcedure.execute(this.level(), this);
}
@Override public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, double x, double y, double z, Level world) {
public void tick() { super(type, x, y, z, world);
super.tick(); }
RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this);
if(this.tickCount>100){
this.discard();
}
}
public static RpgRocketEntity shoot(Level world, LivingEntity entity, RandomSource source) { public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, LivingEntity entity, Level world) {
return shoot(world, entity, source, 1f, 5, 5); super(type, entity, world);
} }
public static RpgRocketEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) { @Override
RpgRocketEntity entityarrow = new RpgRocketEntity(TargetModEntities.RPG_ROCKET.get(), entity, world); public Packet<ClientGamePacketListener> getAddEntityPacket() {
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0); return NetworkHooks.getEntitySpawningPacket(this);
entityarrow.setSilent(true); }
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
return entityarrow;
}
public static RpgRocketEntity shoot(LivingEntity entity, LivingEntity target) { @Override
RpgRocketEntity entityarrow = new RpgRocketEntity(TargetModEntities.RPG_ROCKET.get(), entity, entity.level()); @OnlyIn(Dist.CLIENT)
double dx = target.getX() - entity.getX(); public ItemStack getItem() {
double dy = target.getY() + target.getEyeHeight() - 1.1; return PROJECTILE_ITEM;
double dz = target.getZ() - entity.getZ(); }
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true); @Override
entityarrow.setBaseDamage(5); protected ItemStack getPickupItem() {
entityarrow.setKnockback(5); return PROJECTILE_ITEM;
entityarrow.setCritArrow(false); }
entity.level().addFreshEntity(entityarrow);
return entityarrow; @Override
} protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position();
Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) {
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:indication voice @a ~ ~ ~ 1 1");
}
}
RocketHitProcedure.execute(this.level(), this);
if (entity instanceof LivingEntity) {
entity.invulnerableTime = 0;
}
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if (entity instanceof LivingEntity) {
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if (headshotBox != null) {
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if (box != null) {
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if (!headshotHitPos.isPresent()) {
box = box.inflate(0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if (headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) {
headshot = true;
}
if (headshot) {
if (this.getOwner() instanceof LivingEntity living) {
setBaseDamage(getBaseDamage() * 5);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
this.discard();
}
@Override
public void onHitBlock(BlockHitResult blockHitResult) {
super.onHitBlock(blockHitResult);
RpgRocketDanSheWuJiZhongFangKuaiShiProcedure.execute(this.level(), this);
}
@Override
public void tick() {
super.tick();
RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure.execute(this);
if (this.tickCount > 100) {
this.discard();
}
}
public static RpgRocketEntity shoot(Level world, LivingEntity entity, RandomSource source) {
return shoot(world, entity, source, 1f, 5, 5);
}
public static RpgRocketEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) {
RpgRocketEntity entityarrow = new RpgRocketEntity(TargetModEntities.RPG_ROCKET.get(), entity, world);
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0);
entityarrow.setSilent(true);
entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow);
return entityarrow;
}
public static RpgRocketEntity shoot(LivingEntity entity, LivingEntity target) {
RpgRocketEntity entityarrow = new RpgRocketEntity(TargetModEntities.RPG_ROCKET.get(), entity, entity.level());
double dx = target.getX() - entity.getX();
double dy = target.getY() + target.getEyeHeight() - 1.1;
double dz = target.getZ() - entity.getZ();
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true);
entityarrow.setBaseDamage(5);
entityarrow.setKnockback(5);
entityarrow.setCritArrow(false);
entity.level().addFreshEntity(entityarrow);
return entityarrow;
}
} }

View file

@ -1,249 +1,239 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoEntity;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.common.DungeonHooks;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.monster.Spider;
import net.minecraft.world.entity.monster.Monster;
import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
import net.minecraft.world.entity.ai.goal.RandomStrollGoal;
import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal;
import net.minecraft.world.entity.ai.goal.MeleeAttackGoal;
import net.minecraft.world.entity.ai.goal.FloatGoal;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.SpawnPlacements;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.MobType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.Difficulty;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.core.BlockPos;
import net.mcreator.target.procedures.SenpaiDangShiTiGengXinKeShiProcedure;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.procedures.SenpaiDangShiTiGengXinKeShiProcedure;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.Difficulty;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.goal.FloatGoal;
import net.minecraft.world.entity.ai.goal.MeleeAttackGoal;
import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal;
import net.minecraft.world.entity.ai.goal.RandomStrollGoal;
import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal;
import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal;
import net.minecraft.world.entity.monster.Monster;
import net.minecraft.world.entity.monster.Spider;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraftforge.common.DungeonHooks;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.registries.ForgeRegistries;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
public class SenpaiEntity extends Spider implements GeoEntity { public class SenpaiEntity extends Spider implements GeoEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING);
public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(SenpaiEntity.class, EntityDataSerializers.STRING);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private boolean swinging; private boolean swinging;
private boolean lastloop; private boolean lastloop;
private long lastSwing; private long lastSwing;
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public SenpaiEntity(PlayMessages.SpawnEntity packet, Level world) { public SenpaiEntity(PlayMessages.SpawnEntity packet, Level world) {
this(TargetModEntities.SENPAI.get(), world); this(TargetModEntities.SENPAI.get(), world);
} }
public SenpaiEntity(EntityType<SenpaiEntity> type, Level world) { public SenpaiEntity(EntityType<SenpaiEntity> type, Level world) {
super(type, world); super(type, world);
xpReward = 20; xpReward = 20;
setNoAi(false); setNoAi(false);
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
this.entityData.define(SHOOT, false); this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined"); this.entityData.define(ANIMATION, "undefined");
this.entityData.define(TEXTURE, "senpai"); this.entityData.define(TEXTURE, "senpai");
} }
public void setTexture(String texture) { public void setTexture(String texture) {
this.entityData.set(TEXTURE, texture); this.entityData.set(TEXTURE, texture);
} }
public String getTexture() { public String getTexture() {
return this.entityData.get(TEXTURE); return this.entityData.get(TEXTURE);
} }
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override @Override
protected void registerGoals() { protected void registerGoals() {
super.registerGoals(); super.registerGoals();
this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.6, false) { this.goalSelector.addGoal(1, new MeleeAttackGoal(this, 1.6, false) {
@Override @Override
protected double getAttackReachSqr(LivingEntity entity) { protected double getAttackReachSqr(LivingEntity entity) {
return this.mob.getBbWidth() * this.mob.getBbWidth() + entity.getBbWidth(); return this.mob.getBbWidth() * this.mob.getBbWidth() + entity.getBbWidth();
} }
}); });
this.targetSelector.addGoal(2, new HurtByTargetGoal(this).setAlertOthers()); this.targetSelector.addGoal(2, new HurtByTargetGoal(this).setAlertOthers());
this.goalSelector.addGoal(3, new RandomLookAroundGoal(this)); this.goalSelector.addGoal(3, new RandomLookAroundGoal(this));
this.goalSelector.addGoal(4, new FloatGoal(this)); this.goalSelector.addGoal(4, new FloatGoal(this));
this.goalSelector.addGoal(5, new RandomStrollGoal(this, 0.8)); this.goalSelector.addGoal(5, new RandomStrollGoal(this, 0.8));
this.targetSelector.addGoal(6, new NearestAttackableTargetGoal(this, Player.class, false, false)); this.targetSelector.addGoal(6, new NearestAttackableTargetGoal(this, Player.class, false, false));
} }
@Override @Override
public MobType getMobType() { public MobType getMobType() {
return MobType.ILLAGER; return MobType.ILLAGER;
} }
protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHitIn) { protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHitIn) {
super.dropCustomDeathLoot(source, looting, recentlyHitIn); super.dropCustomDeathLoot(source, looting, recentlyHitIn);
this.spawnAtLocation(new ItemStack(Items.GOLDEN_APPLE)); this.spawnAtLocation(new ItemStack(Items.GOLDEN_APPLE));
} }
@Override @Override
public SoundEvent getAmbientSound() { public SoundEvent getAmbientSound() {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:idle")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:idle"));
} }
@Override @Override
public void playStepSound(BlockPos pos, BlockState blockIn) { public void playStepSound(BlockPos pos, BlockState blockIn) {
this.playSound(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:step")), 0.15f, 1); this.playSound(ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:step")), 0.15f, 1);
} }
@Override @Override
public SoundEvent getHurtSound(DamageSource ds) { public SoundEvent getHurtSound(DamageSource ds) {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:ouch")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:ouch"));
} }
@Override @Override
public SoundEvent getDeathSound() { public SoundEvent getDeathSound() {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:growl")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:growl"));
} }
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);
compound.putString("Texture", this.getTexture()); compound.putString("Texture", this.getTexture());
} }
@Override @Override
public void readAdditionalSaveData(CompoundTag compound) { public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound); super.readAdditionalSaveData(compound);
if (compound.contains("Texture")) if (compound.contains("Texture"))
this.setTexture(compound.getString("Texture")); this.setTexture(compound.getString("Texture"));
} }
@Override @Override
public void baseTick() { public void baseTick() {
super.baseTick(); super.baseTick();
SenpaiDangShiTiGengXinKeShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this); SenpaiDangShiTiGengXinKeShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ(), this);
this.refreshDimensions(); this.refreshDimensions();
} }
@Override @Override
public EntityDimensions getDimensions(Pose p_33597_) { public EntityDimensions getDimensions(Pose p_33597_) {
return super.getDimensions(p_33597_).scale((float) 1); return super.getDimensions(p_33597_).scale((float) 1);
} }
@Override @Override
public void aiStep() { public void aiStep() {
super.aiStep(); super.aiStep();
this.updateSwingTime(); this.updateSwingTime();
} }
public static void init() { public static void init() {
SpawnPlacements.register(TargetModEntities.SENPAI.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, SpawnPlacements.register(TargetModEntities.SENPAI.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES,
(entityType, world, reason, pos, random) -> (world.getDifficulty() != Difficulty.PEACEFUL && Monster.isDarkEnoughToSpawn(world, pos, random) && Mob.checkMobSpawnRules(entityType, world, reason, pos, random))); (entityType, world, reason, pos, random) -> (world.getDifficulty() != Difficulty.PEACEFUL && Monster.isDarkEnoughToSpawn(world, pos, random) && Mob.checkMobSpawnRules(entityType, world, reason, pos, random)));
DungeonHooks.addDungeonMob(TargetModEntities.SENPAI.get(), 180); DungeonHooks.addDungeonMob(TargetModEntities.SENPAI.get(), 180);
} }
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
AttributeSupplier.Builder builder = Mob.createMobAttributes(); AttributeSupplier.Builder builder = Mob.createMobAttributes();
builder = builder.add(Attributes.MOVEMENT_SPEED, 0.25); builder = builder.add(Attributes.MOVEMENT_SPEED, 0.25);
builder = builder.add(Attributes.MAX_HEALTH, 51); builder = builder.add(Attributes.MAX_HEALTH, 51);
builder = builder.add(Attributes.ARMOR, 0); builder = builder.add(Attributes.ARMOR, 0);
builder = builder.add(Attributes.ATTACK_DAMAGE, 5); builder = builder.add(Attributes.ATTACK_DAMAGE, 5);
builder = builder.add(Attributes.FOLLOW_RANGE, 1024); builder = builder.add(Attributes.FOLLOW_RANGE, 1024);
builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 0.5); builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 0.5);
return builder; return builder;
} }
private PlayState movementPredicate(AnimationState event) { private PlayState movementPredicate(AnimationState event) {
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
if ((event.isMoving() || !(event.getLimbSwingAmount() > -0.15F && event.getLimbSwingAmount() < 0.15F)) if ((event.isMoving() || !(event.getLimbSwingAmount() > -0.15F && event.getLimbSwingAmount() < 0.15F))
&& !this.isAggressive()) { && !this.isAggressive()) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.senpai.walk")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.senpai.walk"));
} }
if (this.isDeadOrDying()) { if (this.isDeadOrDying()) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.senpai.die")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.senpai.die"));
} }
if (this.isAggressive() && event.isMoving()) { if (this.isAggressive() && event.isMoving()) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.senpai.run")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.senpai.run"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.senpai.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.senpai.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (animationprocedure.equals("empty")) { } else if (animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
protected void tickDeath() { protected void tickDeath() {
++this.deathTime; ++this.deathTime;
if (this.deathTime == 540) { if (this.deathTime == 540) {
this.remove(SenpaiEntity.RemovalReason.KILLED); this.remove(SenpaiEntity.RemovalReason.KILLED);
this.dropExperience(); this.dropExperience();
} }
} }
public String getSyncedAnimation() { public String getSyncedAnimation() {
return this.entityData.get(ANIMATION); return this.entityData.get(ANIMATION);
} }
public void setAnimation(String animation) { public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation); this.entityData.set(ANIMATION, animation);
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
data.add(new AnimationController<>(this, "movement", 4, this::movementPredicate)); data.add(new AnimationController<>(this, "movement", 4, this::movementPredicate));
data.add(new AnimationController<>(this, "procedure", 4, this::procedurePredicate)); data.add(new AnimationController<>(this, "procedure", 4, this::procedurePredicate));
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
} }

View file

@ -1,292 +1,275 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoEntity;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
import net.minecraft.world.entity.ai.control.FlyingMoveControl;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.SpawnGroupData;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.MobType;
import net.minecraft.world.entity.MobSpawnType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.AreaEffectCloud;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.core.BlockPos;
import net.mcreator.target.procedures.Target1ShiTiChuShiShengChengShiProcedure;
import net.mcreator.target.procedures.Target1DangYouJiShiTiShiProcedure;
import net.mcreator.target.procedures.Target1DangShiTiShouShangShiProcedure;
import net.mcreator.target.procedures.Target1DangShiTiGengXinKeShiProcedure;
import net.mcreator.target.procedures.BazipengzhuangProcedure;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.procedures.*;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.control.FlyingMoveControl;
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public class Target1Entity extends PathfinderMob implements GeoEntity { public class Target1Entity extends PathfinderMob implements GeoEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(Target1Entity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(Target1Entity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(Target1Entity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(Target1Entity.class, EntityDataSerializers.STRING);
public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(Target1Entity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(Target1Entity.class, EntityDataSerializers.STRING);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private boolean swinging; private boolean swinging;
private boolean lastloop; private boolean lastloop;
private long lastSwing; private long lastSwing;
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public Target1Entity(PlayMessages.SpawnEntity packet, Level world) { public Target1Entity(PlayMessages.SpawnEntity packet, Level world) {
this(TargetModEntities.TARGET_1.get(), world); this(TargetModEntities.TARGET_1.get(), world);
} }
public Target1Entity(EntityType<Target1Entity> type, Level world) { public Target1Entity(EntityType<Target1Entity> type, Level world) {
super(type, world); super(type, world);
xpReward = 0; xpReward = 0;
setNoAi(true); setNoAi(true);
setPersistenceRequired(); setPersistenceRequired();
this.moveControl = new FlyingMoveControl(this, 10, true); this.moveControl = new FlyingMoveControl(this, 10, true);
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
this.entityData.define(SHOOT, false); this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined"); this.entityData.define(ANIMATION, "undefined");
this.entityData.define(TEXTURE, "target"); this.entityData.define(TEXTURE, "target");
} }
public void setTexture(String texture) { public void setTexture(String texture) {
this.entityData.set(TEXTURE, texture); this.entityData.set(TEXTURE, texture);
} }
public String getTexture() { public String getTexture() {
return this.entityData.get(TEXTURE); return this.entityData.get(TEXTURE);
} }
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override @Override
protected PathNavigation createNavigation(Level world) { protected PathNavigation createNavigation(Level world) {
return new FlyingPathNavigation(this, world); return new FlyingPathNavigation(this, world);
} }
@Override @Override
public MobType getMobType() { public MobType getMobType() {
return MobType.UNDEFINED; return MobType.UNDEFINED;
} }
@Override @Override
public boolean removeWhenFarAway(double distanceToClosestPlayer) { public boolean removeWhenFarAway(double distanceToClosestPlayer) {
return false; return false;
} }
@Override @Override
public boolean causeFallDamage(float l, float d, DamageSource source) { public boolean causeFallDamage(float l, float d, DamageSource source) {
return false; return false;
} }
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
Target1DangShiTiShouShangShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ()); Target1DangShiTiShouShangShiProcedure.execute(this.level(), this.getX(), this.getY(), this.getZ());
if (source.is(DamageTypes.IN_FIRE)) if (source.is(DamageTypes.IN_FIRE))
return false; return false;
if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud)
return false; return false;
if (source.is(DamageTypes.FALL)) if (source.is(DamageTypes.FALL))
return false; return false;
if (source.is(DamageTypes.CACTUS)) if (source.is(DamageTypes.CACTUS))
return false; return false;
if (source.is(DamageTypes.DROWN)) if (source.is(DamageTypes.DROWN))
return false; return false;
if (source.is(DamageTypes.LIGHTNING_BOLT)) if (source.is(DamageTypes.LIGHTNING_BOLT))
return false; return false;
if (source.is(DamageTypes.FALLING_ANVIL)) if (source.is(DamageTypes.FALLING_ANVIL))
return false; return false;
if (source.is(DamageTypes.DRAGON_BREATH)) if (source.is(DamageTypes.DRAGON_BREATH))
return false; return false;
if (source.is(DamageTypes.WITHER)) if (source.is(DamageTypes.WITHER))
return false; return false;
if (source.is(DamageTypes.WITHER_SKULL)) if (source.is(DamageTypes.WITHER_SKULL))
return false; return false;
return super.hurt(source, amount); return super.hurt(source, amount);
} }
@Override @Override
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, @Nullable SpawnGroupData livingdata, @Nullable CompoundTag tag) { public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType reason, @Nullable SpawnGroupData livingdata, @Nullable CompoundTag tag) {
SpawnGroupData retval = super.finalizeSpawn(world, difficulty, reason, livingdata, tag); SpawnGroupData retval = super.finalizeSpawn(world, difficulty, reason, livingdata, tag);
Target1ShiTiChuShiShengChengShiProcedure.execute(this); Target1ShiTiChuShiShengChengShiProcedure.execute(this);
return retval; return retval;
} }
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);
compound.putString("Texture", this.getTexture()); compound.putString("Texture", this.getTexture());
} }
@Override @Override
public void readAdditionalSaveData(CompoundTag compound) { public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound); super.readAdditionalSaveData(compound);
if (compound.contains("Texture")) if (compound.contains("Texture"))
this.setTexture(compound.getString("Texture")); this.setTexture(compound.getString("Texture"));
} }
@Override @Override
public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) { public InteractionResult mobInteract(Player sourceentity, InteractionHand hand) {
ItemStack itemstack = sourceentity.getItemInHand(hand); ItemStack itemstack = sourceentity.getItemInHand(hand);
InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide()); InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide());
super.mobInteract(sourceentity, hand); super.mobInteract(sourceentity, hand);
double x = this.getX(); double x = this.getX();
double y = this.getY(); double y = this.getY();
double z = this.getZ(); double z = this.getZ();
Entity entity = this; Entity entity = this;
Level world = this.level(); Level world = this.level();
Target1DangYouJiShiTiShiProcedure.execute(y, entity, sourceentity); Target1DangYouJiShiTiShiProcedure.execute(y, entity, sourceentity);
return retval; return retval;
} }
@Override @Override
public void baseTick() { public void baseTick() {
super.baseTick(); super.baseTick();
Target1DangShiTiGengXinKeShiProcedure.execute(this); Target1DangShiTiGengXinKeShiProcedure.execute(this);
this.refreshDimensions(); this.refreshDimensions();
} }
@Override @Override
public EntityDimensions getDimensions(Pose p_33597_) { public EntityDimensions getDimensions(Pose p_33597_) {
Entity entity = this; Entity entity = this;
Level world = this.level(); Level world = this.level();
double x = this.getX(); double x = this.getX();
double y = entity.getY(); double y = entity.getY();
double z = entity.getZ(); double z = entity.getZ();
return super.getDimensions(p_33597_).scale((float) BazipengzhuangProcedure.execute(entity)); return super.getDimensions(p_33597_).scale((float) BazipengzhuangProcedure.execute(entity));
} }
@Override @Override
public boolean isPushable() { public boolean isPushable() {
return false; return false;
} }
@Override @Override
protected void doPush(Entity entityIn) { protected void doPush(Entity entityIn) {
} }
@Override @Override
protected void pushEntities() { protected void pushEntities() {
} }
@Override @Override
protected void checkFallDamage(double y, boolean onGroundIn, BlockState state, BlockPos pos) { protected void checkFallDamage(double y, boolean onGroundIn, BlockState state, BlockPos pos) {
} }
@Override @Override
public void setNoGravity(boolean ignored) { public void setNoGravity(boolean ignored) {
super.setNoGravity(true); super.setNoGravity(true);
} }
@Override @Override
public void aiStep() { public void aiStep() {
super.aiStep(); super.aiStep();
this.updateSwingTime(); this.updateSwingTime();
this.setNoGravity(true); this.setNoGravity(true);
} }
public static void init() { public static void init() {
} }
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
AttributeSupplier.Builder builder = Mob.createMobAttributes(); AttributeSupplier.Builder builder = Mob.createMobAttributes();
builder = builder.add(Attributes.MOVEMENT_SPEED, 0); builder = builder.add(Attributes.MOVEMENT_SPEED, 0);
builder = builder.add(Attributes.MAX_HEALTH, 40); builder = builder.add(Attributes.MAX_HEALTH, 40);
builder = builder.add(Attributes.ARMOR, 0); builder = builder.add(Attributes.ARMOR, 0);
builder = builder.add(Attributes.ATTACK_DAMAGE, 0); builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
builder = builder.add(Attributes.FOLLOW_RANGE, 16); builder = builder.add(Attributes.FOLLOW_RANGE, 16);
builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 10); builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 10);
builder = builder.add(Attributes.FLYING_SPEED, 0); builder = builder.add(Attributes.FLYING_SPEED, 0);
return builder; return builder;
} }
private PlayState movementPredicate(AnimationState event) { private PlayState movementPredicate(AnimationState event) {
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.target.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.target.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (animationprocedure.equals("empty")) { } else if (animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
protected void tickDeath() { protected void tickDeath() {
++this.deathTime; ++this.deathTime;
if (this.deathTime == 100) { if (this.deathTime == 100) {
this.remove(Target1Entity.RemovalReason.KILLED); this.remove(Target1Entity.RemovalReason.KILLED);
this.dropExperience(); this.dropExperience();
} }
} }
public String getSyncedAnimation() { public String getSyncedAnimation() {
return this.entityData.get(ANIMATION); return this.entityData.get(ANIMATION);
} }
public void setAnimation(String animation) { public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation); this.entityData.set(ANIMATION, animation);
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate)); data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate)); data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate));
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
} }

View file

@ -1,265 +1,254 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoEntity;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
import net.minecraft.world.entity.ai.control.FlyingMoveControl;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.MobType;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.AreaEffectCloud;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.core.BlockPos;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
import net.minecraft.network.syncher.SynchedEntityData;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.control.FlyingMoveControl;
import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation;
import net.minecraft.world.entity.ai.navigation.PathNavigation;
import net.minecraft.world.entity.projectile.ThrownPotion;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.registries.ForgeRegistries;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
public class TargetEntity extends PathfinderMob implements GeoEntity { public class TargetEntity extends PathfinderMob implements GeoEntity {
public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor<Boolean> SHOOT = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.BOOLEAN);
public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> ANIMATION = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.STRING);
public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor<String> TEXTURE = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.STRING);
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private boolean swinging; private boolean swinging;
private boolean lastloop; private boolean lastloop;
private long lastSwing; private long lastSwing;
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public TargetEntity(PlayMessages.SpawnEntity packet, Level world) { public TargetEntity(PlayMessages.SpawnEntity packet, Level world) {
this(TargetModEntities.TARGET.get(), world); this(TargetModEntities.TARGET.get(), world);
} }
public TargetEntity(EntityType<TargetEntity> type, Level world) { public TargetEntity(EntityType<TargetEntity> type, Level world) {
super(type, world); super(type, world);
xpReward = 0; xpReward = 0;
setNoAi(true); setNoAi(true);
setPersistenceRequired(); setPersistenceRequired();
this.moveControl = new FlyingMoveControl(this, 10, true); this.moveControl = new FlyingMoveControl(this, 10, true);
} }
@Override @Override
protected void defineSynchedData() { protected void defineSynchedData() {
super.defineSynchedData(); super.defineSynchedData();
this.entityData.define(SHOOT, false); this.entityData.define(SHOOT, false);
this.entityData.define(ANIMATION, "undefined"); this.entityData.define(ANIMATION, "undefined");
this.entityData.define(TEXTURE, "target"); this.entityData.define(TEXTURE, "target");
} }
public void setTexture(String texture) { public void setTexture(String texture) {
this.entityData.set(TEXTURE, texture); this.entityData.set(TEXTURE, texture);
} }
public String getTexture() { public String getTexture() {
return this.entityData.get(TEXTURE); return this.entityData.get(TEXTURE);
} }
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override @Override
protected PathNavigation createNavigation(Level world) { protected PathNavigation createNavigation(Level world) {
return new FlyingPathNavigation(this, world); return new FlyingPathNavigation(this, world);
} }
@Override @Override
public MobType getMobType() { public MobType getMobType() {
return MobType.UNDEFINED; return MobType.UNDEFINED;
} }
@Override @Override
public boolean removeWhenFarAway(double distanceToClosestPlayer) { public boolean removeWhenFarAway(double distanceToClosestPlayer) {
return false; return false;
} }
@Override @Override
public SoundEvent getHurtSound(DamageSource ds) { public SoundEvent getHurtSound(DamageSource ds) {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit"));
} }
@Override @Override
public SoundEvent getDeathSound() { public SoundEvent getDeathSound() {
return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit")); return ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:hit"));
} }
@Override @Override
public boolean causeFallDamage(float l, float d, DamageSource source) { public boolean causeFallDamage(float l, float d, DamageSource source) {
return false; return false;
} }
@Override @Override
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (source.is(DamageTypes.IN_FIRE)) if (source.is(DamageTypes.IN_FIRE))
return false; return false;
if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud)
return false; return false;
if (source.is(DamageTypes.FALL)) if (source.is(DamageTypes.FALL))
return false; return false;
if (source.is(DamageTypes.CACTUS)) if (source.is(DamageTypes.CACTUS))
return false; return false;
if (source.is(DamageTypes.DROWN)) if (source.is(DamageTypes.DROWN))
return false; return false;
if (source.is(DamageTypes.LIGHTNING_BOLT)) if (source.is(DamageTypes.LIGHTNING_BOLT))
return false; return false;
if (source.is(DamageTypes.EXPLOSION)) if (source.is(DamageTypes.EXPLOSION))
return false; return false;
if (source.is(DamageTypes.FALLING_ANVIL)) if (source.is(DamageTypes.FALLING_ANVIL))
return false; return false;
if (source.is(DamageTypes.DRAGON_BREATH)) if (source.is(DamageTypes.DRAGON_BREATH))
return false; return false;
if (source.is(DamageTypes.WITHER)) if (source.is(DamageTypes.WITHER))
return false; return false;
if (source.is(DamageTypes.WITHER_SKULL)) if (source.is(DamageTypes.WITHER_SKULL))
return false; return false;
return super.hurt(source, amount); return super.hurt(source, amount);
} }
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);
compound.putString("Texture", this.getTexture()); compound.putString("Texture", this.getTexture());
} }
@Override @Override
public void readAdditionalSaveData(CompoundTag compound) { public void readAdditionalSaveData(CompoundTag compound) {
super.readAdditionalSaveData(compound); super.readAdditionalSaveData(compound);
if (compound.contains("Texture")) if (compound.contains("Texture"))
this.setTexture(compound.getString("Texture")); this.setTexture(compound.getString("Texture"));
} }
@Override @Override
public void baseTick() { public void baseTick() {
super.baseTick(); super.baseTick();
this.refreshDimensions(); this.refreshDimensions();
} }
@Override @Override
public EntityDimensions getDimensions(Pose p_33597_) { public EntityDimensions getDimensions(Pose p_33597_) {
return super.getDimensions(p_33597_).scale((float) 1); return super.getDimensions(p_33597_).scale((float) 1);
} }
@Override @Override
public boolean isPushable() { public boolean isPushable() {
return false; return false;
} }
@Override @Override
protected void doPush(Entity entityIn) { protected void doPush(Entity entityIn) {
} }
@Override @Override
protected void pushEntities() { protected void pushEntities() {
} }
@Override @Override
protected void checkFallDamage(double y, boolean onGroundIn, BlockState state, BlockPos pos) { protected void checkFallDamage(double y, boolean onGroundIn, BlockState state, BlockPos pos) {
} }
@Override @Override
public void setNoGravity(boolean ignored) { public void setNoGravity(boolean ignored) {
super.setNoGravity(true); super.setNoGravity(true);
} }
@Override @Override
public void aiStep() { public void aiStep() {
super.aiStep(); super.aiStep();
this.updateSwingTime(); this.updateSwingTime();
this.setNoGravity(true); this.setNoGravity(true);
} }
public static void init() { public static void init() {
} }
public static AttributeSupplier.Builder createAttributes() { public static AttributeSupplier.Builder createAttributes() {
AttributeSupplier.Builder builder = Mob.createMobAttributes(); AttributeSupplier.Builder builder = Mob.createMobAttributes();
builder = builder.add(Attributes.MOVEMENT_SPEED, 0); builder = builder.add(Attributes.MOVEMENT_SPEED, 0);
builder = builder.add(Attributes.MAX_HEALTH, 5); builder = builder.add(Attributes.MAX_HEALTH, 5);
builder = builder.add(Attributes.ARMOR, 0); builder = builder.add(Attributes.ARMOR, 0);
builder = builder.add(Attributes.ATTACK_DAMAGE, 0); builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
builder = builder.add(Attributes.FOLLOW_RANGE, 16); builder = builder.add(Attributes.FOLLOW_RANGE, 16);
builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 10); builder = builder.add(Attributes.KNOCKBACK_RESISTANCE, 10);
builder = builder.add(Attributes.FLYING_SPEED, 0); builder = builder.add(Attributes.FLYING_SPEED, 0);
return builder; return builder;
} }
private PlayState movementPredicate(AnimationState event) { private PlayState movementPredicate(AnimationState event) {
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
if (this.isDeadOrDying()) { if (this.isDeadOrDying()) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.target2.down")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.target2.down"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.target2.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.target2.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (animationprocedure.equals("empty")) { } else if (animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
protected void tickDeath() { protected void tickDeath() {
++this.deathTime; ++this.deathTime;
if (this.deathTime == 20) { if (this.deathTime == 20) {
this.remove(TargetEntity.RemovalReason.KILLED); this.remove(TargetEntity.RemovalReason.KILLED);
this.dropExperience(); this.dropExperience();
} }
} }
public String getSyncedAnimation() { public String getSyncedAnimation() {
return this.entityData.get(ANIMATION); return this.entityData.get(ANIMATION);
} }
public void setAnimation(String animation) { public void setAnimation(String animation) {
this.entityData.set(ANIMATION, animation); this.entityData.set(ANIMATION, animation);
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate)); data.add(new AnimationController<>(this, "movement", 0, this::movementPredicate));
data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate)); data.add(new AnimationController<>(this, "procedure", 0, this::procedurePredicate));
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
} }

View file

@ -1,185 +1,172 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.block.*;
import net.minecraft.world.phys.*;
import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.BoundingBoxManager;
import net.mcreator.target.headshot.IHeadshotBox; import net.mcreator.target.headshot.IHeadshotBox;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.minecraftforge.network.PlayMessages;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.level.Level;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.ItemStack;
import net.minecraft.util.RandomSource;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.network.protocol.Packet;
import net.mcreator.target.procedures.TaserBulletTouZhiWuFeiXingKeProcedure;
import net.mcreator.target.procedures.TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.procedures.TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure;
import net.mcreator.target.procedures.TaserBulletTouZhiWuFeiXingKeProcedure;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.projectile.ItemSupplier;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkHooks;
import net.minecraftforge.network.PlayMessages;
import java.util.Optional; import java.util.Optional;
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSupplier { public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSupplier {
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR); public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR);
public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level world) { public TaserBulletProjectileEntity(PlayMessages.SpawnEntity packet, Level world) {
super(TargetModEntities.TASER_BULLET_PROJECTILE.get(), world); super(TargetModEntities.TASER_BULLET_PROJECTILE.get(), world);
} }
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) { public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, Level world) {
super(type, world); super(type, world);
} }
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, double x, double y, double z, Level world) { public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, double x, double y, double z, Level world) {
super(type, x, y, z, world); super(type, x, y, z, world);
} }
public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, LivingEntity entity, Level world) { public TaserBulletProjectileEntity(EntityType<? extends TaserBulletProjectileEntity> type, LivingEntity entity, Level world) {
super(type, entity, world); super(type, entity, world);
} }
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
} }
@Override @Override
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public ItemStack getItem() { public ItemStack getItem() {
return PROJECTILE_ITEM; return PROJECTILE_ITEM;
} }
@Override @Override
protected ItemStack getPickupItem() { protected ItemStack getPickupItem() {
return PROJECTILE_ITEM; return PROJECTILE_ITEM;
} }
@Override @Override
protected void doPostHurtEffects(LivingEntity entity) { protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity); super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1); entity.setArrowCount(entity.getArrowCount() - 1);
} }
@Override @Override
protected void onHitEntity(EntityHitResult result) { protected void onHitEntity(EntityHitResult result) {
final Vec3 position = this.position(); final Vec3 position = this.position();
Entity entity = result.getEntity(); Entity entity = result.getEntity();
if(this.getOwner() instanceof LivingEntity living){ if (this.getOwner() instanceof LivingEntity living) {
double _setval = 25; double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.hitind = _setval; capability.hitind = _setval;
capability.syncPlayerVariables(living); capability.syncPlayerVariables(living);
}); });
Entity _ent = living; if (!living.level().isClientSide() && living.getServer() != null) {
if (!_ent.level().isClientSide() && _ent.getServer() != null) { living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:indication voice @a ~ ~ ~ 1 1");
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:indication voice @a ~ ~ ~ 1 1"); }
}
}
if (entity instanceof LivingEntity livingEntity) {
entity.invulnerableTime = 0;
} }
AABB boundingBox = entity.getBoundingBox(); if (entity instanceof LivingEntity) {
Vec3 startVec = this.position(); entity.invulnerableTime = 0;
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if(entity instanceof LivingEntity)
{
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null)
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null)
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent())
{
box = box.inflate( 0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55))
{
hitPos = headshotHitPos.get();
headshot = true;
}
if(headshot){
if(this.getOwner() instanceof LivingEntity living){
setBaseDamage(getBaseDamage() * 1.5f);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
Entity _ent = living;
if (!_ent.level().isClientSide() && _ent.getServer() != null) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure.execute(result.getEntity(), this, this.getOwner());
this.discard();
} }
AABB boundingBox = entity.getBoundingBox();
Vec3 startVec = this.position();
Vec3 endVec = startVec.add(this.getDeltaMovement());
Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null);
/* Check for headshot */
boolean headshot = false;
if (entity instanceof LivingEntity) {
IHeadshotBox<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if (headshotBox != null) {
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if (box != null) {
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if (headshotHitPos.isEmpty()) {
box = box.inflate(0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if (headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) {
headshot = true;
}
if (headshot) {
if (this.getOwner() instanceof LivingEntity living) {
setBaseDamage(getBaseDamage() * 1.5f);
double _setval = 25;
living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
capability.headind = _setval;
capability.syncPlayerVariables(living);
});
if (!living.level().isClientSide() && living.getServer() != null) {
living.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, living.position(), living.getRotationVector(), living.level() instanceof ServerLevel ? (ServerLevel) living.level() : null, 4,
living.getName().getString(), living.getDisplayName(), living.level().getServer(), living), "playsound target:headshot voice @a ~ ~ ~ 1 1");
}
}
}
}
}
}
super.onHitEntity(result);
TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure.execute(result.getEntity(), this, this.getOwner());
this.discard();
}
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
TaserBulletTouZhiWuFeiXingKeProcedure.execute(this); TaserBulletTouZhiWuFeiXingKeProcedure.execute(this);
if(this.tickCount>200){ if (this.tickCount > 200) {
this.discard(); this.discard();
} }
} }
public static TaserBulletProjectileEntity shoot(Level world, LivingEntity entity, RandomSource source) { public static TaserBulletProjectileEntity shoot(Level world, LivingEntity entity, RandomSource source) {
return shoot(world, entity, source, 1f, 5, 5); return shoot(world, entity, source, 1f, 5, 5);
} }
public static TaserBulletProjectileEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) { public static TaserBulletProjectileEntity shoot(Level world, LivingEntity entity, RandomSource random, float power, double damage, int knockback) {
TaserBulletProjectileEntity entityarrow = new TaserBulletProjectileEntity(TargetModEntities.TASER_BULLET_PROJECTILE.get(), entity, world); TaserBulletProjectileEntity entityarrow = new TaserBulletProjectileEntity(TargetModEntities.TASER_BULLET_PROJECTILE.get(), entity, world);
entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0); entityarrow.shoot(entity.getViewVector(1).x, entity.getViewVector(1).y, entity.getViewVector(1).z, power * 2, 0);
entityarrow.setSilent(true); entityarrow.setSilent(true);
entityarrow.setCritArrow(false); entityarrow.setCritArrow(false);
entityarrow.setBaseDamage(damage); entityarrow.setBaseDamage(damage);
entityarrow.setKnockback(knockback); entityarrow.setKnockback(knockback);
world.addFreshEntity(entityarrow); world.addFreshEntity(entityarrow);
return entityarrow; return entityarrow;
} }
public static TaserBulletProjectileEntity shoot(LivingEntity entity, LivingEntity target) { public static TaserBulletProjectileEntity shoot(LivingEntity entity, LivingEntity target) {
TaserBulletProjectileEntity entityarrow = new TaserBulletProjectileEntity(TargetModEntities.TASER_BULLET_PROJECTILE.get(), entity, entity.level()); TaserBulletProjectileEntity entityarrow = new TaserBulletProjectileEntity(TargetModEntities.TASER_BULLET_PROJECTILE.get(), entity, entity.level());
double dx = target.getX() - entity.getX(); double dx = target.getX() - entity.getX();
double dy = target.getY() + target.getEyeHeight() - 1.1; double dy = target.getY() + target.getEyeHeight() - 1.1;
double dz = target.getZ() - entity.getZ(); double dz = target.getZ() - entity.getZ();
entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F); entityarrow.shoot(dx, dy - entityarrow.getY() + Math.hypot(dx, dz) * 0.2F, dz, 1f * 2, 12.0F);
entityarrow.setSilent(true); entityarrow.setSilent(true);
entityarrow.setBaseDamage(5); entityarrow.setBaseDamage(5);
entityarrow.setKnockback(5); entityarrow.setKnockback(5);
entityarrow.setCritArrow(false); entityarrow.setCritArrow(false);
entity.level().addFreshEntity(entityarrow); entity.level().addFreshEntity(entityarrow);
return entityarrow; return entityarrow;
} }
} }

View file

@ -1,29 +1,26 @@
package net.mcreator.target.entity.layer; package net.mcreator.target.entity.layer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.MultiBufferSource;
import net.mcreator.target.entity.TargetEntity;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.entity.TargetEntity;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class TargetLayer extends GeoRenderLayer<TargetEntity> { public class TargetLayer extends GeoRenderLayer<TargetEntity> {
private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/entities/target_e.png"); private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/entities/target_e.png");
public TargetLayer(GeoRenderer<TargetEntity> entityRenderer) { public TargetLayer(GeoRenderer<TargetEntity> entityRenderer) {
super(entityRenderer); super(entityRenderer);
} }
@Override @Override
public void render(PoseStack poseStack, TargetEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) { public void render(PoseStack poseStack, TargetEntity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.eyes(LAYER); RenderType glowRenderType = RenderType.eyes(LAYER);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1); getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
} }
} }

View file

@ -1,25 +1,23 @@
package net.mcreator.target.entity.model; package net.mcreator.target.entity.model;
import net.mcreator.target.entity.ClaymoreEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.entity.ClaymoreEntity;
public class ClaymoreModel extends GeoModel<ClaymoreEntity> { public class ClaymoreModel extends GeoModel<ClaymoreEntity> {
@Override @Override
public ResourceLocation getAnimationResource(ClaymoreEntity entity) { public ResourceLocation getAnimationResource(ClaymoreEntity entity) {
return new ResourceLocation("target", "animations/claymore.animation.json"); return new ResourceLocation("target", "animations/claymore.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(ClaymoreEntity entity) { public ResourceLocation getModelResource(ClaymoreEntity entity) {
return new ResourceLocation("target", "geo/claymore.geo.json"); return new ResourceLocation("target", "geo/claymore.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(ClaymoreEntity entity) { public ResourceLocation getTextureResource(ClaymoreEntity entity) {
return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png"); return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png");
} }
} }

View file

@ -1,41 +1,39 @@
package net.mcreator.target.entity.model; package net.mcreator.target.entity.model;
import software.bernie.geckolib.model.data.EntityModelData;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.constant.DataTickets;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.entity.MortarEntity; import net.mcreator.target.entity.MortarEntity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import software.bernie.geckolib.constant.DataTickets;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.model.data.EntityModelData;
public class MortarModel extends GeoModel<MortarEntity> { public class MortarModel extends GeoModel<MortarEntity> {
@Override @Override
public ResourceLocation getAnimationResource(MortarEntity entity) { public ResourceLocation getAnimationResource(MortarEntity entity) {
return new ResourceLocation("target", "animations/mortar.animation.json"); return new ResourceLocation("target", "animations/mortar.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(MortarEntity entity) { public ResourceLocation getModelResource(MortarEntity entity) {
return new ResourceLocation("target", "geo/mortar.geo.json"); return new ResourceLocation("target", "geo/mortar.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(MortarEntity entity) { public ResourceLocation getTextureResource(MortarEntity entity) {
return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png"); return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png");
} }
@Override @Override
public void setCustomAnimations(MortarEntity animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(MortarEntity animatable, long instanceId, AnimationState animationState) {
CoreGeoBone head = getAnimationProcessor().getBone("paoguan"); CoreGeoBone head = getAnimationProcessor().getBone("paoguan");
CoreGeoBone jiaojia = getAnimationProcessor().getBone("jiaojia"); CoreGeoBone jiaojia = getAnimationProcessor().getBone("jiaojia");
if (head != null) { if (head != null) {
EntityModelData entityData = (EntityModelData) animationState.getData(DataTickets.ENTITY_MODEL_DATA); EntityModelData entityData = (EntityModelData) animationState.getData(DataTickets.ENTITY_MODEL_DATA);
head.setRotX((entityData.headPitch()) * Mth.DEG_TO_RAD); head.setRotX((entityData.headPitch()) * Mth.DEG_TO_RAD);
jiaojia.setRotX(-2 * ((entityData.headPitch() - (10 - entityData.headPitch() * 0.1f)) * Mth.DEG_TO_RAD)); jiaojia.setRotX(-2 * ((entityData.headPitch() - (10 - entityData.headPitch() * 0.1f)) * Mth.DEG_TO_RAD));
} }
} }
} }

View file

@ -1,40 +1,38 @@
package net.mcreator.target.entity.model; package net.mcreator.target.entity.model;
import software.bernie.geckolib.model.data.EntityModelData;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.constant.DataTickets;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.entity.SenpaiEntity; import net.mcreator.target.entity.SenpaiEntity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import software.bernie.geckolib.constant.DataTickets;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.model.data.EntityModelData;
public class SenpaiModel extends GeoModel<SenpaiEntity> { public class SenpaiModel extends GeoModel<SenpaiEntity> {
@Override @Override
public ResourceLocation getAnimationResource(SenpaiEntity entity) { public ResourceLocation getAnimationResource(SenpaiEntity entity) {
return new ResourceLocation("target", "animations/senpai.animation.json"); return new ResourceLocation("target", "animations/senpai.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(SenpaiEntity entity) { public ResourceLocation getModelResource(SenpaiEntity entity) {
return new ResourceLocation("target", "geo/senpai.geo.json"); return new ResourceLocation("target", "geo/senpai.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(SenpaiEntity entity) { public ResourceLocation getTextureResource(SenpaiEntity entity) {
return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png"); return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png");
} }
@Override @Override
public void setCustomAnimations(SenpaiEntity animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(SenpaiEntity animatable, long instanceId, AnimationState animationState) {
CoreGeoBone head = getAnimationProcessor().getBone("head"); CoreGeoBone head = getAnimationProcessor().getBone("head");
if (head != null) { if (head != null) {
EntityModelData entityData = (EntityModelData) animationState.getData(DataTickets.ENTITY_MODEL_DATA); EntityModelData entityData = (EntityModelData) animationState.getData(DataTickets.ENTITY_MODEL_DATA);
head.setRotX(entityData.headPitch() * Mth.DEG_TO_RAD); head.setRotX(entityData.headPitch() * Mth.DEG_TO_RAD);
head.setRotY(entityData.netHeadYaw() * Mth.DEG_TO_RAD); head.setRotY(entityData.netHeadYaw() * Mth.DEG_TO_RAD);
} }
} }
} }

View file

@ -1,36 +1,34 @@
package net.mcreator.target.entity.model; package net.mcreator.target.entity.model;
import software.bernie.geckolib.model.data.EntityModelData;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.constant.DataTickets;
import net.minecraft.util.Mth;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.entity.Target1Entity; import net.mcreator.target.entity.Target1Entity;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import software.bernie.geckolib.constant.DataTickets;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.model.data.EntityModelData;
public class Target1Model extends GeoModel<Target1Entity> { public class Target1Model extends GeoModel<Target1Entity> {
@Override @Override
public ResourceLocation getAnimationResource(Target1Entity entity) { public ResourceLocation getAnimationResource(Target1Entity entity) {
return new ResourceLocation("target", "animations/target.animation.json"); return new ResourceLocation("target", "animations/target.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(Target1Entity entity) { public ResourceLocation getModelResource(Target1Entity entity) {
return new ResourceLocation("target", "geo/target.geo.json"); return new ResourceLocation("target", "geo/target.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(Target1Entity entity) { public ResourceLocation getTextureResource(Target1Entity entity) {
return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png"); return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png");
} }
@Override @Override
public void setCustomAnimations(Target1Entity animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(Target1Entity animatable, long instanceId, AnimationState animationState) {
CoreGeoBone head = getAnimationProcessor().getBone("ba"); CoreGeoBone head = getAnimationProcessor().getBone("ba");
EntityModelData entityData = (EntityModelData) animationState.getData(DataTickets.ENTITY_MODEL_DATA); EntityModelData entityData = (EntityModelData) animationState.getData(DataTickets.ENTITY_MODEL_DATA);
head.setRotX(entityData.headPitch() * Mth.DEG_TO_RAD); head.setRotX(entityData.headPitch() * Mth.DEG_TO_RAD);
} }
} }

View file

@ -1,25 +1,23 @@
package net.mcreator.target.entity.model; package net.mcreator.target.entity.model;
import net.mcreator.target.entity.TargetEntity;
import net.minecraft.resources.ResourceLocation;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.entity.TargetEntity;
public class TargetModel extends GeoModel<TargetEntity> { public class TargetModel extends GeoModel<TargetEntity> {
@Override @Override
public ResourceLocation getAnimationResource(TargetEntity entity) { public ResourceLocation getAnimationResource(TargetEntity entity) {
return new ResourceLocation("target", "animations/target2.animation.json"); return new ResourceLocation("target", "animations/target2.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(TargetEntity entity) { public ResourceLocation getModelResource(TargetEntity entity) {
return new ResourceLocation("target", "geo/target2.geo.json"); return new ResourceLocation("target", "geo/target2.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(TargetEntity entity) { public ResourceLocation getTextureResource(TargetEntity entity) {
return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png"); return new ResourceLocation("target", "textures/entities/" + entity.getTexture() + ".png");
} }
} }

View file

@ -8,21 +8,18 @@ import javax.annotation.Nullable;
/** /**
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public class BasicHeadshotBox<T extends LivingEntity> implements IHeadshotBox<T> public class BasicHeadshotBox<T extends LivingEntity> implements IHeadshotBox<T> {
{
protected double headWidth; protected double headWidth;
protected double headHeight; protected double headHeight;
protected double headYOffset; protected double headYOffset;
public BasicHeadshotBox(double headSize, double headYOffset) public BasicHeadshotBox(double headSize, double headYOffset) {
{
this.headWidth = headSize; this.headWidth = headSize;
this.headHeight = headSize; this.headHeight = headSize;
this.headYOffset = headYOffset; this.headYOffset = headYOffset;
} }
public BasicHeadshotBox(double headWidth, double headHeight, double headYOffset) public BasicHeadshotBox(double headWidth, double headHeight, double headYOffset) {
{
this.headWidth = headWidth; this.headWidth = headWidth;
this.headHeight = headHeight; this.headHeight = headHeight;
this.headYOffset = headYOffset; this.headYOffset = headYOffset;
@ -30,8 +27,7 @@ public class BasicHeadshotBox<T extends LivingEntity> implements IHeadshotBox<T>
@Nullable @Nullable
@Override @Override
public AABB getHeadshotBox(T entity) public AABB getHeadshotBox(T entity) {
{
double halfWidth = this.headWidth / 2.0; double halfWidth = this.headWidth / 2.0;
AABB headBox = new AABB(-halfWidth * 0.0625, 0, -halfWidth * 0.0625, halfWidth * 0.0625, this.headHeight * 0.0625, halfWidth * 0.0625); AABB headBox = new AABB(-halfWidth * 0.0625, 0, -halfWidth * 0.0625, halfWidth * 0.0625, this.headHeight * 0.0625, halfWidth * 0.0625);
headBox = headBox.move(0, this.headYOffset * 0.0625, 0); headBox = headBox.move(0, this.headYOffset * 0.0625, 0);

View file

@ -1,5 +1,7 @@
package net.mcreator.target.headshot; package net.mcreator.target.headshot;
//import com.mrcrayfish.guns.Config; //import com.mrcrayfish.guns.Config;
import net.mcreator.target.init.TargetModEntities;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
@ -11,9 +13,6 @@ import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.LogicalSide;
import net.mcreator.target.entity.Target1Entity;
import net.mcreator.target.entity.SenpaiEntity;
import net.mcreator.target.init.TargetModEntities;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.HashMap; import java.util.HashMap;
@ -26,30 +25,25 @@ import java.util.WeakHashMap;
/** /**
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public class BoundingBoxManager public class BoundingBoxManager {
{ private static final Map<EntityType<?>, IHeadshotBox<?>> headshotBoxes = new HashMap<>();
private static Map<EntityType<?>, IHeadshotBox<?>> headshotBoxes = new HashMap<>(); private static final WeakHashMap<Player, LinkedList<AABB>> playerBoxes = new WeakHashMap<>();
private static WeakHashMap<Player, LinkedList<AABB>> playerBoxes = new WeakHashMap<>();
static static {
{
/* Player */ /* Player */
registerHeadshotBox(EntityType.PLAYER, (entity) -> { registerHeadshotBox(EntityType.PLAYER, (entity) -> {
AABB headBox = new AABB(-4 * 0.0625, 0, -4 * 0.0625, 4 * 0.0625, 8 * 0.0625, 4 * 0.0625); AABB headBox = new AABB(-4 * 0.0625, 0, -4 * 0.0625, 4 * 0.0625, 8 * 0.0625, 4 * 0.0625);
double scale = 30.0 / 32.0; double scale = 30.0 / 32.0;
if(entity.getBbHeight() <= 1) if (entity.getBbHeight() <= 1) {
{
headBox = headBox.move(0, 3 * 0.0625, 0); headBox = headBox.move(0, 3 * 0.0625, 0);
Vec3 pos = Vec3.directionFromRotation(entity.getXRot(), entity.yBodyRot).normalize().scale(0.8); Vec3 pos = Vec3.directionFromRotation(entity.getXRot(), entity.yBodyRot).normalize().scale(0.8);
headBox = headBox.move(pos); headBox = headBox.move(pos);
} } else {
else
{
headBox = headBox.move(0, entity.isShiftKeyDown() ? 20 * 0.0625 : 24 * 0.0625, 0); headBox = headBox.move(0, entity.isShiftKeyDown() ? 20 * 0.0625 : 24 * 0.0625, 0);
} }
return new AABB(headBox.minX * scale, headBox.minY * scale, headBox.minZ * scale, headBox.maxX * scale, headBox.maxY * scale, headBox.maxZ * scale); return new AABB(headBox.minX * scale, headBox.minY * scale, headBox.minZ * scale, headBox.maxX * scale, headBox.maxY * scale, headBox.maxZ * scale);
}); });
registerHeadshotBox(TargetModEntities.SENPAI.get(), new BasicHeadshotBox<>(8.0, 22.0)); registerHeadshotBox(TargetModEntities.SENPAI.get(), new BasicHeadshotBox<>(8.0, 22.0));
registerHeadshotBox(TargetModEntities.TARGET_1.get(), new BasicHeadshotBox<>(14.0, 20.0)); registerHeadshotBox(TargetModEntities.TARGET_1.get(), new BasicHeadshotBox<>(14.0, 20.0));
registerHeadshotBox(EntityType.ZOMBIE, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5)); registerHeadshotBox(EntityType.ZOMBIE, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5));
registerHeadshotBox(EntityType.ZOMBIFIED_PIGLIN, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5)); registerHeadshotBox(EntityType.ZOMBIFIED_PIGLIN, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5));
@ -96,50 +90,41 @@ public class BoundingBoxManager
* @param headshotBox a {@link IHeadshotBox} get * @param headshotBox a {@link IHeadshotBox} get
* @param <T> a type that extends {@link LivingEntity} * @param <T> a type that extends {@link LivingEntity}
*/ */
public static <T extends LivingEntity> void registerHeadshotBox(EntityType<T> type, IHeadshotBox<T> headshotBox) public static <T extends LivingEntity> void registerHeadshotBox(EntityType<T> type, IHeadshotBox<T> headshotBox) {
{
headshotBoxes.putIfAbsent(type, headshotBox); headshotBoxes.putIfAbsent(type, headshotBox);
} }
@Nullable @Nullable
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <T extends Entity> IHeadshotBox<T> getHeadshotBoxes(EntityType<T> type) public static <T extends Entity> IHeadshotBox<T> getHeadshotBoxes(EntityType<T> type) {
{
return (IHeadshotBox<T>) headshotBoxes.get(type); return (IHeadshotBox<T>) headshotBoxes.get(type);
} }
@SubscribeEvent(receiveCanceled = true) @SubscribeEvent(receiveCanceled = true)
public void onPlayerTick(TickEvent.PlayerTickEvent event) public void onPlayerTick(TickEvent.PlayerTickEvent event) {
{
// if(!Config.COMMON.gameplay.improvedHitboxes.get()) // if(!Config.COMMON.gameplay.improvedHitboxes.get())
// return; // return;
if(event.side == LogicalSide.SERVER && event.phase == TickEvent.Phase.END) if (event.side == LogicalSide.SERVER && event.phase == TickEvent.Phase.END) {
{ if (event.player.isSpectator()) {
if(event.player.isSpectator())
{
playerBoxes.remove(event.player); playerBoxes.remove(event.player);
return; return;
} }
LinkedList<AABB> boxes = playerBoxes.computeIfAbsent(event.player, player -> new LinkedList<>()); LinkedList<AABB> boxes = playerBoxes.computeIfAbsent(event.player, player -> new LinkedList<>());
boxes.addFirst(event.player.getBoundingBox()); boxes.addFirst(event.player.getBoundingBox());
if(boxes.size() > 20) if (boxes.size() > 20) {
{
boxes.removeLast(); boxes.removeLast();
} }
} }
} }
@SubscribeEvent(receiveCanceled = true) @SubscribeEvent(receiveCanceled = true)
public void onPlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) public void onPlayerLoggedOut(PlayerEvent.PlayerLoggedOutEvent event) {
{
playerBoxes.remove(event.getEntity()); playerBoxes.remove(event.getEntity());
} }
public static AABB getBoundingBox(Player entity, int ping) public static AABB getBoundingBox(Player entity, int ping) {
{ if (playerBoxes.containsKey(entity)) {
if(playerBoxes.containsKey(entity))
{
LinkedList<AABB> boxes = playerBoxes.get(entity); LinkedList<AABB> boxes = playerBoxes.get(entity);
int index = Mth.clamp(ping, 0, boxes.size() - 1); int index = Mth.clamp(ping, 0, boxes.size() - 1);
return boxes.get(index); return boxes.get(index);

View file

@ -8,20 +8,17 @@ import javax.annotation.Nullable;
/** /**
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public class ChildHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T> public class ChildHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T> {
{ private final double childHeadScale;
private double childHeadScale; private final double headYOffsetScale;
private double headYOffsetScale;
public ChildHeadshotBox(double headSize, double headYOffset, double childHeadScale, double headYOffsetScale) public ChildHeadshotBox(double headSize, double headYOffset, double childHeadScale, double headYOffsetScale) {
{
super(headSize, headYOffset); super(headSize, headYOffset);
this.childHeadScale = childHeadScale; this.childHeadScale = childHeadScale;
this.headYOffsetScale = headYOffsetScale; this.headYOffsetScale = headYOffsetScale;
} }
public ChildHeadshotBox(double headWidth, double headHeight, double headYOffset, double childHeadScale, double headYOffsetScale) public ChildHeadshotBox(double headWidth, double headHeight, double headYOffset, double childHeadScale, double headYOffsetScale) {
{
super(headWidth, headHeight, headYOffset); super(headWidth, headHeight, headYOffset);
this.childHeadScale = childHeadScale; this.childHeadScale = childHeadScale;
this.headYOffsetScale = headYOffsetScale; this.headYOffsetScale = headYOffsetScale;
@ -29,11 +26,9 @@ public class ChildHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T
@Nullable @Nullable
@Override @Override
public AABB getHeadshotBox(T entity) public AABB getHeadshotBox(T entity) {
{
AABB headBox = super.getHeadshotBox(entity); AABB headBox = super.getHeadshotBox(entity);
if(headBox != null && entity.isBaby()) if (headBox != null && entity.isBaby()) {
{
return new AABB(headBox.minX * this.childHeadScale, headBox.minY * this.headYOffsetScale, headBox.minZ * this.childHeadScale, headBox.maxX * this.childHeadScale, headBox.maxY * (this.headYOffsetScale + 0.065), headBox.maxZ * this.childHeadScale); return new AABB(headBox.minX * this.childHeadScale, headBox.minY * this.headYOffsetScale, headBox.minZ * this.childHeadScale, headBox.maxX * this.childHeadScale, headBox.maxY * (this.headYOffsetScale + 0.065), headBox.maxZ * this.childHeadScale);
} }
return headBox; return headBox;

View file

@ -13,8 +13,7 @@ import javax.annotation.Nullable;
* <p> * <p>
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public interface IHeadshotBox<T extends Entity> public interface IHeadshotBox<T extends Entity> {
{
/** /**
* Gets a bounding box of the given entity's head in the world. This method can either return an * Gets a bounding box of the given entity's head in the world. This method can either return an
* axis aligned box or null for no hit box. * axis aligned box or null for no hit box.

View file

@ -8,23 +8,19 @@ import javax.annotation.Nullable;
/** /**
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public class NoChildHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T> public class NoChildHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T> {
{ public NoChildHeadshotBox(double headSize, double headYOffset) {
public NoChildHeadshotBox(double headSize, double headYOffset)
{
super(headSize, headYOffset); super(headSize, headYOffset);
} }
public NoChildHeadshotBox(double headWidth, double headHeight, double headYOffset) public NoChildHeadshotBox(double headWidth, double headHeight, double headYOffset) {
{
super(headWidth, headHeight, headYOffset); super(headWidth, headHeight, headYOffset);
} }
@Nullable @Nullable
@Override @Override
public AABB getHeadshotBox(T entity) public AABB getHeadshotBox(T entity) {
{ if (entity.isBaby()) return null;
if(entity.isBaby()) return null;
return super.getHeadshotBox(entity); return super.getHeadshotBox(entity);
} }
} }

View file

@ -8,23 +8,19 @@ import javax.annotation.Nullable;
/** /**
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public class NoChildRotatedHeadshotBox<T extends LivingEntity> extends RotatedHeadshotBox<T> public class NoChildRotatedHeadshotBox<T extends LivingEntity> extends RotatedHeadshotBox<T> {
{ public NoChildRotatedHeadshotBox(double headSize, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) {
public NoChildRotatedHeadshotBox(double headSize, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw)
{
super(headSize, headYOffset, headZOffset, rotatePitch, rotateYaw); super(headSize, headYOffset, headZOffset, rotatePitch, rotateYaw);
} }
public NoChildRotatedHeadshotBox(double headWidth, double headHeight, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) public NoChildRotatedHeadshotBox(double headWidth, double headHeight, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) {
{
super(headWidth, headHeight, headYOffset, headZOffset, rotatePitch, rotateYaw); super(headWidth, headHeight, headYOffset, headZOffset, rotatePitch, rotateYaw);
} }
@Nullable @Nullable
@Override @Override
public AABB getHeadshotBox(T entity) public AABB getHeadshotBox(T entity) {
{ if (entity.isBaby()) return null;
if(entity.isBaby()) return null;
return super.getHeadshotBox(entity); return super.getHeadshotBox(entity);
} }
} }

View file

@ -9,22 +9,19 @@ import javax.annotation.Nullable;
/** /**
* Author: MrCrayfish * Author: MrCrayfish
*/ */
public class RotatedHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T> public class RotatedHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox<T> {
{
protected double headZOffset; protected double headZOffset;
protected boolean rotatePitch; protected boolean rotatePitch;
protected boolean rotateYaw; protected boolean rotateYaw;
public RotatedHeadshotBox(double headSize, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) public RotatedHeadshotBox(double headSize, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) {
{
super(headSize, headSize, headYOffset); super(headSize, headSize, headYOffset);
this.headZOffset = headZOffset; this.headZOffset = headZOffset;
this.rotatePitch = rotatePitch; this.rotatePitch = rotatePitch;
this.rotateYaw = rotateYaw; this.rotateYaw = rotateYaw;
} }
public RotatedHeadshotBox(double headWidth, double headHeight, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) public RotatedHeadshotBox(double headWidth, double headHeight, double headYOffset, double headZOffset, boolean rotatePitch, boolean rotateYaw) {
{
super(headWidth, headHeight, headYOffset); super(headWidth, headHeight, headYOffset);
this.headZOffset = headZOffset; this.headZOffset = headZOffset;
this.rotatePitch = rotatePitch; this.rotatePitch = rotatePitch;
@ -33,11 +30,9 @@ public class RotatedHeadshotBox<T extends LivingEntity> extends BasicHeadshotBox
@Nullable @Nullable
@Override @Override
public AABB getHeadshotBox(T entity) public AABB getHeadshotBox(T entity) {
{
AABB headBox = super.getHeadshotBox(entity); AABB headBox = super.getHeadshotBox(entity);
if(headBox != null) if (headBox != null) {
{
headBox = headBox.move(Vec3.directionFromRotation(this.rotatePitch ? entity.getXRot() : 0.0F, this.rotateYaw ? entity.yBodyRot : 0.0F).normalize().scale(this.headZOffset * 0.0625)); headBox = headBox.move(Vec3.directionFromRotation(this.rotatePitch ? entity.getXRot() : 0.0F, this.rotateYaw ? entity.yBodyRot : 0.0F).normalize().scale(this.headZOffset * 0.0625));
return headBox; return headBox;
} }

View file

@ -1,55 +1,50 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.common.Mod; import net.mcreator.target.entity.*;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.mcreator.target.entity.TargetEntity; import net.minecraftforge.fml.common.Mod;
import net.mcreator.target.entity.Target1Entity;
import net.mcreator.target.entity.SenpaiEntity;
import net.mcreator.target.entity.MortarEntity;
import net.mcreator.target.entity.ClaymoreEntity;
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public class EntityAnimationFactory { public class EntityAnimationFactory {
@SubscribeEvent @SubscribeEvent
public static void onEntityTick(LivingEvent.LivingTickEvent event) { public static void onEntityTick(LivingEvent.LivingTickEvent event) {
if (event != null && event.getEntity() != null) { if (event != null && event.getEntity() != null) {
if (event.getEntity() instanceof Target1Entity syncable) { if (event.getEntity() instanceof Target1Entity syncable) {
String animation = syncable.getSyncedAnimation(); String animation = syncable.getSyncedAnimation();
if (!animation.equals("undefined")) { if (!animation.equals("undefined")) {
syncable.setAnimation("undefined"); syncable.setAnimation("undefined");
syncable.animationprocedure = animation; syncable.animationprocedure = animation;
} }
} }
if (event.getEntity() instanceof MortarEntity syncable) { if (event.getEntity() instanceof MortarEntity syncable) {
String animation = syncable.getSyncedAnimation(); String animation = syncable.getSyncedAnimation();
if (!animation.equals("undefined")) { if (!animation.equals("undefined")) {
syncable.setAnimation("undefined"); syncable.setAnimation("undefined");
syncable.animationprocedure = animation; syncable.animationprocedure = animation;
} }
} }
if (event.getEntity() instanceof SenpaiEntity syncable) { if (event.getEntity() instanceof SenpaiEntity syncable) {
String animation = syncable.getSyncedAnimation(); String animation = syncable.getSyncedAnimation();
if (!animation.equals("undefined")) { if (!animation.equals("undefined")) {
syncable.setAnimation("undefined"); syncable.setAnimation("undefined");
syncable.animationprocedure = animation; syncable.animationprocedure = animation;
} }
} }
if (event.getEntity() instanceof ClaymoreEntity syncable) { if (event.getEntity() instanceof ClaymoreEntity syncable) {
String animation = syncable.getSyncedAnimation(); String animation = syncable.getSyncedAnimation();
if (!animation.equals("undefined")) { if (!animation.equals("undefined")) {
syncable.setAnimation("undefined"); syncable.setAnimation("undefined");
syncable.animationprocedure = animation; syncable.animationprocedure = animation;
} }
} }
if (event.getEntity() instanceof TargetEntity syncable) { if (event.getEntity() instanceof TargetEntity syncable) {
String animation = syncable.getSyncedAnimation(); String animation = syncable.getSyncedAnimation();
if (!animation.equals("undefined")) { if (!animation.equals("undefined")) {
syncable.setAnimation("undefined"); syncable.setAnimation("undefined");
syncable.animationprocedure = animation; syncable.animationprocedure = animation;
} }
} }
} }
} }
} }

View file

@ -1,330 +1,300 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import software.bernie.geckolib.animatable.GeoItem; import net.mcreator.target.item.*;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.client.renderer.ItemInHandRenderer;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemInHandRenderer;
import net.mcreator.target.item.VectorItem; import net.minecraft.world.item.ArmorItem;
import net.mcreator.target.item.TracheliumItem; import net.minecraftforge.event.TickEvent;
import net.mcreator.target.item.TaserItem; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.mcreator.target.item.SvdItem; import net.minecraftforge.fml.common.Mod;
import net.mcreator.target.item.SksItem; import software.bernie.geckolib.animatable.GeoItem;
import net.mcreator.target.item.SentinelItem;
import net.mcreator.target.item.RpkItem;
import net.mcreator.target.item.RpgItem;
import net.mcreator.target.item.RocketItem;
import net.mcreator.target.item.Mk14Item;
import net.mcreator.target.item.MinigunItem;
import net.mcreator.target.item.MarlinItem;
import net.mcreator.target.item.M98bItem;
import net.mcreator.target.item.M870Item;
import net.mcreator.target.item.M79Item;
import net.mcreator.target.item.M60Item;
import net.mcreator.target.item.M4Item;
import net.mcreator.target.item.LightSaberItem;
import net.mcreator.target.item.KraberItem;
import net.mcreator.target.item.HuntingRifleItem;
import net.mcreator.target.item.Hk416Item;
import net.mcreator.target.item.DevotionItem;
import net.mcreator.target.item.BocekItem;
import net.mcreator.target.item.AbekiriItem;
import net.mcreator.target.item.Aa12Item;
import net.mcreator.target.item.AK47Item;
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public class ItemAnimationFactory { public class ItemAnimationFactory {
public static void disableUseAnim() { public static void disableUseAnim() {
try { try {
ItemInHandRenderer renderer = Minecraft.getInstance().gameRenderer.itemInHandRenderer; ItemInHandRenderer renderer = Minecraft.getInstance().gameRenderer.itemInHandRenderer;
if (renderer != null) { renderer.mainHandHeight = 1F;
renderer.mainHandHeight = 1F; renderer.oMainHandHeight = 1F;
renderer.oMainHandHeight = 1F; renderer.offHandHeight = 1F;
renderer.offHandHeight = 1F; renderer.oOffHandHeight = 1F;
renderer.oOffHandHeight = 1F; } catch (Exception e) {
} e.printStackTrace();
} catch (Exception e) { }
e.printStackTrace(); }
}
}
@SubscribeEvent @SubscribeEvent
public static void animatedItems(TickEvent.PlayerTickEvent event) { public static void animatedItems(TickEvent.PlayerTickEvent event) {
String animation = ""; String animation = "";
if (event.phase == TickEvent.Phase.START && (event.player.getMainHandItem().getItem() instanceof GeoItem || event.player.getOffhandItem().getItem() instanceof GeoItem)) { if (event.phase == TickEvent.Phase.START && (event.player.getMainHandItem().getItem() instanceof GeoItem || event.player.getOffhandItem().getItem() instanceof GeoItem)) {
if (!event.player.getMainHandItem().getOrCreateTag().getString("geckoAnim").equals("") && !(event.player.getMainHandItem().getItem() instanceof ArmorItem)) { if (!event.player.getMainHandItem().getOrCreateTag().getString("geckoAnim").isEmpty() && !(event.player.getMainHandItem().getItem() instanceof ArmorItem)) {
animation = event.player.getMainHandItem().getOrCreateTag().getString("geckoAnim"); animation = event.player.getMainHandItem().getOrCreateTag().getString("geckoAnim");
event.player.getMainHandItem().getOrCreateTag().putString("geckoAnim", ""); event.player.getMainHandItem().getOrCreateTag().putString("geckoAnim", "");
if (event.player.getMainHandItem().getItem() instanceof TaserItem animatable) if (event.player.getMainHandItem().getItem() instanceof TaserItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof AbekiriItem animatable) if (event.player.getMainHandItem().getItem() instanceof AbekiriItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof TracheliumItem animatable) if (event.player.getMainHandItem().getItem() instanceof TracheliumItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof VectorItem animatable) if (event.player.getMainHandItem().getItem() instanceof VectorItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof AK47Item animatable) if (event.player.getMainHandItem().getItem() instanceof AK47Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof SksItem animatable) if (event.player.getMainHandItem().getItem() instanceof SksItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof M4Item animatable) if (event.player.getMainHandItem().getItem() instanceof M4Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof Hk416Item animatable) if (event.player.getMainHandItem().getItem() instanceof Hk416Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof Mk14Item animatable) if (event.player.getMainHandItem().getItem() instanceof Mk14Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof MarlinItem animatable) if (event.player.getMainHandItem().getItem() instanceof MarlinItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof SvdItem animatable) if (event.player.getMainHandItem().getItem() instanceof SvdItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof M98bItem animatable) if (event.player.getMainHandItem().getItem() instanceof M98bItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof SentinelItem animatable) if (event.player.getMainHandItem().getItem() instanceof SentinelItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof HuntingRifleItem animatable) if (event.player.getMainHandItem().getItem() instanceof HuntingRifleItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof KraberItem animatable) if (event.player.getMainHandItem().getItem() instanceof KraberItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof M870Item animatable) if (event.player.getMainHandItem().getItem() instanceof M870Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof Aa12Item animatable) if (event.player.getMainHandItem().getItem() instanceof Aa12Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof DevotionItem animatable) if (event.player.getMainHandItem().getItem() instanceof DevotionItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof RpkItem animatable) if (event.player.getMainHandItem().getItem() instanceof RpkItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof M60Item animatable) if (event.player.getMainHandItem().getItem() instanceof M60Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof MinigunItem animatable) if (event.player.getMainHandItem().getItem() instanceof MinigunItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof M79Item animatable) if (event.player.getMainHandItem().getItem() instanceof M79Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof RpgItem animatable) if (event.player.getMainHandItem().getItem() instanceof RpgItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof BocekItem animatable) if (event.player.getMainHandItem().getItem() instanceof BocekItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof LightSaberItem animatable) if (event.player.getMainHandItem().getItem() instanceof LightSaberItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof RocketItem animatable) if (event.player.getMainHandItem().getItem() instanceof RocketItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
} }
if (!event.player.getOffhandItem().getOrCreateTag().getString("geckoAnim").equals("") && !(event.player.getOffhandItem().getItem() instanceof ArmorItem)) { if (!event.player.getOffhandItem().getOrCreateTag().getString("geckoAnim").equals("") && !(event.player.getOffhandItem().getItem() instanceof ArmorItem)) {
animation = event.player.getOffhandItem().getOrCreateTag().getString("geckoAnim"); animation = event.player.getOffhandItem().getOrCreateTag().getString("geckoAnim");
event.player.getOffhandItem().getOrCreateTag().putString("geckoAnim", ""); event.player.getOffhandItem().getOrCreateTag().putString("geckoAnim", "");
if (event.player.getOffhandItem().getItem() instanceof TaserItem animatable) if (event.player.getOffhandItem().getItem() instanceof TaserItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof AbekiriItem animatable) if (event.player.getOffhandItem().getItem() instanceof AbekiriItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof TracheliumItem animatable) if (event.player.getOffhandItem().getItem() instanceof TracheliumItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof VectorItem animatable) if (event.player.getOffhandItem().getItem() instanceof VectorItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof AK47Item animatable) if (event.player.getOffhandItem().getItem() instanceof AK47Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof SksItem animatable) if (event.player.getOffhandItem().getItem() instanceof SksItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof M4Item animatable) if (event.player.getOffhandItem().getItem() instanceof M4Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof Hk416Item animatable) if (event.player.getOffhandItem().getItem() instanceof Hk416Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof Mk14Item animatable) if (event.player.getOffhandItem().getItem() instanceof Mk14Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof MarlinItem animatable) if (event.player.getOffhandItem().getItem() instanceof MarlinItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof SvdItem animatable) if (event.player.getOffhandItem().getItem() instanceof SvdItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof M98bItem animatable) if (event.player.getOffhandItem().getItem() instanceof M98bItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof SentinelItem animatable) if (event.player.getOffhandItem().getItem() instanceof SentinelItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof HuntingRifleItem animatable) if (event.player.getOffhandItem().getItem() instanceof HuntingRifleItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof KraberItem animatable) if (event.player.getOffhandItem().getItem() instanceof KraberItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof M870Item animatable) if (event.player.getOffhandItem().getItem() instanceof M870Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof Aa12Item animatable) if (event.player.getOffhandItem().getItem() instanceof Aa12Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof DevotionItem animatable) if (event.player.getOffhandItem().getItem() instanceof DevotionItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof RpkItem animatable) if (event.player.getOffhandItem().getItem() instanceof RpkItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof M60Item animatable) if (event.player.getOffhandItem().getItem() instanceof M60Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof MinigunItem animatable) if (event.player.getOffhandItem().getItem() instanceof MinigunItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof M79Item animatable) if (event.player.getOffhandItem().getItem() instanceof M79Item animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof RpgItem animatable) if (event.player.getOffhandItem().getItem() instanceof RpgItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof BocekItem animatable) if (event.player.getOffhandItem().getItem() instanceof BocekItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof LightSaberItem animatable) if (event.player.getOffhandItem().getItem() instanceof LightSaberItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof RocketItem animatable) if (event.player.getOffhandItem().getItem() instanceof RocketItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
} }
} }
} }
} }

View file

@ -4,23 +4,20 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.common.Mod;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.EntityType;
import net.mcreator.target.entity.ProjectileEntity;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.entity.ProjectileEntity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class TargetCustomModEntities { public class TargetCustomModEntities {
public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, TargetMod.MODID); public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, TargetMod.MODID);
public static final RegistryObject<EntityType<ProjectileEntity>> PROJECTILE = public static final RegistryObject<EntityType<ProjectileEntity>> PROJECTILE =
ENTITY_TYPES.register("projectile", ENTITY_TYPES.register("projectile",
() -> EntityType.Builder.<ProjectileEntity>of(ProjectileEntity::new, MobCategory.MISC).setTrackingRange(0).sized(0.5f, 0.5f).build("projectile")); () -> EntityType.Builder.<ProjectileEntity>of(ProjectileEntity::new, MobCategory.MISC).setTrackingRange(0).sized(0.5f, 0.5f).build("projectile"));

View file

@ -1,19 +1,17 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.mcreator.target.client.renderer.ProjectileRenderer; import net.mcreator.target.client.renderer.ProjectileRenderer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class TargetCustomModEntityRenderers { public class TargetCustomModEntityRenderers {
@SubscribeEvent @SubscribeEvent
public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) { public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) {
event.registerEntityRenderer(TargetCustomModEntities.PROJECTILE.get(), ProjectileRenderer::new); event.registerEntityRenderer(TargetCustomModEntities.PROJECTILE.get(), ProjectileRenderer::new);
} }
} }

View file

@ -3,37 +3,35 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.entity.EntityAttributeModificationEvent;
import net.minecraft.world.entity.ai.attributes.RangedAttribute;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.EntityType;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.RangedAttribute;
import net.minecraftforge.event.entity.EntityAttributeModificationEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class TargetModAttributes { public class TargetModAttributes {
public static final DeferredRegister<Attribute> ATTRIBUTES = DeferredRegister.create(ForgeRegistries.ATTRIBUTES, TargetMod.MODID); public static final DeferredRegister<Attribute> ATTRIBUTES = DeferredRegister.create(ForgeRegistries.ATTRIBUTES, TargetMod.MODID);
public static final RegistryObject<Attribute> MOTARPITCH = ATTRIBUTES.register("motar_pitch", () -> (new RangedAttribute("attribute." + TargetMod.MODID + ".motar_pitch", 70, 20, 90)).setSyncable(true)); public static final RegistryObject<Attribute> MOTARPITCH = ATTRIBUTES.register("motar_pitch", () -> (new RangedAttribute("attribute." + TargetMod.MODID + ".motar_pitch", 70, 20, 90)).setSyncable(true));
public static final RegistryObject<Attribute> SPREAD = ATTRIBUTES.register("spread", () -> (new RangedAttribute("attribute." + TargetMod.MODID + ".spread", 0, 0, 1024)).setSyncable(true)); public static final RegistryObject<Attribute> SPREAD = ATTRIBUTES.register("spread", () -> (new RangedAttribute("attribute." + TargetMod.MODID + ".spread", 0, 0, 1024)).setSyncable(true));
@SubscribeEvent @SubscribeEvent
public static void register(FMLConstructModEvent event) { public static void register(FMLConstructModEvent event) {
event.enqueueWork(() -> { event.enqueueWork(() -> {
ATTRIBUTES.register(FMLJavaModLoadingContext.get().getModEventBus()); ATTRIBUTES.register(FMLJavaModLoadingContext.get().getModEventBus());
}); });
} }
@SubscribeEvent @SubscribeEvent
public static void addAttributes(EntityAttributeModificationEvent event) { public static void addAttributes(EntityAttributeModificationEvent event) {
event.add(TargetModEntities.MORTAR.get(), MOTARPITCH.get()); event.add(TargetModEntities.MORTAR.get(), MOTARPITCH.get());
event.add(EntityType.PLAYER, SPREAD.get()); event.add(EntityType.PLAYER, SPREAD.get());
} }
} }

View file

@ -4,30 +4,21 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraft.world.level.block.Block;
import net.mcreator.target.block.ScheeliteOreBlock;
import net.mcreator.target.block.SandbagBlock;
import net.mcreator.target.block.JumppadBlockBlock;
import net.mcreator.target.block.GunRecycleBlock;
import net.mcreator.target.block.GalenaOreBlock;
import net.mcreator.target.block.DeepslateScheeliteOreBlock;
import net.mcreator.target.block.DeepslateGalenaOreBlock;
import net.mcreator.target.block.BarbedWireBlock;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.block.*;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TargetModBlocks { public class TargetModBlocks {
public static final DeferredRegister<Block> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCKS, TargetMod.MODID); public static final DeferredRegister<Block> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCKS, TargetMod.MODID);
public static final RegistryObject<Block> SANDBAG = REGISTRY.register("sandbag", () -> new SandbagBlock()); public static final RegistryObject<Block> SANDBAG = REGISTRY.register("sandbag", SandbagBlock::new);
public static final RegistryObject<Block> BARBED_WIRE = REGISTRY.register("barbed_wire", () -> new BarbedWireBlock()); public static final RegistryObject<Block> BARBED_WIRE = REGISTRY.register("barbed_wire", BarbedWireBlock::new);
public static final RegistryObject<Block> JUMPPAD_BLOCK = REGISTRY.register("jumppad_block", () -> new JumppadBlockBlock()); public static final RegistryObject<Block> JUMPPAD_BLOCK = REGISTRY.register("jumppad_block", JumppadBlockBlock::new);
public static final RegistryObject<Block> GALENA_ORE = REGISTRY.register("galena_ore", () -> new GalenaOreBlock()); public static final RegistryObject<Block> GALENA_ORE = REGISTRY.register("galena_ore", GalenaOreBlock::new);
public static final RegistryObject<Block> DEEPSLATE_GALENA_ORE = REGISTRY.register("deepslate_galena_ore", () -> new DeepslateGalenaOreBlock()); public static final RegistryObject<Block> DEEPSLATE_GALENA_ORE = REGISTRY.register("deepslate_galena_ore", DeepslateGalenaOreBlock::new);
public static final RegistryObject<Block> SCHEELITE_ORE = REGISTRY.register("scheelite_ore", () -> new ScheeliteOreBlock()); public static final RegistryObject<Block> SCHEELITE_ORE = REGISTRY.register("scheelite_ore", ScheeliteOreBlock::new);
public static final RegistryObject<Block> DEEPSLATE_SCHEELITE_ORE = REGISTRY.register("deepslate_scheelite_ore", () -> new DeepslateScheeliteOreBlock()); public static final RegistryObject<Block> DEEPSLATE_SCHEELITE_ORE = REGISTRY.register("deepslate_scheelite_ore", DeepslateScheeliteOreBlock::new);
public static final RegistryObject<Block> GUN_RECYCLE = REGISTRY.register("gun_recycle", () -> new GunRecycleBlock()); public static final RegistryObject<Block> GUN_RECYCLE = REGISTRY.register("gun_recycle", GunRecycleBlock::new);
} }

View file

@ -4,79 +4,68 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Entity;
import net.mcreator.target.entity.TaserBulletProjectileEntity;
import net.mcreator.target.entity.TargetEntity;
import net.mcreator.target.entity.Target1Entity;
import net.mcreator.target.entity.SenpaiEntity;
import net.mcreator.target.entity.RpgRocketEntity;
import net.mcreator.target.entity.MortarShellEntity;
import net.mcreator.target.entity.MortarEntity;
import net.mcreator.target.entity.GunGrenadeEntity;
import net.mcreator.target.entity.ClaymoreEntity;
import net.mcreator.target.entity.BocekarrowEntity;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.entity.*;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class TargetModEntities { public class TargetModEntities {
public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, TargetMod.MODID); public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, TargetMod.MODID);
public static final RegistryObject<EntityType<Target1Entity>> TARGET_1 = register("target_1", public static final RegistryObject<EntityType<Target1Entity>> TARGET_1 = register("target_1",
EntityType.Builder.<Target1Entity>of(Target1Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(256).setUpdateInterval(3).setCustomClientFactory(Target1Entity::new).fireImmune().sized(0.875f, 2f)); EntityType.Builder.<Target1Entity>of(Target1Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(256).setUpdateInterval(3).setCustomClientFactory(Target1Entity::new).fireImmune().sized(0.875f, 2f));
public static final RegistryObject<EntityType<MortarEntity>> MORTAR = register("mortar", public static final RegistryObject<EntityType<MortarEntity>> MORTAR = register("mortar",
EntityType.Builder.<MortarEntity>of(MortarEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(MortarEntity::new).fireImmune().sized(0.8f, 1.4f)); EntityType.Builder.<MortarEntity>of(MortarEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(MortarEntity::new).fireImmune().sized(0.8f, 1.4f));
public static final RegistryObject<EntityType<SenpaiEntity>> SENPAI = register("senpai", public static final RegistryObject<EntityType<SenpaiEntity>> SENPAI = register("senpai",
EntityType.Builder.<SenpaiEntity>of(SenpaiEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(1024).setUpdateInterval(3).setCustomClientFactory(SenpaiEntity::new) EntityType.Builder.<SenpaiEntity>of(SenpaiEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(1024).setUpdateInterval(3).setCustomClientFactory(SenpaiEntity::new)
.sized(0.6f, 2f)); .sized(0.6f, 2f));
public static final RegistryObject<EntityType<ClaymoreEntity>> CLAYMORE = register("claymore", public static final RegistryObject<EntityType<ClaymoreEntity>> CLAYMORE = register("claymore",
EntityType.Builder.<ClaymoreEntity>of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f)); EntityType.Builder.<ClaymoreEntity>of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<TaserBulletProjectileEntity>> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile", public static final RegistryObject<EntityType<TaserBulletProjectileEntity>> TASER_BULLET_PROJECTILE = register("projectile_taser_bullet_projectile",
EntityType.Builder.<TaserBulletProjectileEntity>of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64) EntityType.Builder.<TaserBulletProjectileEntity>of(TaserBulletProjectileEntity::new, MobCategory.MISC).setCustomClientFactory(TaserBulletProjectileEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64)
.setUpdateInterval(1).sized(0.5f, 0.5f)); .setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<GunGrenadeEntity>> GUN_GRENADE = register("projectile_gun_grenade", public static final RegistryObject<EntityType<GunGrenadeEntity>> GUN_GRENADE = register("projectile_gun_grenade",
EntityType.Builder.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setCustomClientFactory(GunGrenadeEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); EntityType.Builder.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setCustomClientFactory(GunGrenadeEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target", public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
EntityType.Builder.<TargetEntity>of(TargetEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f)); EntityType.Builder.<TargetEntity>of(TargetEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f));
public static final RegistryObject<EntityType<RpgRocketEntity>> RPG_ROCKET = register("projectile_rpg_rocket", public static final RegistryObject<EntityType<RpgRocketEntity>> RPG_ROCKET = register("projectile_rpg_rocket",
EntityType.Builder.<RpgRocketEntity>of(RpgRocketEntity::new, MobCategory.MISC).setCustomClientFactory(RpgRocketEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); EntityType.Builder.<RpgRocketEntity>of(RpgRocketEntity::new, MobCategory.MISC).setCustomClientFactory(RpgRocketEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<MortarShellEntity>> MORTAR_SHELL = register("projectile_mortar_shell", public static final RegistryObject<EntityType<MortarShellEntity>> MORTAR_SHELL = register("projectile_mortar_shell",
EntityType.Builder.<MortarShellEntity>of(MortarShellEntity::new, MobCategory.MISC).setCustomClientFactory(MortarShellEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); EntityType.Builder.<MortarShellEntity>of(MortarShellEntity::new, MobCategory.MISC).setCustomClientFactory(MortarShellEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<BocekarrowEntity>> BOCEKARROW = register("projectile_bocekarrow", public static final RegistryObject<EntityType<BocekarrowEntity>> BOCEKARROW = register("projectile_bocekarrow",
EntityType.Builder.<BocekarrowEntity>of(BocekarrowEntity::new, MobCategory.MISC).setCustomClientFactory(BocekarrowEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); EntityType.Builder.<BocekarrowEntity>of(BocekarrowEntity::new, MobCategory.MISC).setCustomClientFactory(BocekarrowEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) { private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
return REGISTRY.register(registryname, () -> (EntityType<T>) entityTypeBuilder.build(registryname)); return REGISTRY.register(registryname, () -> entityTypeBuilder.build(registryname));
} }
@SubscribeEvent @SubscribeEvent
public static void init(FMLCommonSetupEvent event) { public static void init(FMLCommonSetupEvent event) {
event.enqueueWork(() -> { event.enqueueWork(() -> {
Target1Entity.init(); Target1Entity.init();
MortarEntity.init(); MortarEntity.init();
SenpaiEntity.init(); SenpaiEntity.init();
ClaymoreEntity.init(); ClaymoreEntity.init();
TargetEntity.init(); TargetEntity.init();
}); });
} }
@SubscribeEvent @SubscribeEvent
public static void registerAttributes(EntityAttributeCreationEvent event) { public static void registerAttributes(EntityAttributeCreationEvent event) {
event.put(TARGET_1.get(), Target1Entity.createAttributes().build()); event.put(TARGET_1.get(), Target1Entity.createAttributes().build());
event.put(MORTAR.get(), MortarEntity.createAttributes().build()); event.put(MORTAR.get(), MortarEntity.createAttributes().build());
event.put(SENPAI.get(), SenpaiEntity.createAttributes().build()); event.put(SENPAI.get(), SenpaiEntity.createAttributes().build());
event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build()); event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build());
event.put(TARGET.get(), TargetEntity.createAttributes().build()); event.put(TARGET.get(), TargetEntity.createAttributes().build());
} }
} }

View file

@ -1,34 +1,24 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.common.Mod; import net.mcreator.target.client.renderer.*;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.mcreator.target.client.renderer.TaserBulletProjectileRenderer; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.mcreator.target.client.renderer.TargetRenderer; import net.minecraftforge.fml.common.Mod;
import net.mcreator.target.client.renderer.Target1Renderer;
import net.mcreator.target.client.renderer.SenpaiRenderer;
import net.mcreator.target.client.renderer.RpgRocketRenderer;
import net.mcreator.target.client.renderer.MortarShellRenderer;
import net.mcreator.target.client.renderer.MortarRenderer;
import net.mcreator.target.client.renderer.GunGrenadeRenderer;
import net.mcreator.target.client.renderer.ClaymoreRenderer;
import net.mcreator.target.client.renderer.BocekarrowRenderer;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class TargetModEntityRenderers { public class TargetModEntityRenderers {
@SubscribeEvent @SubscribeEvent
public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) { public static void registerEntityRenderers(EntityRenderersEvent.RegisterRenderers event) {
event.registerEntityRenderer(TargetModEntities.TARGET_1.get(), Target1Renderer::new); event.registerEntityRenderer(TargetModEntities.TARGET_1.get(), Target1Renderer::new);
event.registerEntityRenderer(TargetModEntities.MORTAR.get(), MortarRenderer::new); event.registerEntityRenderer(TargetModEntities.MORTAR.get(), MortarRenderer::new);
event.registerEntityRenderer(TargetModEntities.SENPAI.get(), SenpaiRenderer::new); event.registerEntityRenderer(TargetModEntities.SENPAI.get(), SenpaiRenderer::new);
event.registerEntityRenderer(TargetModEntities.CLAYMORE.get(), ClaymoreRenderer::new); event.registerEntityRenderer(TargetModEntities.CLAYMORE.get(), ClaymoreRenderer::new);
event.registerEntityRenderer(TargetModEntities.TASER_BULLET_PROJECTILE.get(), TaserBulletProjectileRenderer::new); event.registerEntityRenderer(TargetModEntities.TASER_BULLET_PROJECTILE.get(), TaserBulletProjectileRenderer::new);
event.registerEntityRenderer(TargetModEntities.GUN_GRENADE.get(), GunGrenadeRenderer::new); event.registerEntityRenderer(TargetModEntities.GUN_GRENADE.get(), GunGrenadeRenderer::new);
event.registerEntityRenderer(TargetModEntities.TARGET.get(), TargetRenderer::new); event.registerEntityRenderer(TargetModEntities.TARGET.get(), TargetRenderer::new);
event.registerEntityRenderer(TargetModEntities.RPG_ROCKET.get(), RpgRocketRenderer::new); event.registerEntityRenderer(TargetModEntities.RPG_ROCKET.get(), RpgRocketRenderer::new);
event.registerEntityRenderer(TargetModEntities.MORTAR_SHELL.get(), MortarShellRenderer::new); event.registerEntityRenderer(TargetModEntities.MORTAR_SHELL.get(), MortarShellRenderer::new);
event.registerEntityRenderer(TargetModEntities.BOCEKARROW.get(), BocekarrowRenderer::new); event.registerEntityRenderer(TargetModEntities.BOCEKARROW.get(), BocekarrowRenderer::new);
} }
} }

View file

@ -1,58 +1,55 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.network.chat.Component;
import net.minecraft.core.registries.Registries;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class TargetModGunTabs { public class TargetModGunTabs {
public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TargetMod.MODID); public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TargetMod.MODID);
public static final RegistryObject<CreativeModeTab> TARGET_GUNS = REGISTRY.register("target_guns", public static final RegistryObject<CreativeModeTab> TARGET_GUNS = REGISTRY.register("target_guns",
() -> CreativeModeTab.builder().title(Component.translatable("item_group.target.target_guns")).icon(() -> new ItemStack(TargetModItems.TASER.get())).displayItems((parameters, tabData) -> { () -> CreativeModeTab.builder().title(Component.translatable("item_group.target.target_guns")).icon(() -> new ItemStack(TargetModItems.TASER.get())).displayItems((parameters, tabData) -> {
tabData.accept(TargetModItems.TASER.get()); tabData.accept(TargetModItems.TASER.get());
tabData.accept(TargetModItems.ABEKIRI.get()); tabData.accept(TargetModItems.ABEKIRI.get());
tabData.accept(TargetModItems.TRACHELIUM.get()); tabData.accept(TargetModItems.TRACHELIUM.get());
tabData.accept(TargetModItems.VECTOR.get()); tabData.accept(TargetModItems.VECTOR.get());
tabData.accept(TargetModItems.AK_47.get()); tabData.accept(TargetModItems.AK_47.get());
tabData.accept(TargetModItems.SKS.get()); tabData.accept(TargetModItems.SKS.get());
tabData.accept(TargetModItems.M_4.get()); tabData.accept(TargetModItems.M_4.get());
tabData.accept(TargetModItems.HK_416.get()); tabData.accept(TargetModItems.HK_416.get());
tabData.accept(TargetModItems.MK_14.get()); tabData.accept(TargetModItems.MK_14.get());
tabData.accept(TargetModItems.MARLIN.get()); tabData.accept(TargetModItems.MARLIN.get());
tabData.accept(TargetModItems.SVD.get()); tabData.accept(TargetModItems.SVD.get());
tabData.accept(TargetModItems.M_98B.get()); tabData.accept(TargetModItems.M_98B.get());
tabData.accept(TargetModItems.SENTINEL.get()); tabData.accept(TargetModItems.SENTINEL.get());
tabData.accept(TargetModItems.HUNTING_RIFLE.get()); tabData.accept(TargetModItems.HUNTING_RIFLE.get());
tabData.accept(TargetModItems.KRABER.get()); tabData.accept(TargetModItems.KRABER.get());
tabData.accept(TargetModItems.M_870.get()); tabData.accept(TargetModItems.M_870.get());
tabData.accept(TargetModItems.AA_12.get()); tabData.accept(TargetModItems.AA_12.get());
tabData.accept(TargetModItems.DEVOTION.get()); tabData.accept(TargetModItems.DEVOTION.get());
tabData.accept(TargetModItems.RPK.get()); tabData.accept(TargetModItems.RPK.get());
tabData.accept(TargetModItems.M_60.get()); tabData.accept(TargetModItems.M_60.get());
tabData.accept(TargetModItems.MINIGUN.get()); tabData.accept(TargetModItems.MINIGUN.get());
tabData.accept(TargetModItems.M_79.get()); tabData.accept(TargetModItems.M_79.get());
tabData.accept(TargetModItems.RPG.get()); tabData.accept(TargetModItems.RPG.get());
tabData.accept(TargetModItems.BOCEK.get()); tabData.accept(TargetModItems.BOCEK.get());
}) })
.build()); .build());
@SubscribeEvent @SubscribeEvent
public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) { public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) {
if (tabData.getTabKey() == CreativeModeTabs.SPAWN_EGGS) { if (tabData.getTabKey() == CreativeModeTabs.SPAWN_EGGS) {
tabData.accept(TargetModItems.SENPAI_SPAWN_EGG.get()); tabData.accept(TargetModItems.SENPAI_SPAWN_EGG.get());
} }
} }
} }

View file

@ -4,240 +4,134 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.common.ForgeSpawnEggItem;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.BlockItem;
import net.mcreator.target.item.VectorItem;
import net.mcreator.target.item.VectorBlueprintItem;
import net.mcreator.target.item.UnblastedcementedcarbidepodwerItem;
import net.mcreator.target.item.TungstenPowderItem;
import net.mcreator.target.item.TungstenIngotItem;
import net.mcreator.target.item.TracheliumItem;
import net.mcreator.target.item.TracheliumBlueprintItem;
import net.mcreator.target.item.TaserItem;
import net.mcreator.target.item.TaserElectrodeItem;
import net.mcreator.target.item.TaserBlueprintItem;
import net.mcreator.target.item.TargetdeployerItem;
import net.mcreator.target.item.SvdItem;
import net.mcreator.target.item.SvdBlueprintItem;
import net.mcreator.target.item.SteelTriggerItem;
import net.mcreator.target.item.SteelSpringItem;
import net.mcreator.target.item.SteelBarrelItem;
import net.mcreator.target.item.SteelActionItem;
import net.mcreator.target.item.SpecialmaterialpackItem;
import net.mcreator.target.item.SoulsteelnuggetItem;
import net.mcreator.target.item.SoulsteelIngotItem;
import net.mcreator.target.item.SniperAmmoItem;
import net.mcreator.target.item.SniperAmmoBoxItem;
import net.mcreator.target.item.SksItem;
import net.mcreator.target.item.ShotgunAmmoItem;
import net.mcreator.target.item.ShotgunAmmoBoxItem;
import net.mcreator.target.item.SentinelItem;
import net.mcreator.target.item.SentinelBlueprintItem;
import net.mcreator.target.item.ScheeliteItem;
import net.mcreator.target.item.SKSBlueprintItem;
import net.mcreator.target.item.RpkItem;
import net.mcreator.target.item.RpgItem;
import net.mcreator.target.item.RpgBlueprintItem;
import net.mcreator.target.item.RocketItem;
import net.mcreator.target.item.RifleAmmoItem;
import net.mcreator.target.item.RifleAmmoBoxItem;
import net.mcreator.target.item.RarematerialpackItem;
import net.mcreator.target.item.RPKBlueprintItem;
import net.mcreator.target.item.NetheriteTriggerItem;
import net.mcreator.target.item.NetheriteSpringItem;
import net.mcreator.target.item.NetheriteBarrelItem;
import net.mcreator.target.item.NetheriteActionItem;
import net.mcreator.target.item.MortarbipodItem;
import net.mcreator.target.item.MortarbarrelItem;
import net.mcreator.target.item.MortarShellsItem;
import net.mcreator.target.item.MortarDepolyerItem;
import net.mcreator.target.item.MoratrBasePlateItem;
import net.mcreator.target.item.Mk14Item;
import net.mcreator.target.item.Mk14BlueprintItem;
import net.mcreator.target.item.MinigunItem;
import net.mcreator.target.item.MinigunBlueprintItem;
import net.mcreator.target.item.MarlinItem;
import net.mcreator.target.item.MarlinBlueprintItem;
import net.mcreator.target.item.M98bItem;
import net.mcreator.target.item.M98bBlueprintItem;
import net.mcreator.target.item.M870Item;
import net.mcreator.target.item.M870BlueprintItem;
import net.mcreator.target.item.M79Item;
import net.mcreator.target.item.M79BlueprintItem;
import net.mcreator.target.item.M60Item;
import net.mcreator.target.item.M60BlueprintItem;
import net.mcreator.target.item.M4Item;
import net.mcreator.target.item.M4BlueprintItem;
import net.mcreator.target.item.LightSaberItem;
import net.mcreator.target.item.LegendarymaterialpackItem;
import net.mcreator.target.item.LeadIngotItem;
import net.mcreator.target.item.KraberItem;
import net.mcreator.target.item.KRABERBlueprintItem;
import net.mcreator.target.item.IronTriggerItem;
import net.mcreator.target.item.IronSpringItem;
import net.mcreator.target.item.IronPowderItem;
import net.mcreator.target.item.IronBarrelItem;
import net.mcreator.target.item.IronActionItem;
import net.mcreator.target.item.IngotSteelItem;
import net.mcreator.target.item.HuntingRifleItem;
import net.mcreator.target.item.HuntingRifleBlueprintItem;
import net.mcreator.target.item.Hk416Item;
import net.mcreator.target.item.HandgunAmmoItem;
import net.mcreator.target.item.HandgunAmmoBoxItem;
import net.mcreator.target.item.HammerItem;
import net.mcreator.target.item.HK416BlueprintItem;
import net.mcreator.target.item.Grenade40mmItem;
import net.mcreator.target.item.GalenaItem;
import net.mcreator.target.item.FuseeItem;
import net.mcreator.target.item.EpicmaterialpackItem;
import net.mcreator.target.item.DevotionItem;
import net.mcreator.target.item.DevotionBluprintItem;
import net.mcreator.target.item.CreativeAmmoBoxItem;
import net.mcreator.target.item.CopperplateItem;
import net.mcreator.target.item.CommonmaterialpackItem;
import net.mcreator.target.item.CoalPowderItem;
import net.mcreator.target.item.CoalIronPowderItem;
import net.mcreator.target.item.ClaymoreMineItem;
import net.mcreator.target.item.CementedcarbidespringItem;
import net.mcreator.target.item.CementedcarbideTriggerItem;
import net.mcreator.target.item.CementedCarbideIngotItem;
import net.mcreator.target.item.CementedCarbideBarrelItem;
import net.mcreator.target.item.CementedCarbideActionItem;
import net.mcreator.target.item.BuckshotItem;
import net.mcreator.target.item.BocekItem;
import net.mcreator.target.item.BocekBlueprintItem;
import net.mcreator.target.item.AbekiriItem;
import net.mcreator.target.item.Aa12Item;
import net.mcreator.target.item.Aa12BlueprintItem;
import net.mcreator.target.item.AK47Item;
import net.mcreator.target.item.AK47BlueprintItem;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.item.*;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.common.ForgeSpawnEggItem;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TargetModItems { public class TargetModItems {
public static final DeferredRegister<Item> REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, TargetMod.MODID); public static final DeferredRegister<Item> REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, TargetMod.MODID);
public static final RegistryObject<Item> TASER = REGISTRY.register("taser", () -> new TaserItem()); public static final RegistryObject<Item> TASER = REGISTRY.register("taser", TaserItem::new);
public static final RegistryObject<Item> ABEKIRI = REGISTRY.register("abekiri", () -> new AbekiriItem()); public static final RegistryObject<Item> ABEKIRI = REGISTRY.register("abekiri", AbekiriItem::new);
public static final RegistryObject<Item> TRACHELIUM = REGISTRY.register("trachelium", () -> new TracheliumItem()); public static final RegistryObject<Item> TRACHELIUM = REGISTRY.register("trachelium", TracheliumItem::new);
public static final RegistryObject<Item> VECTOR = REGISTRY.register("vector", () -> new VectorItem()); public static final RegistryObject<Item> VECTOR = REGISTRY.register("vector", VectorItem::new);
public static final RegistryObject<Item> AK_47 = REGISTRY.register("ak_47", () -> new AK47Item()); public static final RegistryObject<Item> AK_47 = REGISTRY.register("ak_47", AK47Item::new);
public static final RegistryObject<Item> SKS = REGISTRY.register("sks", () -> new SksItem()); public static final RegistryObject<Item> SKS = REGISTRY.register("sks", SksItem::new);
public static final RegistryObject<Item> M_4 = REGISTRY.register("m_4", () -> new M4Item()); public static final RegistryObject<Item> M_4 = REGISTRY.register("m_4", M4Item::new);
public static final RegistryObject<Item> HK_416 = REGISTRY.register("hk_416", () -> new Hk416Item()); public static final RegistryObject<Item> HK_416 = REGISTRY.register("hk_416", Hk416Item::new);
public static final RegistryObject<Item> MK_14 = REGISTRY.register("mk_14", () -> new Mk14Item()); public static final RegistryObject<Item> MK_14 = REGISTRY.register("mk_14", Mk14Item::new);
public static final RegistryObject<Item> MARLIN = REGISTRY.register("marlin", () -> new MarlinItem()); public static final RegistryObject<Item> MARLIN = REGISTRY.register("marlin", MarlinItem::new);
public static final RegistryObject<Item> SVD = REGISTRY.register("svd", () -> new SvdItem()); public static final RegistryObject<Item> SVD = REGISTRY.register("svd", SvdItem::new);
public static final RegistryObject<Item> M_98B = REGISTRY.register("m_98b", () -> new M98bItem()); public static final RegistryObject<Item> M_98B = REGISTRY.register("m_98b", M98bItem::new);
public static final RegistryObject<Item> SENTINEL = REGISTRY.register("sentinel", () -> new SentinelItem()); public static final RegistryObject<Item> SENTINEL = REGISTRY.register("sentinel", SentinelItem::new);
public static final RegistryObject<Item> HUNTING_RIFLE = REGISTRY.register("hunting_rifle", () -> new HuntingRifleItem()); public static final RegistryObject<Item> HUNTING_RIFLE = REGISTRY.register("hunting_rifle", HuntingRifleItem::new);
public static final RegistryObject<Item> KRABER = REGISTRY.register("kraber", () -> new KraberItem()); public static final RegistryObject<Item> KRABER = REGISTRY.register("kraber", KraberItem::new);
public static final RegistryObject<Item> M_870 = REGISTRY.register("m_870", () -> new M870Item()); public static final RegistryObject<Item> M_870 = REGISTRY.register("m_870", M870Item::new);
public static final RegistryObject<Item> AA_12 = REGISTRY.register("aa_12", () -> new Aa12Item()); public static final RegistryObject<Item> AA_12 = REGISTRY.register("aa_12", Aa12Item::new);
public static final RegistryObject<Item> DEVOTION = REGISTRY.register("devotion", () -> new DevotionItem()); public static final RegistryObject<Item> DEVOTION = REGISTRY.register("devotion", DevotionItem::new);
public static final RegistryObject<Item> RPK = REGISTRY.register("rpk", () -> new RpkItem()); public static final RegistryObject<Item> RPK = REGISTRY.register("rpk", RpkItem::new);
public static final RegistryObject<Item> M_60 = REGISTRY.register("m_60", () -> new M60Item()); public static final RegistryObject<Item> M_60 = REGISTRY.register("m_60", M60Item::new);
public static final RegistryObject<Item> MINIGUN = REGISTRY.register("minigun", () -> new MinigunItem()); public static final RegistryObject<Item> MINIGUN = REGISTRY.register("minigun", MinigunItem::new);
public static final RegistryObject<Item> M_79 = REGISTRY.register("m_79", () -> new M79Item()); public static final RegistryObject<Item> M_79 = REGISTRY.register("m_79", M79Item::new);
public static final RegistryObject<Item> RPG = REGISTRY.register("rpg", () -> new RpgItem()); public static final RegistryObject<Item> RPG = REGISTRY.register("rpg", RpgItem::new);
public static final RegistryObject<Item> BOCEK = REGISTRY.register("bocek", () -> new BocekItem()); public static final RegistryObject<Item> BOCEK = REGISTRY.register("bocek", BocekItem::new);
public static final RegistryObject<Item> SENPAI_SPAWN_EGG = REGISTRY.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.SENPAI, -11584987, -14014413, new Item.Properties())); public static final RegistryObject<Item> SENPAI_SPAWN_EGG = REGISTRY.register("senpai_spawn_egg", () -> new ForgeSpawnEggItem(TargetModEntities.SENPAI, -11584987, -14014413, new Item.Properties()));
public static final RegistryObject<Item> TARGETDEPLOYER = REGISTRY.register("targetdeployer", () -> new TargetdeployerItem()); public static final RegistryObject<Item> TARGETDEPLOYER = REGISTRY.register("targetdeployer", TargetdeployerItem::new);
public static final RegistryObject<Item> SANDBAG = block(TargetModBlocks.SANDBAG); public static final RegistryObject<Item> SANDBAG = block(TargetModBlocks.SANDBAG);
public static final RegistryObject<Item> BARBED_WIRE = block(TargetModBlocks.BARBED_WIRE); public static final RegistryObject<Item> BARBED_WIRE = block(TargetModBlocks.BARBED_WIRE);
public static final RegistryObject<Item> CLAYMORE_MINE = REGISTRY.register("claymore_mine", () -> new ClaymoreMineItem()); public static final RegistryObject<Item> CLAYMORE_MINE = REGISTRY.register("claymore_mine", ClaymoreMineItem::new);
public static final RegistryObject<Item> JUMPPAD_BLOCK = block(TargetModBlocks.JUMPPAD_BLOCK); public static final RegistryObject<Item> JUMPPAD_BLOCK = block(TargetModBlocks.JUMPPAD_BLOCK);
public static final RegistryObject<Item> LIGHT_SABER = REGISTRY.register("light_saber", () -> new LightSaberItem()); public static final RegistryObject<Item> LIGHT_SABER = REGISTRY.register("light_saber", LightSaberItem::new);
public static final RegistryObject<Item> HAMMER = REGISTRY.register("hammer", () -> new HammerItem()); public static final RegistryObject<Item> HAMMER = REGISTRY.register("hammer", HammerItem::new);
public static final RegistryObject<Item> MORTAR_DEPOLYER = REGISTRY.register("mortar_depolyer", () -> new MortarDepolyerItem()); public static final RegistryObject<Item> MORTAR_DEPOLYER = REGISTRY.register("mortar_depolyer", MortarDepolyerItem::new);
public static final RegistryObject<Item> MORTARBARREL = REGISTRY.register("mortarbarrel", () -> new MortarbarrelItem()); public static final RegistryObject<Item> MORTARBARREL = REGISTRY.register("mortarbarrel", MortarbarrelItem::new);
public static final RegistryObject<Item> MORATR_BASE_PLATE = REGISTRY.register("moratr_base_plate", () -> new MoratrBasePlateItem()); public static final RegistryObject<Item> MORATR_BASE_PLATE = REGISTRY.register("moratr_base_plate", MoratrBasePlateItem::new);
public static final RegistryObject<Item> MORTARBIPOD = REGISTRY.register("mortarbipod", () -> new MortarbipodItem()); public static final RegistryObject<Item> MORTARBIPOD = REGISTRY.register("mortarbipod", MortarbipodItem::new);
public static final RegistryObject<Item> FUSEE = REGISTRY.register("fusee", () -> new FuseeItem()); public static final RegistryObject<Item> FUSEE = REGISTRY.register("fusee", FuseeItem::new);
public static final RegistryObject<Item> SOULSTEELNUGGET = REGISTRY.register("soulsteelnugget", () -> new SoulsteelnuggetItem()); public static final RegistryObject<Item> SOULSTEELNUGGET = REGISTRY.register("soulsteelnugget", SoulsteelnuggetItem::new);
public static final RegistryObject<Item> COPPERPLATE = REGISTRY.register("copperplate", () -> new CopperplateItem()); public static final RegistryObject<Item> COPPERPLATE = REGISTRY.register("copperplate", CopperplateItem::new);
public static final RegistryObject<Item> INGOT_STEEL = REGISTRY.register("ingot_steel", () -> new IngotSteelItem()); public static final RegistryObject<Item> INGOT_STEEL = REGISTRY.register("ingot_steel", IngotSteelItem::new);
public static final RegistryObject<Item> LEAD_INGOT = REGISTRY.register("lead_ingot", () -> new LeadIngotItem()); public static final RegistryObject<Item> LEAD_INGOT = REGISTRY.register("lead_ingot", LeadIngotItem::new);
public static final RegistryObject<Item> TUNGSTEN_INGOT = REGISTRY.register("tungsten_ingot", () -> new TungstenIngotItem()); public static final RegistryObject<Item> TUNGSTEN_INGOT = REGISTRY.register("tungsten_ingot", TungstenIngotItem::new);
public static final RegistryObject<Item> CEMENTED_CARBIDE_INGOT = REGISTRY.register("cemented_carbide_ingot", () -> new CementedCarbideIngotItem()); public static final RegistryObject<Item> CEMENTED_CARBIDE_INGOT = REGISTRY.register("cemented_carbide_ingot", CementedCarbideIngotItem::new);
public static final RegistryObject<Item> SOULSTEEL_INGOT = REGISTRY.register("soulsteel_ingot", () -> new SoulsteelIngotItem()); public static final RegistryObject<Item> SOULSTEEL_INGOT = REGISTRY.register("soulsteel_ingot", SoulsteelIngotItem::new);
public static final RegistryObject<Item> IRON_POWDER = REGISTRY.register("iron_powder", () -> new IronPowderItem()); public static final RegistryObject<Item> IRON_POWDER = REGISTRY.register("iron_powder", IronPowderItem::new);
public static final RegistryObject<Item> TUNGSTEN_POWDER = REGISTRY.register("tungsten_powder", () -> new TungstenPowderItem()); public static final RegistryObject<Item> TUNGSTEN_POWDER = REGISTRY.register("tungsten_powder", TungstenPowderItem::new);
public static final RegistryObject<Item> COAL_POWDER = REGISTRY.register("coal_powder", () -> new CoalPowderItem()); public static final RegistryObject<Item> COAL_POWDER = REGISTRY.register("coal_powder", CoalPowderItem::new);
public static final RegistryObject<Item> COAL_IRON_POWDER = REGISTRY.register("coal_iron_powder", () -> new CoalIronPowderItem()); public static final RegistryObject<Item> COAL_IRON_POWDER = REGISTRY.register("coal_iron_powder", CoalIronPowderItem::new);
public static final RegistryObject<Item> UNBLASTEDCEMENTEDCARBIDEPODWER = REGISTRY.register("unblastedcementedcarbidepodwer", () -> new UnblastedcementedcarbidepodwerItem()); public static final RegistryObject<Item> UNBLASTEDCEMENTEDCARBIDEPODWER = REGISTRY.register("unblastedcementedcarbidepodwer", UnblastedcementedcarbidepodwerItem::new);
public static final RegistryObject<Item> GALENA_ORE = block(TargetModBlocks.GALENA_ORE); public static final RegistryObject<Item> GALENA_ORE = block(TargetModBlocks.GALENA_ORE);
public static final RegistryObject<Item> DEEPSLATE_GALENA_ORE = block(TargetModBlocks.DEEPSLATE_GALENA_ORE); public static final RegistryObject<Item> DEEPSLATE_GALENA_ORE = block(TargetModBlocks.DEEPSLATE_GALENA_ORE);
public static final RegistryObject<Item> SCHEELITE_ORE = block(TargetModBlocks.SCHEELITE_ORE); public static final RegistryObject<Item> SCHEELITE_ORE = block(TargetModBlocks.SCHEELITE_ORE);
public static final RegistryObject<Item> DEEPSLATE_SCHEELITE_ORE = block(TargetModBlocks.DEEPSLATE_SCHEELITE_ORE); public static final RegistryObject<Item> DEEPSLATE_SCHEELITE_ORE = block(TargetModBlocks.DEEPSLATE_SCHEELITE_ORE);
public static final RegistryObject<Item> GALENA = REGISTRY.register("galena", () -> new GalenaItem()); public static final RegistryObject<Item> GALENA = REGISTRY.register("galena", GalenaItem::new);
public static final RegistryObject<Item> SCHEELITE = REGISTRY.register("scheelite", () -> new ScheeliteItem()); public static final RegistryObject<Item> SCHEELITE = REGISTRY.register("scheelite", ScheeliteItem::new);
public static final RegistryObject<Item> BUCKSHOT = REGISTRY.register("buckshot", () -> new BuckshotItem()); public static final RegistryObject<Item> BUCKSHOT = REGISTRY.register("buckshot", BuckshotItem::new);
public static final RegistryObject<Item> IRON_BARREL = REGISTRY.register("iron_barrel", () -> new IronBarrelItem()); public static final RegistryObject<Item> IRON_BARREL = REGISTRY.register("iron_barrel", IronBarrelItem::new);
public static final RegistryObject<Item> IRON_ACTION = REGISTRY.register("iron_action", () -> new IronActionItem()); public static final RegistryObject<Item> IRON_ACTION = REGISTRY.register("iron_action", IronActionItem::new);
public static final RegistryObject<Item> IRON_TRIGGER = REGISTRY.register("iron_trigger", () -> new IronTriggerItem()); public static final RegistryObject<Item> IRON_TRIGGER = REGISTRY.register("iron_trigger", IronTriggerItem::new);
public static final RegistryObject<Item> IRON_SPRING = REGISTRY.register("iron_spring", () -> new IronSpringItem()); public static final RegistryObject<Item> IRON_SPRING = REGISTRY.register("iron_spring", IronSpringItem::new);
public static final RegistryObject<Item> STEEL_BARREL = REGISTRY.register("steel_barrel", () -> new SteelBarrelItem()); public static final RegistryObject<Item> STEEL_BARREL = REGISTRY.register("steel_barrel", SteelBarrelItem::new);
public static final RegistryObject<Item> STEEL_ACTION = REGISTRY.register("steel_action", () -> new SteelActionItem()); public static final RegistryObject<Item> STEEL_ACTION = REGISTRY.register("steel_action", SteelActionItem::new);
public static final RegistryObject<Item> STEEL_TRIGGER = REGISTRY.register("steel_trigger", () -> new SteelTriggerItem()); public static final RegistryObject<Item> STEEL_TRIGGER = REGISTRY.register("steel_trigger", SteelTriggerItem::new);
public static final RegistryObject<Item> STEEL_SPRING = REGISTRY.register("steel_spring", () -> new SteelSpringItem()); public static final RegistryObject<Item> STEEL_SPRING = REGISTRY.register("steel_spring", SteelSpringItem::new);
public static final RegistryObject<Item> CEMENTED_CARBIDE_BARREL = REGISTRY.register("cemented_carbide_barrel", () -> new CementedCarbideBarrelItem()); public static final RegistryObject<Item> CEMENTED_CARBIDE_BARREL = REGISTRY.register("cemented_carbide_barrel", CementedCarbideBarrelItem::new);
public static final RegistryObject<Item> CEMENTED_CARBIDE_ACTION = REGISTRY.register("cemented_carbide_action", () -> new CementedCarbideActionItem()); public static final RegistryObject<Item> CEMENTED_CARBIDE_ACTION = REGISTRY.register("cemented_carbide_action", CementedCarbideActionItem::new);
public static final RegistryObject<Item> CEMENTEDCARBIDE_TRIGGER = REGISTRY.register("cementedcarbide_trigger", () -> new CementedcarbideTriggerItem()); public static final RegistryObject<Item> CEMENTEDCARBIDE_TRIGGER = REGISTRY.register("cementedcarbide_trigger", CementedcarbideTriggerItem::new);
public static final RegistryObject<Item> CEMENTEDCARBIDESPRING = REGISTRY.register("cementedcarbidespring", () -> new CementedcarbidespringItem()); public static final RegistryObject<Item> CEMENTEDCARBIDESPRING = REGISTRY.register("cementedcarbidespring", CementedcarbidespringItem::new);
public static final RegistryObject<Item> NETHERITE_BARREL = REGISTRY.register("netherite_barrel", () -> new NetheriteBarrelItem()); public static final RegistryObject<Item> NETHERITE_BARREL = REGISTRY.register("netherite_barrel", NetheriteBarrelItem::new);
public static final RegistryObject<Item> NETHERITE_ACTION = REGISTRY.register("netherite_action", () -> new NetheriteActionItem()); public static final RegistryObject<Item> NETHERITE_ACTION = REGISTRY.register("netherite_action", NetheriteActionItem::new);
public static final RegistryObject<Item> NETHERITE_TRIGGER = REGISTRY.register("netherite_trigger", () -> new NetheriteTriggerItem()); public static final RegistryObject<Item> NETHERITE_TRIGGER = REGISTRY.register("netherite_trigger", NetheriteTriggerItem::new);
public static final RegistryObject<Item> NETHERITE_SPRING = REGISTRY.register("netherite_spring", () -> new NetheriteSpringItem()); public static final RegistryObject<Item> NETHERITE_SPRING = REGISTRY.register("netherite_spring", NetheriteSpringItem::new);
public static final RegistryObject<Item> COMMONMATERIALPACK = REGISTRY.register("commonmaterialpack", () -> new CommonmaterialpackItem()); public static final RegistryObject<Item> COMMONMATERIALPACK = REGISTRY.register("commonmaterialpack", CommonmaterialpackItem::new);
public static final RegistryObject<Item> RAREMATERIALPACK = REGISTRY.register("rarematerialpack", () -> new RarematerialpackItem()); public static final RegistryObject<Item> RAREMATERIALPACK = REGISTRY.register("rarematerialpack", RarematerialpackItem::new);
public static final RegistryObject<Item> EPICMATERIALPACK = REGISTRY.register("epicmaterialpack", () -> new EpicmaterialpackItem()); public static final RegistryObject<Item> EPICMATERIALPACK = REGISTRY.register("epicmaterialpack", EpicmaterialpackItem::new);
public static final RegistryObject<Item> LEGENDARYMATERIALPACK = REGISTRY.register("legendarymaterialpack", () -> new LegendarymaterialpackItem()); public static final RegistryObject<Item> LEGENDARYMATERIALPACK = REGISTRY.register("legendarymaterialpack", LegendarymaterialpackItem::new);
public static final RegistryObject<Item> SPECIALMATERIALPACK = REGISTRY.register("specialmaterialpack", () -> new SpecialmaterialpackItem()); public static final RegistryObject<Item> SPECIALMATERIALPACK = REGISTRY.register("specialmaterialpack", SpecialmaterialpackItem::new);
public static final RegistryObject<Item> TRACHELIUM_BLUEPRINT = REGISTRY.register("trachelium_blueprint", () -> new TracheliumBlueprintItem()); public static final RegistryObject<Item> TRACHELIUM_BLUEPRINT = REGISTRY.register("trachelium_blueprint", TracheliumBlueprintItem::new);
public static final RegistryObject<Item> HUNTING_RIFLE_BLUEPRINT = REGISTRY.register("hunting_rifle_blueprint", () -> new HuntingRifleBlueprintItem()); public static final RegistryObject<Item> HUNTING_RIFLE_BLUEPRINT = REGISTRY.register("hunting_rifle_blueprint", HuntingRifleBlueprintItem::new);
public static final RegistryObject<Item> M_79_BLUEPRINT = REGISTRY.register("m_79_blueprint", () -> new M79BlueprintItem()); public static final RegistryObject<Item> M_79_BLUEPRINT = REGISTRY.register("m_79_blueprint", M79BlueprintItem::new);
public static final RegistryObject<Item> RPG_BLUEPRINT = REGISTRY.register("rpg_blueprint", () -> new RpgBlueprintItem()); public static final RegistryObject<Item> RPG_BLUEPRINT = REGISTRY.register("rpg_blueprint", RpgBlueprintItem::new);
public static final RegistryObject<Item> BOCEK_BLUEPRINT = REGISTRY.register("bocek_blueprint", () -> new BocekBlueprintItem()); public static final RegistryObject<Item> BOCEK_BLUEPRINT = REGISTRY.register("bocek_blueprint", BocekBlueprintItem::new);
public static final RegistryObject<Item> M_4_BLUEPRINT = REGISTRY.register("m_4_blueprint", () -> new M4BlueprintItem()); public static final RegistryObject<Item> M_4_BLUEPRINT = REGISTRY.register("m_4_blueprint", M4BlueprintItem::new);
public static final RegistryObject<Item> AA_12_BLUEPRINT = REGISTRY.register("aa_12_blueprint", () -> new Aa12BlueprintItem()); public static final RegistryObject<Item> AA_12_BLUEPRINT = REGISTRY.register("aa_12_blueprint", Aa12BlueprintItem::new);
public static final RegistryObject<Item> HK_416_BLUEPRINT = REGISTRY.register("hk_416_blueprint", () -> new HK416BlueprintItem()); public static final RegistryObject<Item> HK_416_BLUEPRINT = REGISTRY.register("hk_416_blueprint", HK416BlueprintItem::new);
public static final RegistryObject<Item> RPK_BLUEPRINT = REGISTRY.register("rpk_blueprint", () -> new RPKBlueprintItem()); public static final RegistryObject<Item> RPK_BLUEPRINT = REGISTRY.register("rpk_blueprint", RPKBlueprintItem::new);
public static final RegistryObject<Item> SKS_BLUEPRINT = REGISTRY.register("sks_blueprint", () -> new SKSBlueprintItem()); public static final RegistryObject<Item> SKS_BLUEPRINT = REGISTRY.register("sks_blueprint", SKSBlueprintItem::new);
public static final RegistryObject<Item> KRABER_BLUEPRINT = REGISTRY.register("kraber_blueprint", () -> new KRABERBlueprintItem()); public static final RegistryObject<Item> KRABER_BLUEPRINT = REGISTRY.register("kraber_blueprint", KRABERBlueprintItem::new);
public static final RegistryObject<Item> VECTOR_BLUEPRINT = REGISTRY.register("vector_blueprint", () -> new VectorBlueprintItem()); public static final RegistryObject<Item> VECTOR_BLUEPRINT = REGISTRY.register("vector_blueprint", VectorBlueprintItem::new);
public static final RegistryObject<Item> MINIGUN_BLUEPRINT = REGISTRY.register("minigun_blueprint", () -> new MinigunBlueprintItem()); public static final RegistryObject<Item> MINIGUN_BLUEPRINT = REGISTRY.register("minigun_blueprint", MinigunBlueprintItem::new);
public static final RegistryObject<Item> MK_14_BLUEPRINT = REGISTRY.register("mk_14_blueprint", () -> new Mk14BlueprintItem()); public static final RegistryObject<Item> MK_14_BLUEPRINT = REGISTRY.register("mk_14_blueprint", Mk14BlueprintItem::new);
public static final RegistryObject<Item> SENTINEL_BLUEPRINT = REGISTRY.register("sentinel_blueprint", () -> new SentinelBlueprintItem()); public static final RegistryObject<Item> SENTINEL_BLUEPRINT = REGISTRY.register("sentinel_blueprint", SentinelBlueprintItem::new);
public static final RegistryObject<Item> M_60_BLUEPRINT = REGISTRY.register("m_60_blueprint", () -> new M60BlueprintItem()); public static final RegistryObject<Item> M_60_BLUEPRINT = REGISTRY.register("m_60_blueprint", M60BlueprintItem::new);
public static final RegistryObject<Item> SVD_BLUEPRINT = REGISTRY.register("svd_blueprint", () -> new SvdBlueprintItem()); public static final RegistryObject<Item> SVD_BLUEPRINT = REGISTRY.register("svd_blueprint", SvdBlueprintItem::new);
public static final RegistryObject<Item> MARLIN_BLUEPRINT = REGISTRY.register("marlin_blueprint", () -> new MarlinBlueprintItem()); public static final RegistryObject<Item> MARLIN_BLUEPRINT = REGISTRY.register("marlin_blueprint", MarlinBlueprintItem::new);
public static final RegistryObject<Item> M_870_BLUEPRINT = REGISTRY.register("m_870_blueprint", () -> new M870BlueprintItem()); public static final RegistryObject<Item> M_870_BLUEPRINT = REGISTRY.register("m_870_blueprint", M870BlueprintItem::new);
public static final RegistryObject<Item> M_98B_BLUEPRINT = REGISTRY.register("m_98b_blueprint", () -> new M98bBlueprintItem()); public static final RegistryObject<Item> M_98B_BLUEPRINT = REGISTRY.register("m_98b_blueprint", M98bBlueprintItem::new);
public static final RegistryObject<Item> AK_47_BLUEPRINT = REGISTRY.register("ak_47_blueprint", () -> new AK47BlueprintItem()); public static final RegistryObject<Item> AK_47_BLUEPRINT = REGISTRY.register("ak_47_blueprint", AK47BlueprintItem::new);
public static final RegistryObject<Item> DEVOTION_BLUPRINT = REGISTRY.register("devotion_bluprint", () -> new DevotionBluprintItem()); public static final RegistryObject<Item> DEVOTION_BLUPRINT = REGISTRY.register("devotion_bluprint", DevotionBluprintItem::new);
public static final RegistryObject<Item> TASER_BLUEPRINT = REGISTRY.register("taser_blueprint", () -> new TaserBlueprintItem()); public static final RegistryObject<Item> TASER_BLUEPRINT = REGISTRY.register("taser_blueprint", TaserBlueprintItem::new);
public static final RegistryObject<Item> GUN_RECYCLE = block(TargetModBlocks.GUN_RECYCLE); public static final RegistryObject<Item> GUN_RECYCLE = block(TargetModBlocks.GUN_RECYCLE);
public static final RegistryObject<Item> HANDGUN_AMMO = REGISTRY.register("handgun_ammo", () -> new HandgunAmmoItem()); public static final RegistryObject<Item> HANDGUN_AMMO = REGISTRY.register("handgun_ammo", HandgunAmmoItem::new);
public static final RegistryObject<Item> RIFLE_AMMO = REGISTRY.register("rifle_ammo", () -> new RifleAmmoItem()); public static final RegistryObject<Item> RIFLE_AMMO = REGISTRY.register("rifle_ammo", RifleAmmoItem::new);
public static final RegistryObject<Item> SNIPER_AMMO = REGISTRY.register("sniper_ammo", () -> new SniperAmmoItem()); public static final RegistryObject<Item> SNIPER_AMMO = REGISTRY.register("sniper_ammo", SniperAmmoItem::new);
public static final RegistryObject<Item> SHOTGUN_AMMO = REGISTRY.register("shotgun_ammo", () -> new ShotgunAmmoItem()); public static final RegistryObject<Item> SHOTGUN_AMMO = REGISTRY.register("shotgun_ammo", ShotgunAmmoItem::new);
public static final RegistryObject<Item> HANDGUN_AMMO_BOX = REGISTRY.register("handgun_ammo_box", () -> new HandgunAmmoBoxItem()); public static final RegistryObject<Item> HANDGUN_AMMO_BOX = REGISTRY.register("handgun_ammo_box", HandgunAmmoBoxItem::new);
public static final RegistryObject<Item> RIFLE_AMMO_BOX = REGISTRY.register("rifle_ammo_box", () -> new RifleAmmoBoxItem()); public static final RegistryObject<Item> RIFLE_AMMO_BOX = REGISTRY.register("rifle_ammo_box", RifleAmmoBoxItem::new);
public static final RegistryObject<Item> SNIPER_AMMO_BOX = REGISTRY.register("sniper_ammo_box", () -> new SniperAmmoBoxItem()); public static final RegistryObject<Item> SNIPER_AMMO_BOX = REGISTRY.register("sniper_ammo_box", SniperAmmoBoxItem::new);
public static final RegistryObject<Item> SHOTGUN_AMMO_BOX = REGISTRY.register("shotgun_ammo_box", () -> new ShotgunAmmoBoxItem()); public static final RegistryObject<Item> SHOTGUN_AMMO_BOX = REGISTRY.register("shotgun_ammo_box", ShotgunAmmoBoxItem::new);
public static final RegistryObject<Item> CREATIVE_AMMO_BOX = REGISTRY.register("creative_ammo_box", () -> new CreativeAmmoBoxItem()); public static final RegistryObject<Item> CREATIVE_AMMO_BOX = REGISTRY.register("creative_ammo_box", CreativeAmmoBoxItem::new);
public static final RegistryObject<Item> TASER_ELECTRODE = REGISTRY.register("taser_electrode", () -> new TaserElectrodeItem()); public static final RegistryObject<Item> TASER_ELECTRODE = REGISTRY.register("taser_electrode", TaserElectrodeItem::new);
public static final RegistryObject<Item> GRENADE_40MM = REGISTRY.register("grenade_40mm", () -> new Grenade40mmItem()); public static final RegistryObject<Item> GRENADE_40MM = REGISTRY.register("grenade_40mm", Grenade40mmItem::new);
public static final RegistryObject<Item> MORTAR_SHELLS = REGISTRY.register("mortar_shells", () -> new MortarShellsItem()); public static final RegistryObject<Item> MORTAR_SHELLS = REGISTRY.register("mortar_shells", MortarShellsItem::new);
public static final RegistryObject<Item> ROCKET = REGISTRY.register("rocket", () -> new RocketItem()); public static final RegistryObject<Item> ROCKET = REGISTRY.register("rocket", RocketItem::new);
private static RegistryObject<Item> block(RegistryObject<Block> block) { private static RegistryObject<Item> block(RegistryObject<Block> block) {
return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties())); return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties()));
} }
} }

View file

@ -4,104 +4,100 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import org.lwjgl.glfw.GLFW;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.client.Minecraft;
import net.minecraft.client.KeyMapping;
import net.mcreator.target.network.ZoomMessage;
import net.mcreator.target.network.ReloadMessage;
import net.mcreator.target.network.FiremodeMessage;
import net.mcreator.target.network.DoublejumpinputMessage;
import net.mcreator.target.TargetMod;
import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.platform.InputConstants;
import net.mcreator.target.TargetMod;
import net.mcreator.target.network.DoublejumpinputMessage;
import net.mcreator.target.network.FiremodeMessage;
import net.mcreator.target.network.ReloadMessage;
import net.mcreator.target.network.ZoomMessage;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.lwjgl.glfw.GLFW;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = {Dist.CLIENT}) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = {Dist.CLIENT})
public class TargetModKeyMappings { public class TargetModKeyMappings {
public static final KeyMapping RELOAD = new KeyMapping("key.target.reload", GLFW.GLFW_KEY_R, "key.categories.target") { public static final KeyMapping RELOAD = new KeyMapping("key.target.reload", GLFW.GLFW_KEY_R, "key.categories.target") {
private boolean isDownOld = false; private boolean isDownOld = false;
@Override @Override
public void setDown(boolean isDown) { public void setDown(boolean isDown) {
super.setDown(isDown); super.setDown(isDown);
if (isDownOld != isDown && isDown) { if (isDownOld != isDown && isDown) {
TargetMod.PACKET_HANDLER.sendToServer(new ReloadMessage(0, 0)); TargetMod.PACKET_HANDLER.sendToServer(new ReloadMessage(0, 0));
ReloadMessage.pressAction(Minecraft.getInstance().player, 0, 0); ReloadMessage.pressAction(Minecraft.getInstance().player, 0, 0);
} }
isDownOld = isDown; isDownOld = isDown;
} }
}; };
public static final KeyMapping DOUBLEJUMPINPUT = new KeyMapping("key.target.doublejumpinput", GLFW.GLFW_KEY_SPACE, "key.categories.target") { public static final KeyMapping DOUBLEJUMPINPUT = new KeyMapping("key.target.doublejumpinput", GLFW.GLFW_KEY_SPACE, "key.categories.target") {
private boolean isDownOld = false; private boolean isDownOld = false;
@Override @Override
public void setDown(boolean isDown) { public void setDown(boolean isDown) {
super.setDown(isDown); super.setDown(isDown);
if (isDownOld != isDown && isDown) { if (isDownOld != isDown && isDown) {
TargetMod.PACKET_HANDLER.sendToServer(new DoublejumpinputMessage(0, 0)); TargetMod.PACKET_HANDLER.sendToServer(new DoublejumpinputMessage(0, 0));
DoublejumpinputMessage.pressAction(Minecraft.getInstance().player, 0, 0); DoublejumpinputMessage.pressAction(Minecraft.getInstance().player, 0, 0);
} }
isDownOld = isDown; isDownOld = isDown;
} }
}; };
public static final KeyMapping FIREMODE = new KeyMapping("key.target.firemode", GLFW.GLFW_KEY_N, "key.categories.target") { public static final KeyMapping FIREMODE = new KeyMapping("key.target.firemode", GLFW.GLFW_KEY_N, "key.categories.target") {
private boolean isDownOld = false; private boolean isDownOld = false;
@Override @Override
public void setDown(boolean isDown) { public void setDown(boolean isDown) {
super.setDown(isDown); super.setDown(isDown);
if (isDownOld != isDown && isDown) { if (isDownOld != isDown && isDown) {
TargetMod.PACKET_HANDLER.sendToServer(new FiremodeMessage(0, 0)); TargetMod.PACKET_HANDLER.sendToServer(new FiremodeMessage(0, 0));
FiremodeMessage.pressAction(Minecraft.getInstance().player, 0, 0); FiremodeMessage.pressAction(Minecraft.getInstance().player, 0, 0);
} }
isDownOld = isDown; isDownOld = isDown;
} }
}; };
public static final KeyMapping ZOOM = new KeyMapping("key.target.zoom", InputConstants.Type.MOUSE, GLFW.GLFW_MOUSE_BUTTON_RIGHT, "key.categories.target") { public static final KeyMapping ZOOM = new KeyMapping("key.target.zoom", InputConstants.Type.MOUSE, GLFW.GLFW_MOUSE_BUTTON_RIGHT, "key.categories.target") {
private boolean isDownOld = false; private boolean isDownOld = false;
@Override @Override
public void setDown(boolean isDown) { public void setDown(boolean isDown) {
super.setDown(isDown); super.setDown(isDown);
if (isDownOld != isDown && isDown) { if (isDownOld != isDown && isDown) {
TargetMod.PACKET_HANDLER.sendToServer(new ZoomMessage(0, 0)); TargetMod.PACKET_HANDLER.sendToServer(new ZoomMessage(0, 0));
ZoomMessage.pressAction(Minecraft.getInstance().player, 0, 0); ZoomMessage.pressAction(Minecraft.getInstance().player, 0, 0);
ZOOM_LASTPRESS = System.currentTimeMillis(); ZOOM_LASTPRESS = System.currentTimeMillis();
} else if (isDownOld != isDown && !isDown) { } else if (isDownOld != isDown) {
int dt = (int) (System.currentTimeMillis() - ZOOM_LASTPRESS); int dt = (int) (System.currentTimeMillis() - ZOOM_LASTPRESS);
TargetMod.PACKET_HANDLER.sendToServer(new ZoomMessage(1, dt)); TargetMod.PACKET_HANDLER.sendToServer(new ZoomMessage(1, dt));
ZoomMessage.pressAction(Minecraft.getInstance().player, 1, dt); ZoomMessage.pressAction(Minecraft.getInstance().player, 1, dt);
} }
isDownOld = isDown; isDownOld = isDown;
} }
}; };
private static long ZOOM_LASTPRESS = 0; private static long ZOOM_LASTPRESS = 0;
@SubscribeEvent @SubscribeEvent
public static void registerKeyMappings(RegisterKeyMappingsEvent event) { public static void registerKeyMappings(RegisterKeyMappingsEvent event) {
event.register(RELOAD); event.register(RELOAD);
event.register(DOUBLEJUMPINPUT); event.register(DOUBLEJUMPINPUT);
event.register(FIREMODE); event.register(FIREMODE);
event.register(ZOOM); event.register(ZOOM);
} }
@Mod.EventBusSubscriber({Dist.CLIENT}) @Mod.EventBusSubscriber({Dist.CLIENT})
public static class KeyEventListener { public static class KeyEventListener {
@SubscribeEvent @SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) { public static void onClientTick(TickEvent.ClientTickEvent event) {
if (Minecraft.getInstance().screen == null) { if (Minecraft.getInstance().screen == null) {
RELOAD.consumeClick(); RELOAD.consumeClick();
DOUBLEJUMPINPUT.consumeClick(); DOUBLEJUMPINPUT.consumeClick();
FIREMODE.consumeClick(); FIREMODE.consumeClick();
ZOOM.consumeClick(); ZOOM.consumeClick();
} }
} }
} }
} }

View file

@ -1,66 +1,59 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import org.checkerframework.checker.units.qual.m; import com.google.common.base.Suppliers;
import com.mojang.serialization.Codec;
import net.minecraftforge.registries.RegistryObject; import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraftforge.registries.ForgeRegistries; import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.common.loot.LootModifier;
import net.minecraftforge.common.loot.IGlobalLootModifier;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraft.world.level.storage.loot.LootContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.storage.loot.LootContext;
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
import net.minecraftforge.common.loot.IGlobalLootModifier;
import net.minecraftforge.common.loot.LootModifier;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import java.util.function.Supplier; import java.util.function.Supplier;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import com.mojang.serialization.Codec;
import com.google.common.base.Suppliers;
@Mod.EventBusSubscriber(modid = TargetMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(modid = TargetMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class TargetModLootModifier { public class TargetModLootModifier {
public static class TargetModLootTableModifier extends LootModifier { public static class TargetModLootTableModifier extends LootModifier {
public static final Supplier<Codec<TargetModLootTableModifier>> CODEC = Suppliers public static final Supplier<Codec<TargetModLootTableModifier>> CODEC = Suppliers
.memoize(() -> RecordCodecBuilder.create(instance -> codecStart(instance).and(ResourceLocation.CODEC.fieldOf("lootTable").forGetter(m -> m.lootTable)).apply(instance, TargetModLootTableModifier::new))); .memoize(() -> RecordCodecBuilder.create(instance -> codecStart(instance).and(ResourceLocation.CODEC.fieldOf("lootTable").forGetter(m -> m.lootTable)).apply(instance, TargetModLootTableModifier::new)));
private final ResourceLocation lootTable; private final ResourceLocation lootTable;
public TargetModLootTableModifier(LootItemCondition[] conditions, ResourceLocation lootTable) { public TargetModLootTableModifier(LootItemCondition[] conditions, ResourceLocation lootTable) {
super(conditions); super(conditions);
this.lootTable = lootTable; this.lootTable = lootTable;
} }
@Override @Override
protected ObjectArrayList<ItemStack> doApply(ObjectArrayList<ItemStack> generatedLoot, LootContext context) { protected ObjectArrayList<ItemStack> doApply(ObjectArrayList<ItemStack> generatedLoot, LootContext context) {
context.getResolver().getLootTable(lootTable).getRandomItemsRaw(context, generatedLoot::add); context.getResolver().getLootTable(lootTable).getRandomItemsRaw(context, generatedLoot::add);
return generatedLoot; return generatedLoot;
} }
@Override @Override
public Codec<? extends IGlobalLootModifier> codec() { public Codec<? extends IGlobalLootModifier> codec() {
return CODEC.get(); return CODEC.get();
} }
} }
public static final DeferredRegister<Codec<? extends IGlobalLootModifier>> LOOT_MODIFIERS = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, "target"); public static final DeferredRegister<Codec<? extends IGlobalLootModifier>> LOOT_MODIFIERS = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, "target");
public static final RegistryObject<Codec<TargetModLootTableModifier>> LOOT_MODIFIER = LOOT_MODIFIERS.register("target_loot_modifier", TargetModLootTableModifier.CODEC); public static final RegistryObject<Codec<TargetModLootTableModifier>> LOOT_MODIFIER = LOOT_MODIFIERS.register("target_loot_modifier", TargetModLootTableModifier.CODEC);
@SubscribeEvent @SubscribeEvent
public static void register(FMLConstructModEvent event) { public static void register(FMLConstructModEvent event) {
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
event.enqueueWork(() -> { event.enqueueWork(() -> {
LOOT_MODIFIERS.register(bus); LOOT_MODIFIERS.register(bus);
}); });
} }
} }

View file

@ -4,19 +4,17 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.common.extensions.IForgeMenuType;
import net.minecraft.world.inventory.MenuType;
import net.mcreator.target.world.inventory.MortarGUIMenu;
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.world.inventory.GunRecycleGuiMenu;
import net.mcreator.target.world.inventory.MortarGUIMenu;
import net.minecraft.world.inventory.MenuType;
import net.minecraftforge.common.extensions.IForgeMenuType;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TargetModMenus { public class TargetModMenus {
public static final DeferredRegister<MenuType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.MENU_TYPES, TargetMod.MODID); public static final DeferredRegister<MenuType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.MENU_TYPES, TargetMod.MODID);
public static final RegistryObject<MenuType<MortarGUIMenu>> MORTAR_GUI = REGISTRY.register("mortar_gui", () -> IForgeMenuType.create(MortarGUIMenu::new)); public static final RegistryObject<MenuType<MortarGUIMenu>> MORTAR_GUI = REGISTRY.register("mortar_gui", () -> IForgeMenuType.create(MortarGUIMenu::new));
public static final RegistryObject<MenuType<GunRecycleGuiMenu>> GUN_RECYCLE_GUI = REGISTRY.register("gun_recycle_gui", () -> IForgeMenuType.create(GunRecycleGuiMenu::new)); public static final RegistryObject<MenuType<GunRecycleGuiMenu>> GUN_RECYCLE_GUI = REGISTRY.register("gun_recycle_gui", () -> IForgeMenuType.create(GunRecycleGuiMenu::new));
} }

View file

@ -4,16 +4,14 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraft.world.effect.MobEffect;
import net.mcreator.target.potion.ShockMobEffect;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.potion.ShockMobEffect;
import net.minecraft.world.effect.MobEffect;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TargetModMobEffects { public class TargetModMobEffects {
public static final DeferredRegister<MobEffect> REGISTRY = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, TargetMod.MODID); public static final DeferredRegister<MobEffect> REGISTRY = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, TargetMod.MODID);
public static final RegistryObject<MobEffect> SHOCK = REGISTRY.register("shock", () -> new ShockMobEffect()); public static final RegistryObject<MobEffect> SHOCK = REGISTRY.register("shock", ShockMobEffect::new);
} }

View file

@ -4,29 +4,22 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.common.Mod; import net.mcreator.target.client.model.*;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.mcreator.target.client.model.Modeltaser_rod; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.mcreator.target.client.model.Modelrpg7_rocket_Converted; import net.minecraftforge.fml.common.Mod;
import net.mcreator.target.client.model.Modelmortar_shell_Converted;
import net.mcreator.target.client.model.Modelclaymore;
import net.mcreator.target.client.model.Modelbullet;
import net.mcreator.target.client.model.Modelbocekarrow;
import net.mcreator.target.client.model.ModelGrenade;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = {Dist.CLIENT}) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = {Dist.CLIENT})
public class TargetModModels { public class TargetModModels {
@SubscribeEvent @SubscribeEvent
public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) { public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) {
event.registerLayerDefinition(Modelrpg7_rocket_Converted.LAYER_LOCATION, Modelrpg7_rocket_Converted::createBodyLayer); event.registerLayerDefinition(Modelrpg7_rocket_Converted.LAYER_LOCATION, Modelrpg7_rocket_Converted::createBodyLayer);
event.registerLayerDefinition(Modelbullet.LAYER_LOCATION, Modelbullet::createBodyLayer); event.registerLayerDefinition(Modelbullet.LAYER_LOCATION, Modelbullet::createBodyLayer);
event.registerLayerDefinition(Modelmortar_shell_Converted.LAYER_LOCATION, Modelmortar_shell_Converted::createBodyLayer); event.registerLayerDefinition(Modelmortar_shell_Converted.LAYER_LOCATION, Modelmortar_shell_Converted::createBodyLayer);
event.registerLayerDefinition(Modeltaser_rod.LAYER_LOCATION, Modeltaser_rod::createBodyLayer); event.registerLayerDefinition(Modeltaser_rod.LAYER_LOCATION, Modeltaser_rod::createBodyLayer);
event.registerLayerDefinition(ModelGrenade.LAYER_LOCATION, ModelGrenade::createBodyLayer); event.registerLayerDefinition(ModelGrenade.LAYER_LOCATION, ModelGrenade::createBodyLayer);
event.registerLayerDefinition(Modelbocekarrow.LAYER_LOCATION, Modelbocekarrow::createBodyLayer); event.registerLayerDefinition(Modelbocekarrow.LAYER_LOCATION, Modelbocekarrow::createBodyLayer);
event.registerLayerDefinition(Modelclaymore.LAYER_LOCATION, Modelclaymore::createBodyLayer); event.registerLayerDefinition(Modelclaymore.LAYER_LOCATION, Modelclaymore::createBodyLayer);
} }
} }

View file

@ -1,18 +1,15 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.core.particles.ParticleType;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.minecraft.core.particles.ParticleType;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TargetModParticleTypes { public class TargetModParticleTypes {
public static final DeferredRegister<ParticleType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, TargetMod.MODID); public static final DeferredRegister<ParticleType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, TargetMod.MODID);
public static final RegistryObject<SimpleParticleType> FIRESTAR = REGISTRY.register("firestar", () -> new SimpleParticleType(false)); public static final RegistryObject<SimpleParticleType> FIRESTAR = REGISTRY.register("firestar", () -> new SimpleParticleType(false));
public static final RegistryObject<SimpleParticleType> BULLTHOLE = REGISTRY.register("bullthole", () -> new SimpleParticleType(false)); public static final RegistryObject<SimpleParticleType> BULLTHOLE = REGISTRY.register("bullthole", () -> new SimpleParticleType(false));
} }

View file

@ -1,20 +1,18 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.client.event.RegisterParticleProvidersEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.mcreator.target.client.particle.FirestarParticle;
import net.mcreator.target.client.particle.BulltholeParticle; import net.mcreator.target.client.particle.BulltholeParticle;
import net.mcreator.target.client.particle.FirestarParticle;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.RegisterParticleProvidersEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class TargetModParticles { public class TargetModParticles {
@SubscribeEvent @SubscribeEvent
public static void registerParticles(RegisterParticleProvidersEvent event) { public static void registerParticles(RegisterParticleProvidersEvent event) {
event.registerSpriteSet(TargetModParticleTypes.FIRESTAR.get(), FirestarParticle::provider); event.registerSpriteSet(TargetModParticleTypes.FIRESTAR.get(), FirestarParticle::provider);
event.registerSpriteSet(TargetModParticleTypes.BULLTHOLE.get(), BulltholeParticle::provider); event.registerSpriteSet(TargetModParticleTypes.BULLTHOLE.get(), BulltholeParticle::provider);
} }
} }

View file

@ -4,23 +4,21 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.client.gui.screens.MenuScreens;
import net.mcreator.target.client.gui.MortarGUIScreen;
import net.mcreator.target.client.gui.GunRecycleGuiScreen; import net.mcreator.target.client.gui.GunRecycleGuiScreen;
import net.mcreator.target.client.gui.MortarGUIScreen;
import net.minecraft.client.gui.screens.MenuScreens;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class TargetModScreens { public class TargetModScreens {
@SubscribeEvent @SubscribeEvent
public static void clientLoad(FMLClientSetupEvent event) { public static void clientLoad(FMLClientSetupEvent event) {
event.enqueueWork(() -> { event.enqueueWork(() -> {
MenuScreens.register(TargetModMenus.MORTAR_GUI.get(), MortarGUIScreen::new); MenuScreens.register(TargetModMenus.MORTAR_GUI.get(), MortarGUIScreen::new);
MenuScreens.register(TargetModMenus.GUN_RECYCLE_GUI.get(), GunRecycleGuiScreen::new); MenuScreens.register(TargetModMenus.GUN_RECYCLE_GUI.get(), GunRecycleGuiScreen::new);
}); });
} }
} }

View file

@ -4,149 +4,147 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.resources.ResourceLocation;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class TargetModSounds { public class TargetModSounds {
public static final DeferredRegister<SoundEvent> REGISTRY = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, TargetMod.MODID); public static final DeferredRegister<SoundEvent> REGISTRY = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, TargetMod.MODID);
public static final RegistryObject<SoundEvent> TASERFIRE = REGISTRY.register("taserfire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "taserfire"))); public static final RegistryObject<SoundEvent> TASERFIRE = REGISTRY.register("taserfire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "taserfire")));
public static final RegistryObject<SoundEvent> SHOCK = REGISTRY.register("shock", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shock"))); public static final RegistryObject<SoundEvent> SHOCK = REGISTRY.register("shock", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shock")));
public static final RegistryObject<SoundEvent> TRACHELIUM3P = REGISTRY.register("trachelium3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "trachelium3p"))); public static final RegistryObject<SoundEvent> TRACHELIUM3P = REGISTRY.register("trachelium3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "trachelium3p")));
public static final RegistryObject<SoundEvent> TRIGGERCLICK = REGISTRY.register("triggerclick", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "triggerclick"))); public static final RegistryObject<SoundEvent> TRIGGERCLICK = REGISTRY.register("triggerclick", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "triggerclick")));
public static final RegistryObject<SoundEvent> HIT = REGISTRY.register("hit", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hit"))); public static final RegistryObject<SoundEvent> HIT = REGISTRY.register("hit", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hit")));
public static final RegistryObject<SoundEvent> TASERRELOAD = REGISTRY.register("taserreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "taserreload"))); public static final RegistryObject<SoundEvent> TASERRELOAD = REGISTRY.register("taserreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "taserreload")));
public static final RegistryObject<SoundEvent> RELOAD = REGISTRY.register("reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "reload"))); public static final RegistryObject<SoundEvent> RELOAD = REGISTRY.register("reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "reload")));
public static final RegistryObject<SoundEvent> TARGETDOWN = REGISTRY.register("targetdown", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "targetdown"))); public static final RegistryObject<SoundEvent> TARGETDOWN = REGISTRY.register("targetdown", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "targetdown")));
public static final RegistryObject<SoundEvent> INDICATION = REGISTRY.register("indication", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "indication"))); public static final RegistryObject<SoundEvent> INDICATION = REGISTRY.register("indication", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "indication")));
public static final RegistryObject<SoundEvent> JUMP = REGISTRY.register("jump", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "jump"))); public static final RegistryObject<SoundEvent> JUMP = REGISTRY.register("jump", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "jump")));
public static final RegistryObject<SoundEvent> DOUBLEJUMP = REGISTRY.register("doublejump", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "doublejump"))); public static final RegistryObject<SoundEvent> DOUBLEJUMP = REGISTRY.register("doublejump", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "doublejump")));
public static final RegistryObject<SoundEvent> C4EXP = REGISTRY.register("c4exp", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "c4exp"))); public static final RegistryObject<SoundEvent> C4EXP = REGISTRY.register("c4exp", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "c4exp")));
public static final RegistryObject<SoundEvent> EXP = REGISTRY.register("exp", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "exp"))); public static final RegistryObject<SoundEvent> EXP = REGISTRY.register("exp", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "exp")));
public static final RegistryObject<SoundEvent> EXPFAR = REGISTRY.register("expfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "expfar"))); public static final RegistryObject<SoundEvent> EXPFAR = REGISTRY.register("expfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "expfar")));
public static final RegistryObject<SoundEvent> EXPVERYFAR = REGISTRY.register("expveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "expveryfar"))); public static final RegistryObject<SoundEvent> EXPVERYFAR = REGISTRY.register("expveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "expveryfar")));
public static final RegistryObject<SoundEvent> HR_FIRE_1P = REGISTRY.register("hr_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hr_fire_1p"))); public static final RegistryObject<SoundEvent> HR_FIRE_1P = REGISTRY.register("hr_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hr_fire_1p")));
public static final RegistryObject<SoundEvent> HR_RELOAD = REGISTRY.register("hr_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hr_reload"))); public static final RegistryObject<SoundEvent> HR_RELOAD = REGISTRY.register("hr_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hr_reload")));
public static final RegistryObject<SoundEvent> WAAO = REGISTRY.register("waao", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "waao"))); public static final RegistryObject<SoundEvent> WAAO = REGISTRY.register("waao", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "waao")));
public static final RegistryObject<SoundEvent> STIM = REGISTRY.register("stim", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "stim"))); public static final RegistryObject<SoundEvent> STIM = REGISTRY.register("stim", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "stim")));
public static final RegistryObject<SoundEvent> OUCH = REGISTRY.register("ouch", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ouch"))); public static final RegistryObject<SoundEvent> OUCH = REGISTRY.register("ouch", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ouch")));
public static final RegistryObject<SoundEvent> STEP = REGISTRY.register("step", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "step"))); public static final RegistryObject<SoundEvent> STEP = REGISTRY.register("step", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "step")));
public static final RegistryObject<SoundEvent> GROWL = REGISTRY.register("growl", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "growl"))); public static final RegistryObject<SoundEvent> GROWL = REGISTRY.register("growl", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "growl")));
public static final RegistryObject<SoundEvent> IDLE = REGISTRY.register("idle", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "idle"))); public static final RegistryObject<SoundEvent> IDLE = REGISTRY.register("idle", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "idle")));
public static final RegistryObject<SoundEvent> M79_FIRE_1P = REGISTRY.register("m79_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m79_fire_1p"))); public static final RegistryObject<SoundEvent> M79_FIRE_1P = REGISTRY.register("m79_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m79_fire_1p")));
public static final RegistryObject<SoundEvent> M79RELOAD = REGISTRY.register("m79reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m79reload"))); public static final RegistryObject<SoundEvent> M79RELOAD = REGISTRY.register("m79reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m79reload")));
public static final RegistryObject<SoundEvent> AK_FIRE_3P = REGISTRY.register("ak_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak_fire_3p"))); public static final RegistryObject<SoundEvent> AK_FIRE_3P = REGISTRY.register("ak_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak_fire_3p")));
public static final RegistryObject<SoundEvent> AKRELOAD = REGISTRY.register("akreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akreload"))); public static final RegistryObject<SoundEvent> AKRELOAD = REGISTRY.register("akreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akreload")));
public static final RegistryObject<SoundEvent> ELBOW_START = REGISTRY.register("elbow_start", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "elbow_start"))); public static final RegistryObject<SoundEvent> ELBOW_START = REGISTRY.register("elbow_start", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "elbow_start")));
public static final RegistryObject<SoundEvent> ELBOW_HIT = REGISTRY.register("elbow_hit", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "elbow_hit"))); public static final RegistryObject<SoundEvent> ELBOW_HIT = REGISTRY.register("elbow_hit", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "elbow_hit")));
public static final RegistryObject<SoundEvent> AKRELOAD2 = REGISTRY.register("akreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akreload2"))); public static final RegistryObject<SoundEvent> AKRELOAD2 = REGISTRY.register("akreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akreload2")));
public static final RegistryObject<SoundEvent> LAND = REGISTRY.register("land", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "land"))); public static final RegistryObject<SoundEvent> LAND = REGISTRY.register("land", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "land")));
public static final RegistryObject<SoundEvent> ABKR_FIRE_3P = REGISTRY.register("abkr_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "abkr_fire_3p"))); public static final RegistryObject<SoundEvent> ABKR_FIRE_3P = REGISTRY.register("abkr_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "abkr_fire_3p")));
public static final RegistryObject<SoundEvent> ABKR_RELOAD = REGISTRY.register("abkr_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "abkr_reload"))); public static final RegistryObject<SoundEvent> ABKR_RELOAD = REGISTRY.register("abkr_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "abkr_reload")));
public static final RegistryObject<SoundEvent> ABKR_RELOAD2 = REGISTRY.register("abkr_reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "abkr_reload2"))); public static final RegistryObject<SoundEvent> ABKR_RELOAD2 = REGISTRY.register("abkr_reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "abkr_reload2")));
public static final RegistryObject<SoundEvent> SHIFT = REGISTRY.register("shift", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shift"))); public static final RegistryObject<SoundEvent> SHIFT = REGISTRY.register("shift", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shift")));
public static final RegistryObject<SoundEvent> ENEMY_SPOT = REGISTRY.register("enemy_spot", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "enemy_spot"))); public static final RegistryObject<SoundEvent> ENEMY_SPOT = REGISTRY.register("enemy_spot", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "enemy_spot")));
public static final RegistryObject<SoundEvent> ENEMY_SPOT_1P = REGISTRY.register("enemy_spot_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "enemy_spot_1p"))); public static final RegistryObject<SoundEvent> ENEMY_SPOT_1P = REGISTRY.register("enemy_spot_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "enemy_spot_1p")));
public static final RegistryObject<SoundEvent> HEADSHOT = REGISTRY.register("headshot", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "headshot"))); public static final RegistryObject<SoundEvent> HEADSHOT = REGISTRY.register("headshot", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "headshot")));
public static final RegistryObject<SoundEvent> AK47RELOAD = REGISTRY.register("ak47reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47reload"))); public static final RegistryObject<SoundEvent> AK47RELOAD = REGISTRY.register("ak47reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47reload")));
public static final RegistryObject<SoundEvent> AK47RELOAD2 = REGISTRY.register("ak47reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47reload2"))); public static final RegistryObject<SoundEvent> AK47RELOAD2 = REGISTRY.register("ak47reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47reload2")));
public static final RegistryObject<SoundEvent> AK47_FIRE_3P = REGISTRY.register("ak47_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47_fire_3p"))); public static final RegistryObject<SoundEvent> AK47_FIRE_3P = REGISTRY.register("ak47_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47_fire_3p")));
public static final RegistryObject<SoundEvent> DEVOTION_FIRE_3P = REGISTRY.register("devotion_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_fire_3p"))); public static final RegistryObject<SoundEvent> DEVOTION_FIRE_3P = REGISTRY.register("devotion_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_fire_3p")));
public static final RegistryObject<SoundEvent> DEVOTION_RELOAD = REGISTRY.register("devotion_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_reload"))); public static final RegistryObject<SoundEvent> DEVOTION_RELOAD = REGISTRY.register("devotion_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_reload")));
public static final RegistryObject<SoundEvent> DEVOTION_RELOAD2 = REGISTRY.register("devotion_reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_reload2"))); public static final RegistryObject<SoundEvent> DEVOTION_RELOAD2 = REGISTRY.register("devotion_reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_reload2")));
public static final RegistryObject<SoundEvent> RPG7_FIRE = REGISTRY.register("rpg7_fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpg7_fire"))); public static final RegistryObject<SoundEvent> RPG7_FIRE = REGISTRY.register("rpg7_fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpg7_fire")));
public static final RegistryObject<SoundEvent> RPG7_RELOAD = REGISTRY.register("rpg7_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpg7_reload"))); public static final RegistryObject<SoundEvent> RPG7_RELOAD = REGISTRY.register("rpg7_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpg7_reload")));
public static final RegistryObject<SoundEvent> MORTAR_FIRE = REGISTRY.register("mortar_fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mortar_fire"))); public static final RegistryObject<SoundEvent> MORTAR_FIRE = REGISTRY.register("mortar_fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mortar_fire")));
public static final RegistryObject<SoundEvent> MORTAR_LOAD = REGISTRY.register("mortar_load", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mortar_load"))); public static final RegistryObject<SoundEvent> MORTAR_LOAD = REGISTRY.register("mortar_load", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mortar_load")));
public static final RegistryObject<SoundEvent> MORTAR_DISTANT = REGISTRY.register("mortar_distant", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mortar_distant"))); public static final RegistryObject<SoundEvent> MORTAR_DISTANT = REGISTRY.register("mortar_distant", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mortar_distant")));
public static final RegistryObject<SoundEvent> FIRERATE = REGISTRY.register("firerate", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "firerate"))); public static final RegistryObject<SoundEvent> FIRERATE = REGISTRY.register("firerate", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "firerate")));
public static final RegistryObject<SoundEvent> M4FIRE = REGISTRY.register("m4fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4fire"))); public static final RegistryObject<SoundEvent> M4FIRE = REGISTRY.register("m4fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4fire")));
public static final RegistryObject<SoundEvent> M4RELOAD = REGISTRY.register("m4reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4reload"))); public static final RegistryObject<SoundEvent> M4RELOAD = REGISTRY.register("m4reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4reload")));
public static final RegistryObject<SoundEvent> M4RELOAD2 = REGISTRY.register("m4reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4reload2"))); public static final RegistryObject<SoundEvent> M4RELOAD2 = REGISTRY.register("m4reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4reload2")));
public static final RegistryObject<SoundEvent> AA12FIRE = REGISTRY.register("aa12fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12fire"))); public static final RegistryObject<SoundEvent> AA12FIRE = REGISTRY.register("aa12fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12fire")));
public static final RegistryObject<SoundEvent> AA12RELOAD = REGISTRY.register("aa12reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12reload"))); public static final RegistryObject<SoundEvent> AA12RELOAD = REGISTRY.register("aa12reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12reload")));
public static final RegistryObject<SoundEvent> AA12RELOAD2 = REGISTRY.register("aa12reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12reload2"))); public static final RegistryObject<SoundEvent> AA12RELOAD2 = REGISTRY.register("aa12reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12reload2")));
public static final RegistryObject<SoundEvent> BOWPULL = REGISTRY.register("bowpull", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowpull"))); public static final RegistryObject<SoundEvent> BOWPULL = REGISTRY.register("bowpull", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowpull")));
public static final RegistryObject<SoundEvent> BOWFIRE1P = REGISTRY.register("bowfire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowfire1p"))); public static final RegistryObject<SoundEvent> BOWFIRE1P = REGISTRY.register("bowfire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowfire1p")));
public static final RegistryObject<SoundEvent> BOWFIRE3P = REGISTRY.register("bowfire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowfire3p"))); public static final RegistryObject<SoundEvent> BOWFIRE3P = REGISTRY.register("bowfire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowfire3p")));
public static final RegistryObject<SoundEvent> SHOTFIRE = REGISTRY.register("shotfire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shotfire"))); public static final RegistryObject<SoundEvent> SHOTFIRE = REGISTRY.register("shotfire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shotfire")));
public static final RegistryObject<SoundEvent> SHOTFIRE3P = REGISTRY.register("shotfire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shotfire3p"))); public static final RegistryObject<SoundEvent> SHOTFIRE3P = REGISTRY.register("shotfire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "shotfire3p")));
public static final RegistryObject<SoundEvent> BOWPULL1P = REGISTRY.register("bowpull1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowpull1p"))); public static final RegistryObject<SoundEvent> BOWPULL1P = REGISTRY.register("bowpull1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bowpull1p")));
public static final RegistryObject<SoundEvent> HK416RELOAD = REGISTRY.register("hk416reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416reload"))); public static final RegistryObject<SoundEvent> HK416RELOAD = REGISTRY.register("hk416reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416reload")));
public static final RegistryObject<SoundEvent> HK416RELOAD2 = REGISTRY.register("hk416reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416reload2"))); public static final RegistryObject<SoundEvent> HK416RELOAD2 = REGISTRY.register("hk416reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416reload2")));
public static final RegistryObject<SoundEvent> HK416FIRE = REGISTRY.register("hk416fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416fire"))); public static final RegistryObject<SoundEvent> HK416FIRE = REGISTRY.register("hk416fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416fire")));
public static final RegistryObject<SoundEvent> RPKFIRE = REGISTRY.register("rpkfire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpkfire"))); public static final RegistryObject<SoundEvent> RPKFIRE = REGISTRY.register("rpkfire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpkfire")));
public static final RegistryObject<SoundEvent> RPKRELOAD = REGISTRY.register("rpkreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpkreload"))); public static final RegistryObject<SoundEvent> RPKRELOAD = REGISTRY.register("rpkreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpkreload")));
public static final RegistryObject<SoundEvent> RPKRELOAD2 = REGISTRY.register("rpkreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpkreload2"))); public static final RegistryObject<SoundEvent> RPKRELOAD2 = REGISTRY.register("rpkreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpkreload2")));
public static final RegistryObject<SoundEvent> KRABER_FIRE_1P = REGISTRY.register("kraber_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_fire_1p"))); public static final RegistryObject<SoundEvent> KRABER_FIRE_1P = REGISTRY.register("kraber_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_fire_1p")));
public static final RegistryObject<SoundEvent> KRABER_FIRE_3P = REGISTRY.register("kraber_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_fire_3p"))); public static final RegistryObject<SoundEvent> KRABER_FIRE_3P = REGISTRY.register("kraber_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_fire_3p")));
public static final RegistryObject<SoundEvent> KRABERRELOAD1 = REGISTRY.register("kraberreload1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberreload1"))); public static final RegistryObject<SoundEvent> KRABERRELOAD1 = REGISTRY.register("kraberreload1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberreload1")));
public static final RegistryObject<SoundEvent> KRABERRELOAD2 = REGISTRY.register("kraberreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberreload2"))); public static final RegistryObject<SoundEvent> KRABERRELOAD2 = REGISTRY.register("kraberreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberreload2")));
public static final RegistryObject<SoundEvent> VEC1 = REGISTRY.register("vec1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vec1"))); public static final RegistryObject<SoundEvent> VEC1 = REGISTRY.register("vec1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vec1")));
public static final RegistryObject<SoundEvent> VEC3 = REGISTRY.register("vec3", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vec3"))); public static final RegistryObject<SoundEvent> VEC3 = REGISTRY.register("vec3", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vec3")));
public static final RegistryObject<SoundEvent> VECRELOAD = REGISTRY.register("vecreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vecreload"))); public static final RegistryObject<SoundEvent> VECRELOAD = REGISTRY.register("vecreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vecreload")));
public static final RegistryObject<SoundEvent> VECRELOAD2 = REGISTRY.register("vecreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vecreload2"))); public static final RegistryObject<SoundEvent> VECRELOAD2 = REGISTRY.register("vecreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vecreload2")));
public static final RegistryObject<SoundEvent> MINIGUNSTOP = REGISTRY.register("minigunstop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "minigunstop"))); public static final RegistryObject<SoundEvent> MINIGUNSTOP = REGISTRY.register("minigunstop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "minigunstop")));
public static final RegistryObject<SoundEvent> MINIGUN_FIRE_1P = REGISTRY.register("minigun_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "minigun_fire_1p"))); public static final RegistryObject<SoundEvent> MINIGUN_FIRE_1P = REGISTRY.register("minigun_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "minigun_fire_1p")));
public static final RegistryObject<SoundEvent> MINIGUN_FIRE_3P = REGISTRY.register("minigun_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "minigun_fire_3p"))); public static final RegistryObject<SoundEvent> MINIGUN_FIRE_3P = REGISTRY.register("minigun_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "minigun_fire_3p")));
public static final RegistryObject<SoundEvent> OVERHEAT = REGISTRY.register("overheat", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "overheat"))); public static final RegistryObject<SoundEvent> OVERHEAT = REGISTRY.register("overheat", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "overheat")));
public static final RegistryObject<SoundEvent> OVERHEAT_WARN = REGISTRY.register("overheat_warn", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "overheat_warn"))); public static final RegistryObject<SoundEvent> OVERHEAT_WARN = REGISTRY.register("overheat_warn", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "overheat_warn")));
public static final RegistryObject<SoundEvent> MK14FIRE = REGISTRY.register("mk14fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mk14fire"))); public static final RegistryObject<SoundEvent> MK14FIRE = REGISTRY.register("mk14fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mk14fire")));
public static final RegistryObject<SoundEvent> MK14_RELOAD_EMPTY = REGISTRY.register("mk14_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mk14_reload_empty"))); public static final RegistryObject<SoundEvent> MK14_RELOAD_EMPTY = REGISTRY.register("mk14_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mk14_reload_empty")));
public static final RegistryObject<SoundEvent> MK14_RELOAD_NORMAL = REGISTRY.register("mk14_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mk14_reload_normal"))); public static final RegistryObject<SoundEvent> MK14_RELOAD_NORMAL = REGISTRY.register("mk14_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "mk14_reload_normal")));
public static final RegistryObject<SoundEvent> SENTINELFIRE1 = REGISTRY.register("sentinelfire1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfire1"))); public static final RegistryObject<SoundEvent> SENTINELFIRE1 = REGISTRY.register("sentinelfire1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfire1")));
public static final RegistryObject<SoundEvent> SENTINELFIRE3 = REGISTRY.register("sentinelfire3", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfire3"))); public static final RegistryObject<SoundEvent> SENTINELFIRE3 = REGISTRY.register("sentinelfire3", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfire3")));
public static final RegistryObject<SoundEvent> SENTINELFIRECHARGE1 = REGISTRY.register("sentinelfirecharge1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfirecharge1"))); public static final RegistryObject<SoundEvent> SENTINELFIRECHARGE1 = REGISTRY.register("sentinelfirecharge1", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfirecharge1")));
public static final RegistryObject<SoundEvent> SENTINELFIRECHARGE3 = REGISTRY.register("sentinelfirecharge3", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfirecharge3"))); public static final RegistryObject<SoundEvent> SENTINELFIRECHARGE3 = REGISTRY.register("sentinelfirecharge3", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinelfirecharge3")));
public static final RegistryObject<SoundEvent> CHARGE = REGISTRY.register("charge", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "charge"))); public static final RegistryObject<SoundEvent> CHARGE = REGISTRY.register("charge", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "charge")));
public static final RegistryObject<SoundEvent> SENTINEL_RELOAD = REGISTRY.register("sentinel_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_reload"))); public static final RegistryObject<SoundEvent> SENTINEL_RELOAD = REGISTRY.register("sentinel_reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_reload")));
public static final RegistryObject<SoundEvent> SENTINEL_RELOAD2 = REGISTRY.register("sentinel_reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_reload2"))); public static final RegistryObject<SoundEvent> SENTINEL_RELOAD2 = REGISTRY.register("sentinel_reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_reload2")));
public static final RegistryObject<SoundEvent> M60RELOAD = REGISTRY.register("m60reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m60reload"))); public static final RegistryObject<SoundEvent> M60RELOAD = REGISTRY.register("m60reload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m60reload")));
public static final RegistryObject<SoundEvent> M60RELOAD2 = REGISTRY.register("m60reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m60reload2"))); public static final RegistryObject<SoundEvent> M60RELOAD2 = REGISTRY.register("m60reload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m60reload2")));
public static final RegistryObject<SoundEvent> M60FIRE = REGISTRY.register("m60fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m60fire"))); public static final RegistryObject<SoundEvent> M60FIRE = REGISTRY.register("m60fire", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m60fire")));
public static final RegistryObject<SoundEvent> LIGHTSABER = REGISTRY.register("lightsaber", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "lightsaber"))); public static final RegistryObject<SoundEvent> LIGHTSABER = REGISTRY.register("lightsaber", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "lightsaber")));
public static final RegistryObject<SoundEvent> SVDRELOAD = REGISTRY.register("svdreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdreload"))); public static final RegistryObject<SoundEvent> SVDRELOAD = REGISTRY.register("svdreload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdreload")));
public static final RegistryObject<SoundEvent> SVDRELOAD2 = REGISTRY.register("svdreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdreload2"))); public static final RegistryObject<SoundEvent> SVDRELOAD2 = REGISTRY.register("svdreload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdreload2")));
public static final RegistryObject<SoundEvent> SVDFIRE1P = REGISTRY.register("svdfire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdfire1p"))); public static final RegistryObject<SoundEvent> SVDFIRE1P = REGISTRY.register("svdfire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdfire1p")));
public static final RegistryObject<SoundEvent> SVDFIRE3P = REGISTRY.register("svdfire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdfire3p"))); public static final RegistryObject<SoundEvent> SVDFIRE3P = REGISTRY.register("svdfire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdfire3p")));
public static final RegistryObject<SoundEvent> MARLIN_FIRE1P = REGISTRY.register("marlin_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_fire1p"))); public static final RegistryObject<SoundEvent> MARLIN_FIRE1P = REGISTRY.register("marlin_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_fire1p")));
public static final RegistryObject<SoundEvent> MARLIN_FIRE3P = REGISTRY.register("marlin_fire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_fire3p"))); public static final RegistryObject<SoundEvent> MARLIN_FIRE3P = REGISTRY.register("marlin_fire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_fire3p")));
public static final RegistryObject<SoundEvent> MARLIN_LOOP = REGISTRY.register("marlin_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_loop"))); public static final RegistryObject<SoundEvent> MARLIN_LOOP = REGISTRY.register("marlin_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_loop")));
public static final RegistryObject<SoundEvent> MARLIN_START = REGISTRY.register("marlin_start", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_start"))); public static final RegistryObject<SoundEvent> MARLIN_START = REGISTRY.register("marlin_start", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_start")));
public static final RegistryObject<SoundEvent> MARLIN_END = REGISTRY.register("marlin_end", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_end"))); public static final RegistryObject<SoundEvent> MARLIN_END = REGISTRY.register("marlin_end", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_end")));
public static final RegistryObject<SoundEvent> M870_FIRE1P = REGISTRY.register("m870_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_fire1p"))); public static final RegistryObject<SoundEvent> M870_FIRE1P = REGISTRY.register("m870_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_fire1p")));
public static final RegistryObject<SoundEvent> M870_FIRE3P = REGISTRY.register("m870_fire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_fire3p"))); public static final RegistryObject<SoundEvent> M870_FIRE3P = REGISTRY.register("m870_fire3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_fire3p")));
public static final RegistryObject<SoundEvent> M870_PREPAREALT = REGISTRY.register("m870_preparealt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_preparealt"))); public static final RegistryObject<SoundEvent> M870_PREPAREALT = REGISTRY.register("m870_preparealt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_preparealt")));
public static final RegistryObject<SoundEvent> M870_RELOADLOOP = REGISTRY.register("m870_reloadloop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_reloadloop"))); public static final RegistryObject<SoundEvent> M870_RELOADLOOP = REGISTRY.register("m870_reloadloop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m870_reloadloop")));
public static final RegistryObject<SoundEvent> M98B_FIRE_1P = REGISTRY.register("m98b_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98b_fire_1p"))); public static final RegistryObject<SoundEvent> M98B_FIRE_1P = REGISTRY.register("m98b_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98b_fire_1p")));
public static final RegistryObject<SoundEvent> M98B_FIRE_3P = REGISTRY.register("m98b_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98b_fire_3p"))); public static final RegistryObject<SoundEvent> M98B_FIRE_3P = REGISTRY.register("m98b_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98b_fire_3p")));
public static final RegistryObject<SoundEvent> M98BRELOAD = REGISTRY.register("m98breload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98breload"))); public static final RegistryObject<SoundEvent> M98BRELOAD = REGISTRY.register("m98breload", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98breload")));
public static final RegistryObject<SoundEvent> M98BRELOAD2 = REGISTRY.register("m98breload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98breload2"))); public static final RegistryObject<SoundEvent> M98BRELOAD2 = REGISTRY.register("m98breload2", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m98breload2")));
public static final RegistryObject<SoundEvent> BULLETSUPPLY = REGISTRY.register("bulletsupply", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bulletsupply"))); public static final RegistryObject<SoundEvent> BULLETSUPPLY = REGISTRY.register("bulletsupply", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "bulletsupply")));
public static final RegistryObject<SoundEvent> M4FIRE_3P = REGISTRY.register("m4fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4fire_3p"))); public static final RegistryObject<SoundEvent> M4FIRE_3P = REGISTRY.register("m4fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4fire_3p")));
public static final RegistryObject<SoundEvent> M4FAR = REGISTRY.register("m4far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4far"))); public static final RegistryObject<SoundEvent> M4FAR = REGISTRY.register("m4far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4far")));
public static final RegistryObject<SoundEvent> M4VERYFAR = REGISTRY.register("m4veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4veryfar"))); public static final RegistryObject<SoundEvent> M4VERYFAR = REGISTRY.register("m4veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m4veryfar")));
public static final RegistryObject<SoundEvent> DEVOTION_FIRE_1P = REGISTRY.register("devotion_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_fire_1p"))); public static final RegistryObject<SoundEvent> DEVOTION_FIRE_1P = REGISTRY.register("devotion_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "devotion_fire_1p")));
public static final RegistryObject<SoundEvent> AKFAR = REGISTRY.register("akfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akfar"))); public static final RegistryObject<SoundEvent> AKFAR = REGISTRY.register("akfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akfar")));
public static final RegistryObject<SoundEvent> AKVERYFAR = REGISTRY.register("akveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akveryfar"))); public static final RegistryObject<SoundEvent> AKVERYFAR = REGISTRY.register("akveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "akveryfar")));
public static final RegistryObject<SoundEvent> AK47_FIRE_1P = REGISTRY.register("ak47_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47_fire_1p"))); public static final RegistryObject<SoundEvent> AK47_FIRE_1P = REGISTRY.register("ak47_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak47_fire_1p")));
public static final RegistryObject<SoundEvent> AK_FIRE_1P = REGISTRY.register("ak_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak_fire_1p"))); public static final RegistryObject<SoundEvent> AK_FIRE_1P = REGISTRY.register("ak_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "ak_fire_1p")));
public static final RegistryObject<SoundEvent> RPK_FIRE1P = REGISTRY.register("rpk_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpk_fire1p"))); public static final RegistryObject<SoundEvent> RPK_FIRE1P = REGISTRY.register("rpk_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "rpk_fire1p")));
public static final RegistryObject<SoundEvent> SKSFAR = REGISTRY.register("sksfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sksfar"))); public static final RegistryObject<SoundEvent> SKSFAR = REGISTRY.register("sksfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sksfar")));
public static final RegistryObject<SoundEvent> SKSVERYFAR = REGISTRY.register("sksveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sksveryfar"))); public static final RegistryObject<SoundEvent> SKSVERYFAR = REGISTRY.register("sksveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sksveryfar")));
public static final RegistryObject<SoundEvent> KRABERFAR = REGISTRY.register("kraberfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberfar"))); public static final RegistryObject<SoundEvent> KRABERFAR = REGISTRY.register("kraberfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberfar")));
public static final RegistryObject<SoundEvent> KRABERVERYFAR = REGISTRY.register("kraberveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberveryfar"))); public static final RegistryObject<SoundEvent> KRABERVERYFAR = REGISTRY.register("kraberveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraberveryfar")));
public static final RegistryObject<SoundEvent> SVDFAR = REGISTRY.register("svdfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdfar"))); public static final RegistryObject<SoundEvent> SVDFAR = REGISTRY.register("svdfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdfar")));
public static final RegistryObject<SoundEvent> SVDVERYFAR = REGISTRY.register("svdveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdveryfar"))); public static final RegistryObject<SoundEvent> SVDVERYFAR = REGISTRY.register("svdveryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "svdveryfar")));
public static final RegistryObject<SoundEvent> HK416_FIRE1P = REGISTRY.register("hk416_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416_fire1p"))); public static final RegistryObject<SoundEvent> HK416_FIRE1P = REGISTRY.register("hk416_fire1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk416_fire1p")));
public static final RegistryObject<SoundEvent> HK_FAR = REGISTRY.register("hk_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk_far"))); public static final RegistryObject<SoundEvent> HK_FAR = REGISTRY.register("hk_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk_far")));
public static final RegistryObject<SoundEvent> HK_VERY_FAR = REGISTRY.register("hk_very_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk_very_far"))); public static final RegistryObject<SoundEvent> HK_VERY_FAR = REGISTRY.register("hk_very_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "hk_very_far")));
public static final RegistryObject<SoundEvent> AA12_FIRE_1P = REGISTRY.register("aa12_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12_fire_1p"))); public static final RegistryObject<SoundEvent> AA12_FIRE_1P = REGISTRY.register("aa12_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12_fire_1p")));
public static final RegistryObject<SoundEvent> AA12_FAR = REGISTRY.register("aa12_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12_far"))); public static final RegistryObject<SoundEvent> AA12_FAR = REGISTRY.register("aa12_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12_far")));
public static final RegistryObject<SoundEvent> AA12_VERY_FAR = REGISTRY.register("aa12_very_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12_very_far"))); public static final RegistryObject<SoundEvent> AA12_VERY_FAR = REGISTRY.register("aa12_very_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "aa12_very_far")));
} }

View file

@ -4,128 +4,126 @@
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.network.chat.Component;
import net.minecraft.core.registries.Registries;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class TargetModTabs { public class TargetModTabs {
public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TargetMod.MODID); public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TargetMod.MODID);
public static final RegistryObject<CreativeModeTab> TARGET_ITEM = REGISTRY.register("target_item", public static final RegistryObject<CreativeModeTab> TARGET_ITEM = REGISTRY.register("target_item",
() -> CreativeModeTab.builder().title(Component.translatable("item_group.target.target_item")).icon(() -> new ItemStack(TargetModItems.TARGETDEPLOYER.get())).displayItems((parameters, tabData) -> { () -> CreativeModeTab.builder().title(Component.translatable("item_group.target.target_item")).icon(() -> new ItemStack(TargetModItems.TARGETDEPLOYER.get())).displayItems((parameters, tabData) -> {
tabData.accept(TargetModItems.TARGETDEPLOYER.get()); tabData.accept(TargetModItems.TARGETDEPLOYER.get());
tabData.accept(TargetModBlocks.SANDBAG.get().asItem()); tabData.accept(TargetModBlocks.SANDBAG.get().asItem());
tabData.accept(TargetModBlocks.BARBED_WIRE.get().asItem()); tabData.accept(TargetModBlocks.BARBED_WIRE.get().asItem());
tabData.accept(TargetModItems.CLAYMORE_MINE.get()); tabData.accept(TargetModItems.CLAYMORE_MINE.get());
tabData.accept(TargetModBlocks.JUMPPAD_BLOCK.get().asItem()); tabData.accept(TargetModBlocks.JUMPPAD_BLOCK.get().asItem());
tabData.accept(TargetModItems.LIGHT_SABER.get()); tabData.accept(TargetModItems.LIGHT_SABER.get());
tabData.accept(TargetModItems.HAMMER.get()); tabData.accept(TargetModItems.HAMMER.get());
tabData.accept(TargetModItems.MORTAR_DEPOLYER.get()); tabData.accept(TargetModItems.MORTAR_DEPOLYER.get());
tabData.accept(TargetModItems.MORTARBARREL.get()); tabData.accept(TargetModItems.MORTARBARREL.get());
tabData.accept(TargetModItems.MORATR_BASE_PLATE.get()); tabData.accept(TargetModItems.MORATR_BASE_PLATE.get());
tabData.accept(TargetModItems.MORTARBIPOD.get()); tabData.accept(TargetModItems.MORTARBIPOD.get());
tabData.accept(TargetModItems.FUSEE.get()); tabData.accept(TargetModItems.FUSEE.get());
tabData.accept(TargetModItems.SOULSTEELNUGGET.get()); tabData.accept(TargetModItems.SOULSTEELNUGGET.get());
tabData.accept(TargetModItems.COPPERPLATE.get()); tabData.accept(TargetModItems.COPPERPLATE.get());
tabData.accept(TargetModItems.INGOT_STEEL.get()); tabData.accept(TargetModItems.INGOT_STEEL.get());
tabData.accept(TargetModItems.LEAD_INGOT.get()); tabData.accept(TargetModItems.LEAD_INGOT.get());
tabData.accept(TargetModItems.TUNGSTEN_INGOT.get()); tabData.accept(TargetModItems.TUNGSTEN_INGOT.get());
tabData.accept(TargetModItems.CEMENTED_CARBIDE_INGOT.get()); tabData.accept(TargetModItems.CEMENTED_CARBIDE_INGOT.get());
tabData.accept(TargetModItems.SOULSTEEL_INGOT.get()); tabData.accept(TargetModItems.SOULSTEEL_INGOT.get());
tabData.accept(TargetModItems.IRON_POWDER.get()); tabData.accept(TargetModItems.IRON_POWDER.get());
tabData.accept(TargetModItems.TUNGSTEN_POWDER.get()); tabData.accept(TargetModItems.TUNGSTEN_POWDER.get());
tabData.accept(TargetModItems.COAL_POWDER.get()); tabData.accept(TargetModItems.COAL_POWDER.get());
tabData.accept(TargetModItems.COAL_IRON_POWDER.get()); tabData.accept(TargetModItems.COAL_IRON_POWDER.get());
tabData.accept(TargetModItems.UNBLASTEDCEMENTEDCARBIDEPODWER.get()); tabData.accept(TargetModItems.UNBLASTEDCEMENTEDCARBIDEPODWER.get());
tabData.accept(TargetModBlocks.GALENA_ORE.get().asItem()); tabData.accept(TargetModBlocks.GALENA_ORE.get().asItem());
tabData.accept(TargetModBlocks.DEEPSLATE_GALENA_ORE.get().asItem()); tabData.accept(TargetModBlocks.DEEPSLATE_GALENA_ORE.get().asItem());
tabData.accept(TargetModBlocks.SCHEELITE_ORE.get().asItem()); tabData.accept(TargetModBlocks.SCHEELITE_ORE.get().asItem());
tabData.accept(TargetModBlocks.DEEPSLATE_SCHEELITE_ORE.get().asItem()); tabData.accept(TargetModBlocks.DEEPSLATE_SCHEELITE_ORE.get().asItem());
tabData.accept(TargetModItems.GALENA.get()); tabData.accept(TargetModItems.GALENA.get());
tabData.accept(TargetModItems.SCHEELITE.get()); tabData.accept(TargetModItems.SCHEELITE.get());
tabData.accept(TargetModItems.BUCKSHOT.get()); tabData.accept(TargetModItems.BUCKSHOT.get());
tabData.accept(TargetModItems.IRON_BARREL.get()); tabData.accept(TargetModItems.IRON_BARREL.get());
tabData.accept(TargetModItems.IRON_ACTION.get()); tabData.accept(TargetModItems.IRON_ACTION.get());
tabData.accept(TargetModItems.IRON_TRIGGER.get()); tabData.accept(TargetModItems.IRON_TRIGGER.get());
tabData.accept(TargetModItems.IRON_SPRING.get()); tabData.accept(TargetModItems.IRON_SPRING.get());
tabData.accept(TargetModItems.STEEL_BARREL.get()); tabData.accept(TargetModItems.STEEL_BARREL.get());
tabData.accept(TargetModItems.STEEL_ACTION.get()); tabData.accept(TargetModItems.STEEL_ACTION.get());
tabData.accept(TargetModItems.STEEL_TRIGGER.get()); tabData.accept(TargetModItems.STEEL_TRIGGER.get());
tabData.accept(TargetModItems.STEEL_SPRING.get()); tabData.accept(TargetModItems.STEEL_SPRING.get());
tabData.accept(TargetModItems.CEMENTED_CARBIDE_BARREL.get()); tabData.accept(TargetModItems.CEMENTED_CARBIDE_BARREL.get());
tabData.accept(TargetModItems.CEMENTED_CARBIDE_ACTION.get()); tabData.accept(TargetModItems.CEMENTED_CARBIDE_ACTION.get());
tabData.accept(TargetModItems.CEMENTEDCARBIDE_TRIGGER.get()); tabData.accept(TargetModItems.CEMENTEDCARBIDE_TRIGGER.get());
tabData.accept(TargetModItems.CEMENTEDCARBIDESPRING.get()); tabData.accept(TargetModItems.CEMENTEDCARBIDESPRING.get());
tabData.accept(TargetModItems.NETHERITE_BARREL.get()); tabData.accept(TargetModItems.NETHERITE_BARREL.get());
tabData.accept(TargetModItems.NETHERITE_ACTION.get()); tabData.accept(TargetModItems.NETHERITE_ACTION.get());
tabData.accept(TargetModItems.NETHERITE_TRIGGER.get()); tabData.accept(TargetModItems.NETHERITE_TRIGGER.get());
tabData.accept(TargetModItems.NETHERITE_SPRING.get()); tabData.accept(TargetModItems.NETHERITE_SPRING.get());
tabData.accept(TargetModItems.COMMONMATERIALPACK.get()); tabData.accept(TargetModItems.COMMONMATERIALPACK.get());
tabData.accept(TargetModItems.RAREMATERIALPACK.get()); tabData.accept(TargetModItems.RAREMATERIALPACK.get());
tabData.accept(TargetModItems.EPICMATERIALPACK.get()); tabData.accept(TargetModItems.EPICMATERIALPACK.get());
tabData.accept(TargetModItems.LEGENDARYMATERIALPACK.get()); tabData.accept(TargetModItems.LEGENDARYMATERIALPACK.get());
tabData.accept(TargetModItems.SPECIALMATERIALPACK.get()); tabData.accept(TargetModItems.SPECIALMATERIALPACK.get());
tabData.accept(TargetModItems.TRACHELIUM_BLUEPRINT.get()); tabData.accept(TargetModItems.TRACHELIUM_BLUEPRINT.get());
tabData.accept(TargetModItems.HUNTING_RIFLE_BLUEPRINT.get()); tabData.accept(TargetModItems.HUNTING_RIFLE_BLUEPRINT.get());
tabData.accept(TargetModItems.M_79_BLUEPRINT.get()); tabData.accept(TargetModItems.M_79_BLUEPRINT.get());
tabData.accept(TargetModItems.RPG_BLUEPRINT.get()); tabData.accept(TargetModItems.RPG_BLUEPRINT.get());
tabData.accept(TargetModItems.BOCEK_BLUEPRINT.get()); tabData.accept(TargetModItems.BOCEK_BLUEPRINT.get());
tabData.accept(TargetModItems.M_4_BLUEPRINT.get()); tabData.accept(TargetModItems.M_4_BLUEPRINT.get());
tabData.accept(TargetModItems.AA_12_BLUEPRINT.get()); tabData.accept(TargetModItems.AA_12_BLUEPRINT.get());
tabData.accept(TargetModItems.HK_416_BLUEPRINT.get()); tabData.accept(TargetModItems.HK_416_BLUEPRINT.get());
tabData.accept(TargetModItems.RPK_BLUEPRINT.get()); tabData.accept(TargetModItems.RPK_BLUEPRINT.get());
tabData.accept(TargetModItems.SKS_BLUEPRINT.get()); tabData.accept(TargetModItems.SKS_BLUEPRINT.get());
tabData.accept(TargetModItems.KRABER_BLUEPRINT.get()); tabData.accept(TargetModItems.KRABER_BLUEPRINT.get());
tabData.accept(TargetModItems.VECTOR_BLUEPRINT.get()); tabData.accept(TargetModItems.VECTOR_BLUEPRINT.get());
tabData.accept(TargetModItems.MINIGUN_BLUEPRINT.get()); tabData.accept(TargetModItems.MINIGUN_BLUEPRINT.get());
tabData.accept(TargetModItems.MK_14_BLUEPRINT.get()); tabData.accept(TargetModItems.MK_14_BLUEPRINT.get());
tabData.accept(TargetModItems.SENTINEL_BLUEPRINT.get()); tabData.accept(TargetModItems.SENTINEL_BLUEPRINT.get());
tabData.accept(TargetModItems.M_60_BLUEPRINT.get()); tabData.accept(TargetModItems.M_60_BLUEPRINT.get());
tabData.accept(TargetModItems.SVD_BLUEPRINT.get()); tabData.accept(TargetModItems.SVD_BLUEPRINT.get());
tabData.accept(TargetModItems.MARLIN_BLUEPRINT.get()); tabData.accept(TargetModItems.MARLIN_BLUEPRINT.get());
tabData.accept(TargetModItems.M_870_BLUEPRINT.get()); tabData.accept(TargetModItems.M_870_BLUEPRINT.get());
tabData.accept(TargetModItems.M_98B_BLUEPRINT.get()); tabData.accept(TargetModItems.M_98B_BLUEPRINT.get());
tabData.accept(TargetModItems.AK_47_BLUEPRINT.get()); tabData.accept(TargetModItems.AK_47_BLUEPRINT.get());
tabData.accept(TargetModItems.DEVOTION_BLUPRINT.get()); tabData.accept(TargetModItems.DEVOTION_BLUPRINT.get());
tabData.accept(TargetModItems.TASER_BLUEPRINT.get()); tabData.accept(TargetModItems.TASER_BLUEPRINT.get());
tabData.accept(TargetModBlocks.GUN_RECYCLE.get().asItem()); tabData.accept(TargetModBlocks.GUN_RECYCLE.get().asItem());
}) })
.build()); .build());
public static final RegistryObject<CreativeModeTab> AMMO = REGISTRY.register("ammo", public static final RegistryObject<CreativeModeTab> AMMO = REGISTRY.register("ammo",
() -> CreativeModeTab.builder().title(Component.translatable("item_group.target.ammo")).icon(() -> new ItemStack(TargetModItems.SHOTGUN_AMMO_BOX.get())).displayItems((parameters, tabData) -> { () -> CreativeModeTab.builder().title(Component.translatable("item_group.target.ammo")).icon(() -> new ItemStack(TargetModItems.SHOTGUN_AMMO_BOX.get())).displayItems((parameters, tabData) -> {
tabData.accept(TargetModItems.HANDGUN_AMMO.get()); tabData.accept(TargetModItems.HANDGUN_AMMO.get());
tabData.accept(TargetModItems.RIFLE_AMMO.get()); tabData.accept(TargetModItems.RIFLE_AMMO.get());
tabData.accept(TargetModItems.SNIPER_AMMO.get()); tabData.accept(TargetModItems.SNIPER_AMMO.get());
tabData.accept(TargetModItems.SHOTGUN_AMMO.get()); tabData.accept(TargetModItems.SHOTGUN_AMMO.get());
tabData.accept(TargetModItems.HANDGUN_AMMO_BOX.get()); tabData.accept(TargetModItems.HANDGUN_AMMO_BOX.get());
tabData.accept(TargetModItems.RIFLE_AMMO_BOX.get()); tabData.accept(TargetModItems.RIFLE_AMMO_BOX.get());
tabData.accept(TargetModItems.SNIPER_AMMO_BOX.get()); tabData.accept(TargetModItems.SNIPER_AMMO_BOX.get());
tabData.accept(TargetModItems.SHOTGUN_AMMO_BOX.get()); tabData.accept(TargetModItems.SHOTGUN_AMMO_BOX.get());
tabData.accept(TargetModItems.CREATIVE_AMMO_BOX.get()); tabData.accept(TargetModItems.CREATIVE_AMMO_BOX.get());
tabData.accept(TargetModItems.TASER_ELECTRODE.get()); tabData.accept(TargetModItems.TASER_ELECTRODE.get());
tabData.accept(TargetModItems.GRENADE_40MM.get()); tabData.accept(TargetModItems.GRENADE_40MM.get());
tabData.accept(TargetModItems.MORTAR_SHELLS.get()); tabData.accept(TargetModItems.MORTAR_SHELLS.get());
tabData.accept(TargetModItems.ROCKET.get()); tabData.accept(TargetModItems.ROCKET.get());
}) })
.build()); .build());
@SubscribeEvent @SubscribeEvent
public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) { public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) {
if (tabData.getTabKey() == CreativeModeTabs.SPAWN_EGGS) { if (tabData.getTabKey() == CreativeModeTabs.SPAWN_EGGS) {
tabData.accept(TargetModItems.SENPAI_SPAWN_EGG.get()); tabData.accept(TargetModItems.SENPAI_SPAWN_EGG.get());
} }
} }
} }

View file

@ -1,95 +1,94 @@
/* /*
* MCreator note: This file will be REGENERATED on each build. * MCreator note: This file will be REGENERATED on each build.
*/ */
package net.mcreator.target.init; package net.mcreator.target.init;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.village.VillagerTradesEvent;
import net.minecraftforge.common.BasicItemListing;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.npc.VillagerProfession; import net.minecraft.world.entity.npc.VillagerProfession;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraftforge.common.BasicItemListing;
import net.minecraftforge.event.village.VillagerTradesEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE)
public class TargetModTrades { public class TargetModTrades {
@SubscribeEvent @SubscribeEvent
public static void registerTrades(VillagerTradesEvent event) { public static void registerTrades(VillagerTradesEvent event) {
if (event.getType() == VillagerProfession.WEAPONSMITH) { if (event.getType() == VillagerProfession.WEAPONSMITH) {
event.getTrades().get(1).add(new BasicItemListing(new ItemStack(TargetModItems.TASER_BLUEPRINT.get()), event.getTrades().get(1).add(new BasicItemListing(new ItemStack(TargetModItems.TASER_BLUEPRINT.get()),
new ItemStack(Items.EMERALD), 16, 5, 0.05f)); new ItemStack(Items.EMERALD), 16, 5, 0.05f));
event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 10), event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 10),
new ItemStack(TargetModItems.STEEL_ACTION.get()), 12, 5, 0.05f)); new ItemStack(TargetModItems.STEEL_ACTION.get()), 12, 5, 0.05f));
event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32), event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
new ItemStack(TargetModItems.M_4_BLUEPRINT.get()), 10, 50, 0.05f)); new ItemStack(TargetModItems.M_4_BLUEPRINT.get()), 10, 50, 0.05f));
event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32), event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
new ItemStack(TargetModItems.M_79_BLUEPRINT.get()), 10, 50, 0.05f)); new ItemStack(TargetModItems.M_79_BLUEPRINT.get()), 10, 50, 0.05f));
event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32), event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
new ItemStack(TargetModItems.MARLIN_BLUEPRINT.get()), 10, 50, 0.05f)); new ItemStack(TargetModItems.MARLIN_BLUEPRINT.get()), 10, 50, 0.05f));
event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32), event.getTrades().get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
new ItemStack(TargetModItems.AK_47_BLUEPRINT.get()), 10, 50, 0.05f)); new ItemStack(TargetModItems.AK_47_BLUEPRINT.get()), 10, 50, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.HUNTING_RIFLE_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.HUNTING_RIFLE_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.RPG_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.RPG_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.HK_416_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.HK_416_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.RPK_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.RPK_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.VECTOR_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.VECTOR_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.MK_14_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.MK_14_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.M_60_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.M_60_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.SVD_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.SVD_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.M_870_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.M_870_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
new ItemStack(TargetModItems.M_98B_BLUEPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.M_98B_BLUEPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD), event.getTrades().get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD),
new ItemStack(TargetModItems.DEVOTION_BLUPRINT.get()), 10, 80, 0.05f)); new ItemStack(TargetModItems.DEVOTION_BLUPRINT.get()), 10, 80, 0.05f));
event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8), event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8),
new ItemStack(TargetModItems.STEEL_BARREL.get()), 12, 5, 0.05f)); new ItemStack(TargetModItems.STEEL_BARREL.get()), 12, 5, 0.05f));
event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 6), event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 6),
new ItemStack(TargetModItems.STEEL_TRIGGER.get()), 12, 5, 0.05f)); new ItemStack(TargetModItems.STEEL_TRIGGER.get()), 12, 5, 0.05f));
event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8), event.getTrades().get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8),
new ItemStack(TargetModItems.STEEL_SPRING.get()), 12, 5, 0.05f)); new ItemStack(TargetModItems.STEEL_SPRING.get()), 12, 5, 0.05f));
event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16), event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
new ItemStack(TargetModItems.CEMENTED_CARBIDE_BARREL.get()), 12, 10, 0.05f)); new ItemStack(TargetModItems.CEMENTED_CARBIDE_BARREL.get()), 12, 10, 0.05f));
event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 20), event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 20),
new ItemStack(TargetModItems.CEMENTED_CARBIDE_ACTION.get()), 10, 10, 0.05f)); new ItemStack(TargetModItems.CEMENTED_CARBIDE_ACTION.get()), 10, 10, 0.05f));
event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16), event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
new ItemStack(TargetModItems.CEMENTEDCARBIDESPRING.get()), 10, 10, 0.05f)); new ItemStack(TargetModItems.CEMENTEDCARBIDESPRING.get()), 10, 10, 0.05f));
event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 12), event.getTrades().get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 12),
new ItemStack(TargetModItems.CEMENTEDCARBIDE_TRIGGER.get()), 10, 10, 0.05f)); new ItemStack(TargetModItems.CEMENTEDCARBIDE_TRIGGER.get()), 10, 10, 0.05f));
} }
} }
} }

View file

@ -1,22 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class AK47BlueprintItem extends Item { public class AK47BlueprintItem extends Item {
public AK47BlueprintItem() { public AK47BlueprintItem() {
super(new Item.Properties().stacksTo(64).rarity(Rarity.RARE)); super(new Item.Properties().stacksTo(64).rarity(Rarity.RARE));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,154 +1,141 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoItem;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.Item;
import net.minecraft.world.entity.Entity;
import net.minecraft.network.chat.Component;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.world.entity.HumanoidArm;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.Minecraft;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.item.renderer.AK47ItemRenderer;
import net.mcreator.target.procedures.AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.*;
import com.google.common.collect.ImmutableMultimap; import net.minecraft.world.level.Level;
import java.util.UUID; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import net.mcreator.target.procedures.AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.mcreator.target.item.renderer.AK47ItemRenderer;
import java.util.function.Consumer;
import java.util.List; import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
public class AK47Item extends Item implements GeoItem { public class AK47Item extends Item implements GeoItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public AK47Item() { public AK47Item() {
super(new Item.Properties().stacksTo(1).rarity(Rarity.RARE)); super(new Item.Properties().stacksTo(1).rarity(Rarity.RARE));
} }
@Override @Override
public void initializeClient(Consumer<IClientItemExtensions> consumer) { public void initializeClient(Consumer<IClientItemExtensions> consumer) {
super.initializeClient(consumer); super.initializeClient(consumer);
consumer.accept(new IClientItemExtensions() { consumer.accept(new IClientItemExtensions() {
private final BlockEntityWithoutLevelRenderer renderer = new AK47ItemRenderer(); private final BlockEntityWithoutLevelRenderer renderer = new AK47ItemRenderer();
@Override @Override
public BlockEntityWithoutLevelRenderer getCustomRenderer() { public BlockEntityWithoutLevelRenderer getCustomRenderer() {
return renderer; return renderer;
} }
@Override @Override
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) { public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) {
return HumanoidModel.ArmPose.BOW_AND_ARROW; return HumanoidModel.ArmPose.BOW_AND_ARROW;
} }
}); });
} }
public void getTransformType(ItemDisplayContext type) { public void getTransformType(ItemDisplayContext type) {
this.transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState event) { private PlayState idlePredicate(AnimationState event) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
if (stack.getOrCreateTag().getDouble("drawtime") < 16){ if (stack.getOrCreateTag().getDouble("drawtime") < 16) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.draw")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.draw"));
} }
if (stack.getOrCreateTag().getDouble("fireanim") > 0){ if (stack.getOrCreateTag().getDouble("fireanim") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.fire")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.fire"));
} }
if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1){ if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload"));
} }
if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 0){ if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload2")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload2"));
} }
if (stack.getOrCreateTag().getDouble("firemode") == 0 && stack.getOrCreateTag().getDouble("cg") > 0){ if (stack.getOrCreateTag().getDouble("firemode") == 0 && stack.getOrCreateTag().getDouble("cg") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.changefirerate2")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.changefirerate2"));
} }
if (stack.getOrCreateTag().getDouble("firemode") == 2 && stack.getOrCreateTag().getDouble("cg") > 0){ if (stack.getOrCreateTag().getDouble("firemode") == 2 && stack.getOrCreateTag().getDouble("cg") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.changefirerate")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.changefirerate"));
} }
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("unspringtable") == 0) { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("unspringtable") == 0) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.run")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.run"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (this.transformType != null ? this.transformType.firstPerson() : false) { if (transformType != null && transformType.firstPerson()) {
if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (this.animationprocedure.equals("empty")) { } else if (this.animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate); AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate);
data.add(procedureController); data.add(procedureController);
AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate); AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate);
data.add(idleController); data.add(idleController);
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { public boolean onEntitySwing(ItemStack stack, LivingEntity entity) {
return true; return true;
} }
@ -162,7 +149,7 @@ public class AK47Item extends Item implements GeoItem {
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) { public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack); Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack);
UUID uuid = new UUID(slot.toString().hashCode(), 0); UUID uuid = new UUID(slot.toString().hashCode(), 0);
if (slot == EquipmentSlot.MAINHAND) { if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map); map = HashMultimap.create(map);
map.put(Attributes.MOVEMENT_SPEED, map.put(Attributes.MOVEMENT_SPEED,
new AttributeModifier(uuid, "henghengaaa", -0.04f, AttributeModifier.Operation.MULTIPLY_BASE)); new AttributeModifier(uuid, "henghengaaa", -0.04f, AttributeModifier.Operation.MULTIPLY_BASE));
@ -170,9 +157,9 @@ public class AK47Item extends Item implements GeoItem {
return map; return map;
} }
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected); super.inventoryTick(itemstack, world, entity, slot, selected);
AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack); AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack);
} }
} }

View file

@ -1,24 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component;
import net.mcreator.target.rarity.RarityTool; import net.mcreator.target.rarity.RarityTool;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class Aa12BlueprintItem extends Item { public class Aa12BlueprintItem extends Item {
public Aa12BlueprintItem() { public Aa12BlueprintItem() {
super(new Item.Properties().stacksTo(64).rarity(RarityTool.LEGENDARY)); super(new Item.Properties().stacksTo(64).rarity(RarityTool.LEGENDARY));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,151 +1,140 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoItem;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.Item;
import net.minecraft.world.entity.Entity;
import net.minecraft.network.chat.Component;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.world.entity.HumanoidArm;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.Minecraft;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.item.renderer.Aa12ItemRenderer;
import net.mcreator.target.procedures.Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.mcreator.target.rarity.RarityTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.Item;
import com.google.common.collect.ImmutableMultimap; import net.minecraft.world.item.ItemDisplayContext;
import java.util.UUID; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import net.mcreator.target.rarity.RarityTool;
import net.mcreator.target.procedures.Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.mcreator.target.item.renderer.Aa12ItemRenderer;
import java.util.function.Consumer;
import java.util.List; import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
public class Aa12Item extends Item implements GeoItem { public class Aa12Item extends Item implements GeoItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public Aa12Item() { public Aa12Item() {
super(new Item.Properties().stacksTo(1).rarity(RarityTool.LEGENDARY)); super(new Item.Properties().stacksTo(1).rarity(RarityTool.LEGENDARY));
} }
@Override @Override
public void initializeClient(Consumer<IClientItemExtensions> consumer) { public void initializeClient(Consumer<IClientItemExtensions> consumer) {
super.initializeClient(consumer); super.initializeClient(consumer);
consumer.accept(new IClientItemExtensions() { consumer.accept(new IClientItemExtensions() {
private final BlockEntityWithoutLevelRenderer renderer = new Aa12ItemRenderer(); private final BlockEntityWithoutLevelRenderer renderer = new Aa12ItemRenderer();
@Override @Override
public BlockEntityWithoutLevelRenderer getCustomRenderer() { public BlockEntityWithoutLevelRenderer getCustomRenderer() {
return renderer; return renderer;
} }
@Override @Override
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) { public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) {
return HumanoidModel.ArmPose.BOW_AND_ARROW; return HumanoidModel.ArmPose.BOW_AND_ARROW;
} }
}); });
} }
public void getTransformType(ItemDisplayContext type) { public void getTransformType(ItemDisplayContext type) {
this.transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState event) { private PlayState idlePredicate(AnimationState event) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
if (stack.getOrCreateTag().getDouble("drawtime") < 16){ if (stack.getOrCreateTag().getDouble("drawtime") < 16) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aa12.draw")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aa12.draw"));
} }
if (stack.getOrCreateTag().getDouble("fireanim") > 0){ if (stack.getOrCreateTag().getDouble("fireanim") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.fire")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.fire"));
} }
if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1){ if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reloadempty")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reloadempty"));
} }
if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 0){ if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload"));
} }
if (stack.getOrCreateTag().getDouble("firemode") == 0 && stack.getOrCreateTag().getDouble("cg") > 0){ if (stack.getOrCreateTag().getDouble("firemode") == 0 && stack.getOrCreateTag().getDouble("cg") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.changefirerate2")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.changefirerate2"));
} }
if (stack.getOrCreateTag().getDouble("firemode") == 2 && stack.getOrCreateTag().getDouble("cg") > 0){ if (stack.getOrCreateTag().getDouble("firemode") == 2 && stack.getOrCreateTag().getDouble("cg") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.changefirerate")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.changefirerate"));
} }
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("unspringtable") == 0) { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("unspringtable") == 0) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aa12.run")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aa12.run"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aa12.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aa12.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (this.transformType != null ? this.transformType.firstPerson() : false) { if (transformType != null && transformType.firstPerson()) {
if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (this.animationprocedure.equals("empty")) { } else if (this.animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate); AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate);
data.add(procedureController); data.add(procedureController);
AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate); AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate);
data.add(idleController); data.add(idleController);
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
@Override @Override
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { public boolean onEntitySwing(ItemStack stack, LivingEntity entity) {
return true; return true;
} }
@ -159,7 +148,7 @@ public class Aa12Item extends Item implements GeoItem {
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) { public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack); Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack);
UUID uuid = new UUID(slot.toString().hashCode(), 0); UUID uuid = new UUID(slot.toString().hashCode(), 0);
if (slot == EquipmentSlot.MAINHAND) { if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map); map = HashMultimap.create(map);
map.put(Attributes.MOVEMENT_SPEED, map.put(Attributes.MOVEMENT_SPEED,
new AttributeModifier(uuid, "henghengaaa", -0.06f, AttributeModifier.Operation.MULTIPLY_BASE)); new AttributeModifier(uuid, "henghengaaa", -0.06f, AttributeModifier.Operation.MULTIPLY_BASE));
@ -167,14 +156,14 @@ public class Aa12Item extends Item implements GeoItem {
return map; return map;
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected); super.inventoryTick(itemstack, world, entity, slot, selected);
Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack); Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack);
} }
} }

View file

@ -1,142 +1,126 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoItem;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.Item;
import net.minecraft.world.entity.Entity;
import net.minecraft.network.chat.Component;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.world.entity.HumanoidArm;
import net.mcreator.target.tools.ItemNBTTool;
import net.mcreator.target.rarity.RarityTool;
import net.mcreator.target.procedures.AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.mcreator.target.item.renderer.AbekiriItemRenderer;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.Minecraft;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.item.renderer.AbekiriItemRenderer;
import net.mcreator.target.procedures.AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.*;
import com.google.common.collect.ImmutableMultimap; import net.minecraft.world.level.Level;
import java.util.UUID; import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.function.Consumer;
import java.util.List; import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
public class AbekiriItem extends Item implements GeoItem { public class AbekiriItem extends Item implements GeoItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public AbekiriItem() { public AbekiriItem() {
super(new Item.Properties().durability(24).rarity(Rarity.COMMON)); super(new Item.Properties().durability(24).rarity(Rarity.COMMON));
} }
@Override @Override
public void initializeClient(Consumer<IClientItemExtensions> consumer) { public void initializeClient(Consumer<IClientItemExtensions> consumer) {
super.initializeClient(consumer); super.initializeClient(consumer);
consumer.accept(new IClientItemExtensions() { consumer.accept(new IClientItemExtensions() {
private final BlockEntityWithoutLevelRenderer renderer = new AbekiriItemRenderer(); private final BlockEntityWithoutLevelRenderer renderer = new AbekiriItemRenderer();
@Override @Override
public BlockEntityWithoutLevelRenderer getCustomRenderer() { public BlockEntityWithoutLevelRenderer getCustomRenderer() {
return renderer; return renderer;
} }
@Override @Override
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) { public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) {
return HumanoidModel.ArmPose.BOW_AND_ARROW; return HumanoidModel.ArmPose.BOW_AND_ARROW;
} }
}); });
} }
public void getTransformType(ItemDisplayContext type) { public void getTransformType(ItemDisplayContext type) {
this.transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState event) { private PlayState idlePredicate(AnimationState event) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
if (stack.getOrCreateTag().getDouble("drawtime") < 11){ if (stack.getOrCreateTag().getDouble("drawtime") < 11) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ab.draw")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ab.draw"));
} }
if (stack.getOrCreateTag().getDouble("fireanim") > 0){ if (stack.getOrCreateTag().getDouble("fireanim") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.fire")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.fire"));
} }
if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1){ if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.reload2")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.reload2"));
} }
if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 0){ if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.reload")); return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ab.reload"));
} }
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("unspringtable") == 0) { if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("unspringtable") == 0) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ab.run")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ab.run"));
} }
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ab.idle")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ab.idle"));
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (this.transformType != null ? true : false) { if (transformType != null) {
if (!(this.animationprocedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!(this.animationprocedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} }
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate); AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate);
data.add(procedureController); data.add(procedureController);
AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate); AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate);
data.add(idleController); data.add(idleController);
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
@Override @Override
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { public boolean onEntitySwing(ItemStack stack, LivingEntity entity) {
return true; return true;
} }
@ -150,7 +134,7 @@ public class AbekiriItem extends Item implements GeoItem {
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) { public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack); Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack);
UUID uuid = new UUID(slot.toString().hashCode(), 0); UUID uuid = new UUID(slot.toString().hashCode(), 0);
if (slot == EquipmentSlot.MAINHAND) { if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map); map = HashMultimap.create(map);
map.put(Attributes.MOVEMENT_SPEED, map.put(Attributes.MOVEMENT_SPEED,
new AttributeModifier(uuid, "henghengaaa", -0.02f, AttributeModifier.Operation.MULTIPLY_BASE)); new AttributeModifier(uuid, "henghengaaa", -0.02f, AttributeModifier.Operation.MULTIPLY_BASE));
@ -158,14 +142,14 @@ public class AbekiriItem extends Item implements GeoItem {
return map; return map;
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected); super.inventoryTick(itemstack, world, entity, slot, selected);
AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack); AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack);
} }
} }

View file

@ -1,24 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component;
import net.mcreator.target.rarity.RarityTool; import net.mcreator.target.rarity.RarityTool;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class BocekBlueprintItem extends Item { public class BocekBlueprintItem extends Item {
public BocekBlueprintItem() { public BocekBlueprintItem() {
super(new Item.Properties().stacksTo(64).rarity(RarityTool.SPECIAL)); super(new Item.Properties().stacksTo(64).rarity(RarityTool.SPECIAL));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,131 +1,111 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import software.bernie.geckolib.util.GeckoLibUtil;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animatable.GeoItem;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.Item;
import net.minecraft.world.entity.Entity;
import net.minecraft.network.chat.Component;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.world.entity.HumanoidArm;
import net.mcreator.target.tools.ItemNBTTool;
import net.mcreator.target.rarity.RarityTool;
import net.mcreator.target.init.TargetModItems;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.Minecraft;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.item.renderer.BocekItemRenderer;
import net.mcreator.target.procedures.BocekreloadProcedure;
import net.mcreator.target.rarity.RarityTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player;
import com.google.common.collect.ImmutableMultimap; import net.minecraft.world.item.*;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.core.animation.AnimatableManager;
import software.bernie.geckolib.core.animation.AnimationController;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.List;
import net.mcreator.target.procedures.BocekreloadProcedure;
import net.mcreator.target.item.renderer.BocekItemRenderer;
import net.minecraft.world.item.Items;
import java.util.function.Consumer;
import java.util.List;
public class BocekItem extends Item implements GeoItem { public class BocekItem extends Item implements GeoItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public BocekItem() { public BocekItem() {
super(new Item.Properties().stacksTo(1).rarity(RarityTool.SPECIAL)); super(new Item.Properties().stacksTo(1).rarity(RarityTool.SPECIAL));
} }
@Override @Override
public void initializeClient(Consumer<IClientItemExtensions> consumer) { public void initializeClient(Consumer<IClientItemExtensions> consumer) {
super.initializeClient(consumer); super.initializeClient(consumer);
consumer.accept(new IClientItemExtensions() { consumer.accept(new IClientItemExtensions() {
private final BlockEntityWithoutLevelRenderer renderer = new BocekItemRenderer(); private final BlockEntityWithoutLevelRenderer renderer = new BocekItemRenderer();
@Override @Override
public BlockEntityWithoutLevelRenderer getCustomRenderer() { public BlockEntityWithoutLevelRenderer getCustomRenderer() {
return renderer; return renderer;
} }
@Override @Override
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) { public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack itemStack) {
return HumanoidModel.ArmPose.BOW_AND_ARROW; return HumanoidModel.ArmPose.BOW_AND_ARROW;
} }
}); });
} }
public void getTransformType(ItemDisplayContext type) { public void getTransformType(ItemDisplayContext type) {
this.transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState event) { private PlayState idlePredicate(AnimationState event) {
if (this.transformType != null ? this.transformType.firstPerson() : false) { if (transformType != null && transformType.firstPerson()) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (stack.getOrCreateTag().getDouble("drawtime") < 16){ if (stack.getOrCreateTag().getDouble("drawtime") < 16) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.draw")); return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.draw"));
} }
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
event.getController().setAnimation(RawAnimation.begin().thenLoop("animation.bocek.idle")); event.getController().setAnimation(RawAnimation.begin().thenLoop("animation.bocek.idle"));
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
} }
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState event) {
if (this.transformType != null ? this.transformType.firstPerson() : false) { if (transformType != null && transformType.firstPerson()) {
if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
this.animationprocedure = "empty"; this.animationprocedure = "empty";
event.getController().forceAnimationReset(); event.getController().forceAnimationReset();
} }
} else if (this.animationprocedure.equals("empty")) { } else if (this.animationprocedure.equals("empty")) {
return PlayState.STOP; return PlayState.STOP;
} }
} }
return PlayState.CONTINUE; return PlayState.CONTINUE;
} }
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate); AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate);
data.add(procedureController); data.add(procedureController);
AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate); AnimationController idleController = new AnimationController(this, "idleController", 4, this::idlePredicate);
data.add(idleController); data.add(idleController);
} }
@Override @Override
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) { public boolean onEntitySwing(ItemStack stack, LivingEntity entity) {
return true; return true;
} }
@ -139,7 +119,7 @@ public class BocekItem extends Item implements GeoItem {
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) { public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack); Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack);
UUID uuid = new UUID(slot.toString().hashCode(), 0); UUID uuid = new UUID(slot.toString().hashCode(), 0);
if (slot == EquipmentSlot.MAINHAND) { if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map); map = HashMultimap.create(map);
map.put(Attributes.MOVEMENT_SPEED, map.put(Attributes.MOVEMENT_SPEED,
new AttributeModifier(uuid, "henghengaaa", -0.03f, AttributeModifier.Operation.MULTIPLY_BASE)); new AttributeModifier(uuid, "henghengaaa", -0.03f, AttributeModifier.Operation.MULTIPLY_BASE));
@ -147,26 +127,26 @@ public class BocekItem extends Item implements GeoItem {
return map; return map;
} }
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected); super.inventoryTick(itemstack, world, entity, slot, selected);
if (entity instanceof Player player) { if (entity instanceof Player player) {
itemstack.getOrCreateTag().putDouble("maxammo", getAmmoCount(player)); itemstack.getOrCreateTag().putDouble("maxammo", getAmmoCount(player));
} }
BocekreloadProcedure.execute(entity, itemstack); BocekreloadProcedure.execute(entity, itemstack);
} }
public static double getAmmoCount(Player player) { public static double getAmmoCount(Player player) {
double sum = 0.0; double sum = 0.0;
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
ItemStack itemstack = player.getInventory().getItem(i); ItemStack itemstack = player.getInventory().getItem(i);

View file

@ -1,22 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class BuckshotItem extends Item { public class BuckshotItem extends Item {
public BuckshotItem() { public BuckshotItem() {
super(new Item.Properties().stacksTo(64).rarity(Rarity.COMMON)); super(new Item.Properties().stacksTo(64).rarity(Rarity.COMMON));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,22 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class CementedCarbideActionItem extends Item { public class CementedCarbideActionItem extends Item {
public CementedCarbideActionItem() { public CementedCarbideActionItem() {
super(new Item.Properties().stacksTo(64).rarity(Rarity.EPIC)); super(new Item.Properties().stacksTo(64).rarity(Rarity.EPIC));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,22 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class CementedCarbideBarrelItem extends Item { public class CementedCarbideBarrelItem extends Item {
public CementedCarbideBarrelItem() { public CementedCarbideBarrelItem() {
super(new Item.Properties().stacksTo(64).rarity(Rarity.EPIC)); super(new Item.Properties().stacksTo(64).rarity(Rarity.EPIC));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,22 +1,21 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Item;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import java.util.List; import java.util.List;
public class CementedCarbideIngotItem extends Item { public class CementedCarbideIngotItem extends Item {
public CementedCarbideIngotItem() { public CementedCarbideIngotItem() {
super(new Item.Properties().stacksTo(64).rarity(Rarity.COMMON)); super(new Item.Properties().stacksTo(64).rarity(Rarity.COMMON));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

View file

@ -1,4 +1,3 @@
package net.mcreator.target.item; package net.mcreator.target.item;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
@ -11,12 +10,12 @@ import net.minecraft.network.chat.Component;
import java.util.List; import java.util.List;
public class CementedcarbideTriggerItem extends Item { public class CementedcarbideTriggerItem extends Item {
public CementedcarbideTriggerItem() { public CementedcarbideTriggerItem() {
super(new Item.Properties().stacksTo(64).rarity(Rarity.EPIC)); super(new Item.Properties().stacksTo(64).rarity(Rarity.EPIC));
} }
@Override @Override
public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) { public void appendHoverText(ItemStack itemstack, Level world, List<Component> list, TooltipFlag flag) {
super.appendHoverText(itemstack, world, list, flag); super.appendHoverText(itemstack, world, list, flag);
} }
} }

Some files were not shown because too many files have changed in this diff Show more