diff --git a/src/main/java/net/limit/cubliminal/Cubliminal.java b/src/main/java/net/limit/cubliminal/Cubliminal.java index b2774f2..73f1e86 100644 --- a/src/main/java/net/limit/cubliminal/Cubliminal.java +++ b/src/main/java/net/limit/cubliminal/Cubliminal.java @@ -9,9 +9,7 @@ import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; -import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; import net.limit.cubliminal.config.CubliminalConfig; -import net.limit.cubliminal.entity.custom.BacteriaEntity; import net.limit.cubliminal.event.ServerTickHandler; import net.limit.cubliminal.event.command.NoClipCommand; import net.limit.cubliminal.event.command.SanityCommand; @@ -43,7 +41,6 @@ public void onInitialize() { CubliminalSounds.init(); CubliminalEntities.init(); CubliminalEffects.init(); - FabricDefaultAttributeRegistry.register(CubliminalEntities.BACTERIA, BacteriaEntity.createBacteriaAttributes()); CubliminalBlockEntities.init(); CubliminalPackets.registerC2SPackets(); ServerTickEvents.START_SERVER_TICK.register(new ServerTickHandler()); diff --git a/src/main/java/net/limit/cubliminal/CubliminalClient.java b/src/main/java/net/limit/cubliminal/CubliminalClient.java index 658b616..b81b7e8 100644 --- a/src/main/java/net/limit/cubliminal/CubliminalClient.java +++ b/src/main/java/net/limit/cubliminal/CubliminalClient.java @@ -4,13 +4,10 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; -import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.limit.cubliminal.client.hud.NoClippingHudOverlay; import net.limit.cubliminal.client.hud.SanityBarHudOverlay; -import net.limit.cubliminal.entity.client.BacteriaModel; -import net.limit.cubliminal.entity.client.BacteriaRenderer; import net.limit.cubliminal.entity.client.SeatRenderer; import net.limit.cubliminal.event.KeyInputHandler; import net.limit.cubliminal.init.*; @@ -26,10 +23,6 @@ public void onInitializeClient() { KeyInputHandler.register(); CubliminalModelRenderers.init(); - EntityRendererRegistry - .register(CubliminalEntities.BACTERIA, BacteriaRenderer::new); - EntityModelLayerRegistry - .registerModelLayer(CubliminalModelLayers.BACTERIA, BacteriaModel::getTexturedModelData); EntityRendererRegistry .register(CubliminalEntities.SEAT_ENTITY, SeatRenderer::new); diff --git a/src/main/java/net/limit/cubliminal/block/custom/FluorescentLightBlock.java b/src/main/java/net/limit/cubliminal/block/custom/FluorescentLightBlock.java index 685f9b2..b10b5b7 100644 --- a/src/main/java/net/limit/cubliminal/block/custom/FluorescentLightBlock.java +++ b/src/main/java/net/limit/cubliminal/block/custom/FluorescentLightBlock.java @@ -35,13 +35,6 @@ public class FluorescentLightBlock extends Block { public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return VOXEL_SHAPE; } -/* - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - */ public FluorescentLightBlock(Settings settings) { super(settings); @@ -101,26 +94,10 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { return blockState.with(RED, needsToBeRed); } -/* - @Nullable - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - //return checkType(type, CubliminalBlockEntities.FLUORESCENT_LIGHT_BLOCK_ENTITY, FluorescentLightBlockEntity::tick); - return null; - } - - */ @Override protected void appendProperties(StateManager.Builder builder) { builder.add(LIT, FACING, RED); } -/* - @Nullable - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - //return new FluorescentLightBlockEntity(pos, state); - return null; - } - */ } diff --git a/src/main/java/net/limit/cubliminal/block/custom/FusedFluorescentLightBlock.java b/src/main/java/net/limit/cubliminal/block/custom/FusedFluorescentLightBlock.java index b083de1..5c9f930 100644 --- a/src/main/java/net/limit/cubliminal/block/custom/FusedFluorescentLightBlock.java +++ b/src/main/java/net/limit/cubliminal/block/custom/FusedFluorescentLightBlock.java @@ -34,13 +34,6 @@ public class FusedFluorescentLightBlock extends Block { public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return VOXEL_SHAPE; } -/* - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - */ public FusedFluorescentLightBlock(Settings settings) { super(settings); @@ -100,26 +93,10 @@ public BlockState rotate(BlockState state, BlockRotation rotation) { public BlockState mirror(BlockState state, BlockMirror mirror) { return state.rotate(mirror.getRotation(state.get(FACING))); } -/* - @Nullable - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - //return checkType(type, CubliminalBlockEntities.FUSED_FLUORESCENT_LIGHT_BLOCK_ENTITY, FusedFluorescentLightBlockEntity::tick); - return null; - } - - */ @Override protected void appendProperties(StateManager.Builder builder) { builder.add(LIT, FACING, RED); } -/* - @Nullable - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - //return new FusedFluorescentLightBlockEntity(pos, state); - return null; - } - */ } diff --git a/src/main/java/net/limit/cubliminal/block/custom/JumbledDocumentsBlock.java b/src/main/java/net/limit/cubliminal/block/custom/JumbledDocumentsBlock.java new file mode 100644 index 0000000..be068ce --- /dev/null +++ b/src/main/java/net/limit/cubliminal/block/custom/JumbledDocumentsBlock.java @@ -0,0 +1,37 @@ +package net.limit.cubliminal.block.custom; + +import com.mojang.serialization.MapCodec; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalFacingBlock; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.DirectionProperty; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.WorldView; + +public class JumbledDocumentsBlock extends HorizontalFacingBlock { + public static final MapCodec CODEC = JumbledDocumentsBlock.createCodec(JumbledDocumentsBlock::new); + public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; + protected static final VoxelShape SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 2.0, 16.0); + protected JumbledDocumentsBlock(Settings settings) { + super(settings); + this.setDefaultState(this.getDefaultState().with(FACING, Direction.NORTH)); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + } + + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + return hasTopRim(world, pos.down()); + } + + @Override + protected MapCodec getCodec() { + return CODEC; + } +} diff --git a/src/main/java/net/limit/cubliminal/block/custom/ElectricalPlugBlock.java b/src/main/java/net/limit/cubliminal/block/custom/SocketBlock.java similarity index 93% rename from src/main/java/net/limit/cubliminal/block/custom/ElectricalPlugBlock.java rename to src/main/java/net/limit/cubliminal/block/custom/SocketBlock.java index c73ef11..b54d9fc 100644 --- a/src/main/java/net/limit/cubliminal/block/custom/ElectricalPlugBlock.java +++ b/src/main/java/net/limit/cubliminal/block/custom/SocketBlock.java @@ -16,14 +16,14 @@ import net.minecraft.world.WorldView; import org.jetbrains.annotations.Nullable; -public class ElectricalPlugBlock extends HorizontalFacingBlock { - public static final MapCodec CODEC = ElectricalPlugBlock.createCodec(ElectricalPlugBlock::new); +public class SocketBlock extends HorizontalFacingBlock { + public static final MapCodec CODEC = SocketBlock.createCodec(SocketBlock::new); public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; protected static final VoxelShape WEST_SHAPE = Block.createCuboidShape(15.5, 4, 4.5, 16, 12.5, 11.5); protected static final VoxelShape EAST_SHAPE = Block.createCuboidShape(0, 4, 4.5, 0.5, 12.5, 11.5); protected static final VoxelShape SOUTH_SHAPE = Block.createCuboidShape(4.5, 4, 0, 11.5, 12.5, 0.5); protected static final VoxelShape NORTH_SHAPE = Block.createCuboidShape(4.5, 4, 15.5, 11.5, 12.5, 16); - public ElectricalPlugBlock(Settings settings) { + public SocketBlock(Settings settings) { super(settings); this.setDefaultState(this.getDefaultState().with(FACING, Direction.NORTH)); } diff --git a/src/main/java/net/limit/cubliminal/block/entity/FluorescentLightBlockEntity.java b/src/main/java/net/limit/cubliminal/block/entity/FluorescentLightBlockEntity.java deleted file mode 100644 index 61ed49d..0000000 --- a/src/main/java/net/limit/cubliminal/block/entity/FluorescentLightBlockEntity.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.limit.cubliminal.block.entity; - -import net.limit.cubliminal.init.CubliminalBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.state.property.Properties; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class FluorescentLightBlockEntity extends BlockEntity { - private long age; - //private long flickerTicks; - - public FluorescentLightBlockEntity(BlockPos pos, BlockState state) { - super(CubliminalBlockEntities.FLUORESCENT_LIGHT_BLOCK_ENTITY, pos, state); - } - - @Override - protected void writeNbt(NbtCompound nbt) { - super.writeNbt(nbt); - nbt.putLong("Age", this.age); - //nbt.putLong("FlickerTicks", this.flickerTicks); - } - - @Override - public void readNbt(NbtCompound nbt) { - super.readNbt(nbt); - this.age = nbt.getLong("Age"); - //this.flickerTicks = nbt.getLong("FlickerTicks"); - } - - public static void tick(World world, BlockPos pos, BlockState state, FluorescentLightBlockEntity blockEntity) { - if (!world.isClient) { - ++blockEntity.age; - if (blockEntity.age % 400 == 0) { - if (new Random().nextInt(4) == 0) { - //blockEntity.flickerTicks += new Random().nextLong(3, 6) * 400; - world.setBlockState(pos, state.with(Properties.LIT, false)); - world.scheduleBlockTick(pos, state.getBlock(), 2); - } - } - } - } -} diff --git a/src/main/java/net/limit/cubliminal/block/entity/FusedFluorescentLightBlockEntity.java b/src/main/java/net/limit/cubliminal/block/entity/FusedFluorescentLightBlockEntity.java deleted file mode 100644 index 595a439..0000000 --- a/src/main/java/net/limit/cubliminal/block/entity/FusedFluorescentLightBlockEntity.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.limit.cubliminal.block.entity; - -import net.limit.cubliminal.init.CubliminalBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.state.property.Properties; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Random; - -public class FusedFluorescentLightBlockEntity extends BlockEntity { - private long age; - //private long flickerTicks; - - public FusedFluorescentLightBlockEntity(BlockPos pos, BlockState state) { - super(CubliminalBlockEntities.FUSED_FLUORESCENT_LIGHT_BLOCK_ENTITY, pos, state); - } - - @Override - protected void writeNbt(NbtCompound nbt) { - super.writeNbt(nbt); - nbt.putLong("Age", this.age); - //nbt.putLong("FlickerTicks", this.flickerTicks); - } - - @Override - public void readNbt(NbtCompound nbt) { - super.readNbt(nbt); - this.age = nbt.getLong("Age"); - //this.flickerTicks = nbt.getLong("FlickerTicks"); - } - - public static void tick(World world, BlockPos pos, BlockState state, FusedFluorescentLightBlockEntity blockEntity) { - if (!world.isClient) { - ++blockEntity.age; - if (blockEntity.age % 400 == 0) { - if (new Random().nextInt(4) == 0) { - //blockEntity.flickerTicks += new Random().nextLong(3, 6) * 400; - world.setBlockState(pos, state.with(Properties.LIT, true)); - world.scheduleBlockTick(pos, state.getBlock(), 2); - } - } - } - } -} diff --git a/src/main/java/net/limit/cubliminal/entity/ai/goal/BacteriaAttackGoal.java b/src/main/java/net/limit/cubliminal/entity/ai/goal/BacteriaAttackGoal.java deleted file mode 100644 index a40684a..0000000 --- a/src/main/java/net/limit/cubliminal/entity/ai/goal/BacteriaAttackGoal.java +++ /dev/null @@ -1,131 +0,0 @@ -package net.limit.cubliminal.entity.ai.goal; - -import net.limit.cubliminal.entity.custom.BacteriaEntity; -import net.limit.cubliminal.init.CubliminalSounds; -import net.limit.cubliminal.util.ParalyzingEntries; -import net.minecraft.command.argument.EntityAnchorArgumentType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.goal.MeleeAttackGoal; -import net.minecraft.entity.attribute.EntityAttributeInstance; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.mob.PathAwareEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.util.Hand; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Vec3d; - -import java.util.function.Predicate; - -import static net.limit.cubliminal.init.CubliminalSounds.clientStopSound; - - -public class BacteriaAttackGoal extends MeleeAttackGoal { - private final BacteriaEntity entity; - private int attackDelay = 5; - private int ticksUntilNextAttack = 10; - private boolean shouldCountTillNextAttack = false; - private int ticksUntilKill = 40; - public BacteriaAttackGoal(PathAwareEntity mob, double speed, boolean pauseWhenMobIdle) { - super(mob, speed, pauseWhenMobIdle); - entity = ((BacteriaEntity) mob); - } - - @Override - public void start() { - super.start(); - attackDelay = 5; - ticksUntilNextAttack = 10; - } - - - @Override - protected void attack(LivingEntity pEnemy) { - if (isEnemyWithinAttackDistance(pEnemy)) { - shouldCountTillNextAttack = true; - - if (isTimeToStartAttackAnimation() && !pEnemy.isPlayer()) { - entity.setAttacking(true); - } - - if (isTimeToAttack()) { - this.mob.getLookControl().lookAt(pEnemy.getX(), pEnemy.getEyeY(), pEnemy.getZ()); - if (pEnemy.isPlayer()) { - clientStopSound(pEnemy.getCommandSource().getWorld() - .getEntitiesByClass(ServerPlayerEntity.class, new Box(entity.getBlockPos()) - .expand(30), Predicate.not(ServerPlayerEntity::isDisconnected)), - SoundCategory.HOSTILE, CubliminalSounds.BACTERIA_CHASE.getId()); - - pEnemy.lookAt(EntityAnchorArgumentType.EntityAnchor.EYES, - new Vec3d(entity.getX(), entity.getEyeY(), entity.getZ())); - - if (ticksUntilKill == 35) { - if (!entity.getWorld().isClient()) { - entity.playSound(CubliminalSounds.BACTERIA_KILL.value(), 1f, 1f); - } - } else if (ticksUntilKill == 5) { - entity.setAttacking(true); - } else if (ticksUntilKill == 0) { - performAttack(pEnemy); - } - if (ParalyzingEntries.PARALYZING_ENTRIES.isEmpty()) { - ParalyzingEntries.PARALYZING_ENTRIES.add(entity); - entity.setInvulnerable(true); - } - } else { - performAttack(pEnemy); - } - } - } else { - resetAttackCooldown(); - shouldCountTillNextAttack = false; - entity.setAttacking(false); - entity.attackAnimationTimeout = 0; - } - } - - private boolean isEnemyWithinAttackDistance(LivingEntity pEnemy) { - return this.entity.distanceTo(pEnemy) <= 2.5f; // TODO - } - - protected void resetAttackCooldown() { - this.ticksUntilNextAttack = this.getTickCount(attackDelay * 2); - } - - protected boolean isTimeToStartAttackAnimation() { - return this.ticksUntilNextAttack <= attackDelay; - } - - protected boolean isTimeToAttack() { - return this.ticksUntilNextAttack <= 0; - - } - - protected void performAttack(LivingEntity pEnemy) { - this.resetAttackCooldown(); - this.mob.swingHand(Hand.MAIN_HAND); - this.mob.tryAttack(pEnemy); - } - - @Override - public void tick() { - super.tick(); - if (shouldCountTillNextAttack) { - this.ticksUntilNextAttack = Math.max(this.ticksUntilNextAttack - 1, 0); - } - if (entity.isInvulnerable() && ticksUntilKill > 0) { - --ticksUntilKill; - } else if (ticksUntilKill == 0 && !entity.isInvulnerable()) { - ticksUntilKill = 40; - } - } - - @Override - public void stop() { - entity.setAttacking(false); - entity.setInvulnerable(false); - ParalyzingEntries.PARALYZING_ENTRIES.remove(entity); - super.stop(); - } -} diff --git a/src/main/java/net/limit/cubliminal/entity/client/BacteriaModel.java b/src/main/java/net/limit/cubliminal/entity/client/BacteriaModel.java deleted file mode 100644 index 6879697..0000000 --- a/src/main/java/net/limit/cubliminal/entity/client/BacteriaModel.java +++ /dev/null @@ -1,326 +0,0 @@ -package net.limit.cubliminal.entity.client; - -import net.limit.cubliminal.entity.custom.BacteriaEntity; -import net.limit.cubliminal.init.CubliminalAnimations; -import net.minecraft.client.model.*; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.model.SinglePartEntityModel; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.MathHelper; - -public class BacteriaModel extends SinglePartEntityModel { - private final ModelPart bacteria; - private final ModelPart head; - - public BacteriaModel(ModelPart root) { - this.bacteria = root.getChild("bacteria"); - this.head = bacteria.getChild("body").getChild("torso").getChild("upper_torso").getChild("head"); - } - public static TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - ModelPartData modelPartData = modelData.getRoot(); - ModelPartData bacteria = modelPartData.addChild("bacteria", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); - - ModelPartData body = bacteria.addChild("body", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - - ModelPartData left_leg = body.addChild("left_leg", ModelPartBuilder.create(), ModelTransform.pivot(3.105F, -18.765F, -0.27F)); - - ModelPartData cube_r1 = left_leg.addChild("cube_r1", ModelPartBuilder.create().uv(2, 2).cuboid(-0.0065F, -1.3166F, 2.0912F, 0.945F, 6.885F, 0.945F, new Dilation(0.0F)), ModelTransform.of(0.27F, 0.945F, -2.565F, 0.0394F, -0.0971F, -0.4382F)); - - ModelPartData cube_r2 = left_leg.addChild("cube_r2", ModelPartBuilder.create().uv(2, 2).cuboid(0.6088F, -1.2326F, -0.1464F, 0.405F, 1.485F, 0.405F, new Dilation(0.0F)), ModelTransform.of(3.375F, 2.7F, 0.0F, -0.0188F, -0.1271F, 2.7164F)); - - ModelPartData cube_r3 = left_leg.addChild("cube_r3", ModelPartBuilder.create().uv(2, 2).cuboid(-0.0662F, -2.5826F, -0.1464F, 0.405F, 1.35F, 0.405F, new Dilation(0.0F)), ModelTransform.of(3.375F, 2.7F, 0.0F, -0.08F, -0.1006F, -3.0403F)); - - ModelPartData cube_r4 = left_leg.addChild("cube_r4", ModelPartBuilder.create().uv(2, 2).cuboid(-0.5465F, -1.1816F, 2.2262F, 0.81F, 3.51F, 0.945F, new Dilation(0.0F)), ModelTransform.of(0.27F, 0.945F, -2.565F, 0.0218F, -0.1024F, -0.2629F)); - - ModelPartData cube_r5 = left_leg.addChild("cube_r5", ModelPartBuilder.create().uv(2, 2).cuboid(0.2038F, 0.6574F, -0.1464F, 0.405F, 1.08F, 0.405F, new Dilation(0.0F)), ModelTransform.of(3.375F, 2.7F, 0.0F, 0.0751F, -0.1043F, 1.9434F)); - - ModelPartData left_knee = left_leg.addChild("left_knee", ModelPartBuilder.create(), ModelTransform.pivot(2.835F, 5.805F, 0.405F)); - - ModelPartData cube_r6 = left_knee.addChild("cube_r6", ModelPartBuilder.create().uv(2, 2).cuboid(-0.0662F, -4.4726F, -0.1464F, 0.405F, 3.24F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-2.7F, 2.565F, -1.62F, -0.291F, -0.3761F, 0.6317F)); - - ModelPartData cube_r7 = left_knee.addChild("cube_r7", ModelPartBuilder.create().uv(2, 2).cuboid(0.6088F, -1.2326F, -0.1464F, 0.405F, 1.485F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-2.7F, 2.565F, -1.62F, -0.0532F, -0.4684F, 0.0651F)); - - ModelPartData cube_r8 = left_knee.addChild("cube_r8", ModelPartBuilder.create().uv(2, 2).cuboid(0.2038F, 0.6574F, -0.1464F, 0.405F, 3.375F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-2.7F, 2.565F, -1.62F, 0.304F, -0.3659F, -0.7722F)); - - ModelPartData cube_r9 = left_knee.addChild("cube_r9", ModelPartBuilder.create().uv(2, 2).cuboid(5.265F, -14.175F, -0.135F, 0.27F, 7.425F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-5.94F, 16.2F, -3.645F, -0.062F, -0.4674F, 0.0846F)); - - ModelPartData cube_r10 = left_knee.addChild("cube_r10", ModelPartBuilder.create().uv(2, 2).cuboid(7.02F, -16.2F, -0.405F, 0.945F, 8.775F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-5.94F, 16.2F, -3.645F, 0.0F, -0.4712F, -0.0524F)); - - ModelPartData left_ankle = left_knee.addChild("left_ankle", ModelPartBuilder.create(), ModelTransform.pivot(0.27F, 8.235F, -0.135F)); - - ModelPartData cube_r11 = left_ankle.addChild("cube_r11", ModelPartBuilder.create().uv(3, 3).cuboid(6.885F, -7.56F, -1.89F, 1.08F, 2.7F, 0.81F, new Dilation(0.0F)), ModelTransform.of(-6.21F, 7.965F, -3.51F, -0.192F, -0.4712F, -0.0524F)); - - ModelPartData left_foot = left_ankle.addChild("left_foot", ModelPartBuilder.create(), ModelTransform.pivot(0.405F, 2.295F, -0.54F)); - - ModelPartData cube_r12 = left_foot.addChild("cube_r12", ModelPartBuilder.create().uv(3, 3).cuboid(6.885F, 0.54F, -4.05F, 0.945F, 1.485F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-6.615F, 5.67F, -2.97F, -1.1781F, -0.4712F, -0.0524F)); - - ModelPartData cube_r13 = left_foot.addChild("cube_r13", ModelPartBuilder.create().uv(3, 3).cuboid(6.885F, -3.915F, -3.915F, 0.945F, 2.7F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-6.615F, 5.67F, -2.97F, -0.6981F, -0.4712F, -0.0524F)); - - ModelPartData torso = body.addChild("torso", ModelPartBuilder.create(), ModelTransform.pivot(0.945F, -30.645F, 0.135F)); - - ModelPartData cube_r14 = torso.addChild("cube_r14", ModelPartBuilder.create().uv(2, 2).cuboid(-7.3583F, -0.7451F, 0.1758F, 0.945F, 4.185F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-0.945F, 4.725F, -0.675F, -0.017F, -0.02F, -1.5543F)); - - ModelPartData cube_r15 = torso.addChild("cube_r15", ModelPartBuilder.create().uv(2, 2).cuboid(-5.7383F, 2.6299F, 0.1758F, 0.945F, 1.755F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-0.945F, 4.725F, -0.675F, -0.0208F, -0.0161F, -1.3448F)); - - ModelPartData upper_torso = torso.addChild("upper_torso", ModelPartBuilder.create(), ModelTransform.pivot(0.405F, 11.745F, -0.135F)); - - ModelPartData cube_r16 = upper_torso.addChild("cube_r16", ModelPartBuilder.create().uv(2, 2).cuboid(0.3996F, -2.3161F, -0.5998F, 0.27F, 2.7F, 0.675F, new Dilation(0.0F)), ModelTransform.of(7.83F, -21.6F, -0.54F, -0.0118F, 0.051F, -1.798F)); - - ModelPartData cube_r17 = upper_torso.addChild("cube_r17", ModelPartBuilder.create().uv(2, 2).cuboid(-0.5456F, -4.6111F, -0.7277F, 0.81F, 5.805F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-1.485F, -21.465F, -0.27F, -0.1466F, 0.0269F, -1.751F)); - - ModelPartData cube_r18 = upper_torso.addChild("cube_r18", ModelPartBuilder.create().uv(2, 2).cuboid(0.3996F, -1.7761F, -0.4648F, 0.135F, 1.755F, 0.405F, new Dilation(0.0F)), ModelTransform.of(7.83F, -21.6F, -0.54F, -0.0205F, 0.0482F, -1.9727F)); - - ModelPartData cube_r19 = upper_torso.addChild("cube_r19", ModelPartBuilder.create().uv(2, 2).cuboid(-4.32F, -0.1561F, -0.9397F, 0.81F, 6.75F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-0.27F, -25.515F, -0.54F, 0.0F, 0.0524F, -1.5708F)); - - ModelPartData cube_r20 = upper_torso.addChild("cube_r20", ModelPartBuilder.create().uv(3, 3).cuboid(-2.9224F, -3.8878F, -1.4709F, 1.215F, 1.89F, 0.54F, new Dilation(0.0F)) - .uv(3, 3).cuboid(-1.9774F, -4.4278F, -1.3359F, 0.54F, 3.645F, 0.27F, new Dilation(0.0F)), ModelTransform.of(1.08F, -16.74F, 0.405F, -0.0161F, 0.0385F, 0.5054F)); - - ModelPartData cube_r21 = upper_torso.addChild("cube_r21", ModelPartBuilder.create().uv(3, 3).cuboid(0.7135F, -4.7506F, -0.4265F, 0.27F, 4.455F, 0.54F, new Dilation(0.0F)) - .uv(3, 3).cuboid(1.9285F, -8.3956F, -0.4265F, 0.675F, 3.78F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-0.405F, -11.745F, 0.135F, 0.0579F, 0.0224F, -0.4012F)); - - ModelPartData cube_r22 = upper_torso.addChild("cube_r22", ModelPartBuilder.create().uv(3, 3).cuboid(-0.6365F, -7.4506F, -0.4265F, 0.27F, 3.51F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-0.405F, -11.745F, 0.135F, 0.0621F, 0.0013F, -0.0528F)); - - ModelPartData cube_r23 = upper_torso.addChild("cube_r23", ModelPartBuilder.create().uv(3, 3).cuboid(1.3885F, -5.6956F, -0.5615F, 0.27F, 3.78F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-0.405F, -11.745F, 0.135F, 0.0612F, 0.011F, -0.2095F)); - - ModelPartData cube_r24 = upper_torso.addChild("cube_r24", ModelPartBuilder.create().uv(3, 3).cuboid(0.5785F, -2.4556F, -0.5615F, 0.27F, 3.78F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-0.405F, -11.745F, 0.135F, 0.0608F, -0.0127F, 0.1737F)); - - ModelPartData cube_r25 = upper_torso.addChild("cube_r25", ModelPartBuilder.create().uv(3, 3).cuboid(-0.3665F, -2.7256F, -0.5615F, 0.405F, 4.59F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-0.405F, -11.745F, 0.0F, 0.0621F, 0.0013F, -0.0528F)); - - ModelPartData cube_r26 = upper_torso.addChild("cube_r26", ModelPartBuilder.create().uv(3, 3).cuboid(3.4226F, 5.2922F, -0.6609F, 0.405F, 3.105F, 0.54F, new Dilation(0.0F)), ModelTransform.of(1.08F, -16.74F, 0.405F, -0.0041F, 0.0066F, 0.8024F)); - - ModelPartData cube_r27 = upper_torso.addChild("cube_r27", ModelPartBuilder.create().uv(3, 3).cuboid(-7.7824F, 4.6172F, -0.5259F, 0.405F, 4.995F, 0.54F, new Dilation(0.0F)), ModelTransform.of(1.08F, -16.74F, 0.405F, -0.0417F, 0.0021F, -0.6201F)); - - ModelPartData cube_r28 = upper_torso.addChild("cube_r28", ModelPartBuilder.create().uv(3, 3).cuboid(-1.5724F, -4.8328F, -1.2009F, 0.81F, 4.995F, 0.27F, new Dilation(0.0F)), ModelTransform.of(1.08F, -16.74F, 0.405F, -0.0113F, 0.0402F, 0.6276F)); - - ModelPartData cube_r29 = upper_torso.addChild("cube_r29", ModelPartBuilder.create().uv(3, 3).cuboid(-1.0324F, -5.7778F, -1.3359F, 0.405F, 6.345F, 0.54F, new Dilation(0.0F)), ModelTransform.of(1.08F, -16.74F, 0.405F, -0.0041F, 0.0415F, 0.8023F)); - - ModelPartData cube_r30 = upper_torso.addChild("cube_r30", ModelPartBuilder.create().uv(3, 3).cuboid(3.645F, -11.1375F, 1.6819F, 0.405F, 4.455F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-3.78F, 6.21F, -2.295F, -0.0318F, 0.027F, 0.034F)); - - ModelPartData cube_r31 = upper_torso.addChild("cube_r31", ModelPartBuilder.create().uv(3, 3).cuboid(0.0F, -11.9475F, 1.6819F, 0.405F, 5.13F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-3.78F, 6.21F, -2.295F, -0.0243F, 0.0339F, 0.2784F)); - - ModelPartData cube_r32 = upper_torso.addChild("cube_r32", ModelPartBuilder.create().uv(2, 2).cuboid(-0.27F, -10.125F, -0.1342F, 0.81F, 10.8F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-0.27F, -12.015F, -0.54F, 0.0524F, 0.0F, 0.0F)); - - ModelPartData cube_r33 = upper_torso.addChild("cube_r33", ModelPartBuilder.create().uv(2, 2).cuboid(0.81F, -30.24F, -0.135F, 0.81F, 10.8F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-1.35F, 18.9F, 0.0F, 0.0175F, 0.0F, 0.0F)); - - ModelPartData cube_r34 = upper_torso.addChild("cube_r34", ModelPartBuilder.create().uv(2, 2).cuboid(-1.0856F, -5.0161F, -0.5927F, 0.405F, 6.21F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-1.485F, -21.465F, -0.27F, -0.1491F, 0.0011F, -1.9236F)); - - ModelPartData head = upper_torso.addChild("head", ModelPartBuilder.create().uv(1, 1).cuboid(-1.62F, -0.405F, 0.945F, 2.565F, 0.54F, 0.405F, new Dilation(0.0F)) - .uv(1, 1).cuboid(-1.755F, -0.405F, 0.27F, 2.835F, 0.54F, 0.675F, new Dilation(0.0F)) - .uv(1, 1).cuboid(-2.16F, -0.405F, -0.405F, 3.645F, 0.54F, 0.675F, new Dilation(0.0F)) - .uv(1, 1).cuboid(-2.295F, -0.405F, -1.08F, 3.915F, 0.54F, 0.675F, new Dilation(0.0F)) - .uv(1, 1).cuboid(-2.43F, -0.405F, -6.48F, 4.185F, 0.54F, 3.78F, new Dilation(0.0F)) - .uv(1, 1).cuboid(-2.295F, -0.405F, -2.7F, 3.915F, 0.54F, 1.62F, new Dilation(0.0F)), ModelTransform.pivot(-0.135F, -22.275F, -0.675F)); - - ModelPartData cube_r35 = head.addChild("cube_r35", ModelPartBuilder.create().uv(3, 3).cuboid(-0.4616F, -2.5344F, -0.1525F, 0.405F, 2.835F, 0.54F, new Dilation(0.0F)), ModelTransform.of(2.7F, -2.97F, 1.62F, 0.164F, -1.0185F, -1.9578F)); - - ModelPartData cube_r36 = head.addChild("cube_r36", ModelPartBuilder.create().uv(3, 3).cuboid(1.674F, -3.015F, -1.1821F, 0.405F, 0.945F, 0.54F, new Dilation(0.0F)), ModelTransform.of(5.4F, -0.945F, -0.54F, -0.5783F, -0.9045F, -1.0729F)); - - ModelPartData cube_r37 = head.addChild("cube_r37", ModelPartBuilder.create().uv(3, 3).cuboid(0.5265F, -2.88F, -1.0471F, 0.405F, 0.945F, 0.54F, new Dilation(0.0F)), ModelTransform.of(5.4F, -0.945F, -0.54F, -0.8621F, -0.6072F, -0.5931F)); - - ModelPartData cube_r38 = head.addChild("cube_r38", ModelPartBuilder.create().uv(3, 3).cuboid(0.0645F, -2.34F, -0.5071F, 0.405F, 0.945F, 0.54F, new Dilation(0.0F)), ModelTransform.of(5.4F, -0.945F, -0.54F, -0.6808F, -0.4287F, -0.4314F)); - - ModelPartData cube_r39 = head.addChild("cube_r39", ModelPartBuilder.create().uv(3, 3).cuboid(-0.6105F, -1.53F, -0.1021F, 0.405F, 0.945F, 0.54F, new Dilation(0.0F)), ModelTransform.of(5.4F, -0.945F, -0.54F, -0.5843F, -0.2001F, -0.0177F)); - - ModelPartData cube_r40 = head.addChild("cube_r40", ModelPartBuilder.create().uv(3, 3).cuboid(-0.8805F, -0.315F, 0.0329F, 0.405F, 1.215F, 0.54F, new Dilation(0.0F)), ModelTransform.of(5.4F, -0.945F, -0.54F, -0.2456F, 0.0511F, 0.6064F)); - - ModelPartData cube_r41 = head.addChild("cube_r41", ModelPartBuilder.create().uv(3, 3).cuboid(-5.3524F, -4.9678F, -1.3359F, 0.405F, 4.455F, 0.54F, new Dilation(0.0F)), ModelTransform.of(1.215F, 5.535F, 1.08F, 0.0854F, -0.0048F, 1.3026F)); - - ModelPartData cube_r42 = head.addChild("cube_r42", ModelPartBuilder.create().uv(3, 3).cuboid(-3.3103F, -3.9117F, 0.5717F, 0.27F, 1.485F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-2.295F, 0.405F, 0.81F, 1.0426F, -0.8275F, -0.1598F)); - - ModelPartData cube_r43 = head.addChild("cube_r43", ModelPartBuilder.create().uv(3, 3).cuboid(-1.5553F, -3.9117F, 0.1667F, 0.27F, 1.08F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-2.295F, 0.405F, 0.81F, 1.0817F, -0.3738F, -0.5255F)); - - ModelPartData cube_r44 = head.addChild("cube_r44", ModelPartBuilder.create().uv(3, 3).cuboid(0.0647F, -3.2367F, 0.1667F, 0.27F, 0.945F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-2.295F, 0.405F, 0.81F, 1.1364F, 0.0513F, -0.8552F)); - - ModelPartData cube_r45 = head.addChild("cube_r45", ModelPartBuilder.create().uv(3, 3).cuboid(0.0647F, -2.5617F, -1.0483F, 0.27F, 1.62F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-2.295F, 0.405F, 0.81F, 0.6477F, 0.0513F, -0.8552F)); - - ModelPartData cube_r46 = head.addChild("cube_r46", ModelPartBuilder.create().uv(3, 3).cuboid(9.7585F, -4.4806F, -0.0215F, 0.27F, 2.565F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-0.27F, 10.53F, 0.81F, 0.2233F, 0.0606F, -1.3788F)); - - ModelPartData cube_r47 = head.addChild("cube_r47", ModelPartBuilder.create().uv(2, 2).cuboid(-0.945F, -3.78F, 0.243F, 1.215F, 0.945F, 0.0F, new Dilation(0.0F)) - .uv(2, 2).cuboid(-1.755F, -3.24F, 0.189F, 0.945F, 0.405F, 0.0F, new Dilation(0.0F)) - .uv(2, 2).cuboid(-2.16F, -2.835F, 0.189F, 1.215F, 1.08F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 0.9425F)); - - ModelPartData cube_r48 = head.addChild("cube_r48", ModelPartBuilder.create().uv(2, 2).cuboid(2.835F, -2.565F, 0.189F, 1.08F, 0.675F, 0.0F, new Dilation(0.0F)) - .uv(2, 2).cuboid(3.105F, -2.025F, 0.2295F, 0.945F, 1.485F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 0.0349F)); - - ModelPartData cube_r49 = head.addChild("cube_r49", ModelPartBuilder.create().uv(2, 2).cuboid(-0.27F, -3.78F, 0.189F, 0.675F, 2.295F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 1.3439F)); - - ModelPartData cube_r50 = head.addChild("cube_r50", ModelPartBuilder.create().uv(2, 2).cuboid(-0.675F, -2.025F, 0.2295F, 0.81F, 1.89F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 1.1868F)); - - ModelPartData cube_r51 = head.addChild("cube_r51", ModelPartBuilder.create().uv(2, 2).cuboid(-1.35F, -0.27F, 0.189F, 0.945F, 1.08F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 1.309F)); - - ModelPartData cube_r52 = head.addChild("cube_r52", ModelPartBuilder.create().uv(2, 2).cuboid(-2.16F, -3.105F, 0.2295F, 1.08F, 0.81F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 0.6458F)); - - ModelPartData cube_r53 = head.addChild("cube_r53", ModelPartBuilder.create().uv(2, 2).cuboid(-1.755F, -3.105F, 0.135F, 0.405F, 2.295F, 0.0F, new Dilation(0.0F)) - .uv(2, 2).cuboid(-1.35F, -3.375F, 0.135F, 0.405F, 2.97F, 0.0F, new Dilation(0.0F)) - .uv(2, 2).cuboid(-1.08F, -0.54F, 0.2295F, 1.08F, 0.675F, 0.0F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 0.0F, -6.75F, 0.0F, 0.0F, 0.3142F)); - - ModelPartData cube_r54 = head.addChild("cube_r54", ModelPartBuilder.create().uv(0, 0).cuboid(4.1972F, -2.7675F, 3.2052F, 0.54F, 3.24F, 1.215F, new Dilation(0.0F)) - .uv(0, 0).cuboid(4.1972F, -2.4975F, 4.4202F, 0.54F, 2.43F, 1.215F, new Dilation(0.0F)) - .uv(0, 0).cuboid(4.1972F, -3.3075F, -2.4648F, 0.54F, 3.375F, 5.67F, new Dilation(0.0F)), ModelTransform.of(0.54F, -7.56F, -4.05F, -0.0741F, 0.0462F, 1.9182F)); - - ModelPartData cube_r55 = head.addChild("cube_r55", ModelPartBuilder.create().uv(0, 0).cuboid(-1.917F, -2.43F, -3.564F, 0.54F, 0.405F, 1.89F, new Dilation(0.0F)) - .uv(0, 0).cuboid(-1.917F, -2.025F, -3.699F, 0.54F, 0.945F, 2.7F, new Dilation(0.0F)) - .uv(0, 0).cuboid(-1.917F, -1.08F, -3.699F, 0.54F, 1.35F, 2.97F, new Dilation(0.0F)), ModelTransform.of(1.89F, -0.405F, -0.405F, 0.0F, 1.5882F, 0.0F)); - - ModelPartData cube_r56 = head.addChild("cube_r56", ModelPartBuilder.create().uv(0, 0).cuboid(-4.752F, -0.81F, -2.1562F, 0.54F, 1.08F, 2.565F, new Dilation(0.0F)), ModelTransform.of(1.89F, -0.405F, -0.405F, 0.2052F, 0.3269F, 0.575F)); - - ModelPartData cube_r57 = head.addChild("cube_r57", ModelPartBuilder.create().uv(0, 0).cuboid(-0.0476F, -2.025F, -0.4455F, 0.54F, 1.08F, 2.4975F, new Dilation(0.0F)), ModelTransform.of(1.89F, -0.405F, -0.405F, 0.1341F, -0.3609F, -0.3648F)); - - ModelPartData cube_r58 = head.addChild("cube_r58", ModelPartBuilder.create().uv(0, 0).cuboid(-4.212F, -2.295F, -2.1562F, 0.54F, 1.215F, 2.565F, new Dilation(0.0F)), ModelTransform.of(1.89F, -0.405F, -0.405F, -0.0071F, 0.3839F, -0.0188F)); - - ModelPartData cube_r59 = head.addChild("cube_r59", ModelPartBuilder.create().uv(0, 0).cuboid(-0.861F, -4.725F, -1.4769F, 0.27F, 0.27F, 3.645F, new Dilation(0.0F)), ModelTransform.of(-0.27F, -7.965F, -5.13F, -0.0162F, -0.1229F, -2.5841F)); - - ModelPartData cube_r60 = head.addChild("cube_r60", ModelPartBuilder.create().uv(0, 0).cuboid(4.2107F, -0.3375F, -2.4648F, 0.5265F, 1.35F, 5.67F, new Dilation(0.0F)), ModelTransform.of(0.54F, -7.56F, -4.05F, 0.083F, 0.0462F, 1.9182F)); - - ModelPartData cube_r61 = head.addChild("cube_r61", ModelPartBuilder.create().uv(0, 0).cuboid(-0.996F, -6.075F, -1.6119F, 0.54F, 1.485F, 5.67F, new Dilation(0.0F)), ModelTransform.of(-0.27F, -7.965F, -5.13F, -0.0514F, -0.0706F, -2.5813F)); - - ModelPartData cube_r62 = head.addChild("cube_r62", ModelPartBuilder.create().uv(0, 0).cuboid(-2.4178F, -6.75F, -2.5998F, 0.54F, 1.35F, 5.67F, new Dilation(0.0F)), ModelTransform.of(-0.675F, 4.185F, -4.05F, 0.0F, 0.0873F, 0.0F)); - - ModelPartData cube_r63 = head.addChild("cube_r63", ModelPartBuilder.create().uv(0, 0).cuboid(3.189F, -6.1425F, -1.6119F, 0.54F, 1.35F, 5.67F, new Dilation(0.0F)), ModelTransform.of(0.135F, 4.32F, -5.13F, 0.0091F, -0.0868F, -0.2447F)); - - ModelPartData cube_r64 = head.addChild("cube_r64", ModelPartBuilder.create().uv(0, 0).cuboid(-4.077F, -1.755F, -2.1562F, 0.54F, 1.35F, 2.565F, new Dilation(0.0F)), ModelTransform.of(1.89F, -0.405F, -0.405F, -0.0631F, 0.379F, -0.1692F)); - - ModelPartData cube_r65 = head.addChild("cube_r65", ModelPartBuilder.create().uv(0, 0).cuboid(-0.5876F, -1.08F, -0.4455F, 0.54F, 1.35F, 2.4975F, new Dilation(0.0F)), ModelTransform.of(1.89F, -0.405F, -0.405F, -0.0735F, -0.3772F, 0.1973F)); - - ModelPartData cube_r66 = head.addChild("cube_r66", ModelPartBuilder.create().uv(0, 0).cuboid(0.219F, -6.21F, -1.6119F, 0.54F, 1.35F, 5.67F, new Dilation(0.0F)), ModelTransform.of(-0.675F, 4.05F, -5.13F, -0.037F, -0.0791F, 0.4378F)); - - ModelPartData cube_r67 = head.addChild("cube_r67", ModelPartBuilder.create().uv(0, 0).cuboid(-0.2578F, -5.94F, -2.5998F, 0.54F, 1.35F, 5.67F, new Dilation(0.0F)), ModelTransform.of(-0.675F, 4.185F, -4.05F, -0.0328F, 0.0809F, -0.3853F)); - - ModelPartData right_arm = upper_torso.addChild("right_arm", ModelPartBuilder.create(), ModelTransform.pivot(-5.6217F, -20.3415F, 0.7054F)); - - ModelPartData cube_r68 = right_arm.addChild("cube_r68", ModelPartBuilder.create().uv(2, 2).cuboid(-1.5078F, -4.0383F, -0.5221F, 0.135F, 2.97F, 0.81F, new Dilation(0.0F)), ModelTransform.of(0.0867F, -0.4485F, -0.4354F, -0.0556F, -0.116F, -2.7127F)); - - ModelPartData cube_r69 = right_arm.addChild("cube_r69", ModelPartBuilder.create().uv(2, 2).cuboid(0.5172F, -4.4433F, -0.6571F, 0.135F, 4.32F, 0.945F, new Dilation(0.0F)), ModelTransform.of(0.0867F, -0.4485F, -0.4354F, -0.0191F, -0.1272F, -3.0114F)); - - ModelPartData cube_r70 = right_arm.addChild("cube_r70", ModelPartBuilder.create().uv(2, 2).cuboid(-6.6035F, 9.8612F, -3.4083F, 0.27F, 1.215F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-12.4683F, 27.9015F, 0.7796F, 0.1715F, -0.1852F, -2.9357F)); - - ModelPartData cube_r71 = right_arm.addChild("cube_r71", ModelPartBuilder.create().uv(2, 2).cuboid(-0.067F, -2.1221F, -0.0833F, 0.54F, 2.7F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-3.6933F, 16.9665F, -1.3804F, 0.1623F, -0.1882F, -2.7509F)); - - ModelPartData cube_r72 = right_arm.addChild("cube_r72", ModelPartBuilder.create().uv(2, 2).cuboid(-0.13F, -9.214F, -0.6382F, 0.81F, 6.75F, 0.945F, new Dilation(0.0F)) - .uv(4, 4).cuboid(0.005F, -2.464F, -0.5032F, 0.54F, 4.05F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-1.2633F, 7.6515F, -0.4354F, 0.0571F, -0.125F, -2.9235F)); - - ModelPartData cube_r73 = right_arm.addChild("cube_r73", ModelPartBuilder.create().uv(2, 2).cuboid(-0.5628F, -6.6033F, -0.6571F, 0.81F, 6.75F, 0.945F, new Dilation(0.0F)), ModelTransform.of(0.0867F, -0.4485F, -0.4354F, -0.0301F, -0.125F, -2.9235F)); - - ModelPartData right_elbow = right_arm.addChild("right_elbow", ModelPartBuilder.create(), ModelTransform.pivot(-4.6383F, 18.5865F, -1.2454F)); - - ModelPartData cube_r74 = right_elbow.addChild("cube_r74", ModelPartBuilder.create().uv(2, 2).cuboid(-5.6585F, 5.5412F, -3.4083F, 0.27F, 2.025F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-7.83F, 9.315F, 2.025F, 0.1616F, -0.1939F, -2.8832F)); - - ModelPartData cube_r75 = right_elbow.addChild("cube_r75", ModelPartBuilder.create().uv(2, 2).cuboid(-6.8735F, 0.9512F, -3.4083F, 0.27F, 2.025F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-7.83F, 9.315F, 2.025F, 0.2085F, -0.1422F, 3.1216F)); - - ModelPartData cube_r76 = right_elbow.addChild("cube_r76", ModelPartBuilder.create().uv(2, 2).cuboid(-0.2275F, -7.054F, -0.8108F, 0.54F, 9.45F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-0.405F, 2.43F, -0.135F, 0.1977F, -0.1506F, -2.96F)); - - ModelPartData right_hand = right_elbow.addChild("right_hand", ModelPartBuilder.create(), ModelTransform.pivot(-2.025F, 9.045F, -1.89F)); - - ModelPartData cube_r77 = right_hand.addChild("cube_r77", ModelPartBuilder.create().uv(2, 2).cuboid(0.9766F, -1.7417F, -0.1247F, 0.81F, 2.295F, 0.675F, new Dilation(0.0F)), ModelTransform.of(1.35F, 0.54F, -0.405F, 0.234F, -0.0827F, 3.0143F)); - - ModelPartData cube_r78 = right_hand.addChild("cube_r78", ModelPartBuilder.create().uv(2, 2).cuboid(-0.9459F, -3.2071F, -0.0502F, 0.27F, 3.24F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-0.27F, 1.62F, -0.405F, 0.2209F, -0.0636F, 2.8301F)); - - ModelPartData cube_r79 = right_hand.addChild("cube_r79", ModelPartBuilder.create().uv(2, 2).cuboid(-0.135F, -2.9237F, -0.3857F, 0.27F, 3.105F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-0.54F, 2.835F, -0.405F, 0.0656F, -0.1684F, -2.9727F)); - - ModelPartData cube_r80 = right_hand.addChild("cube_r80", ModelPartBuilder.create().uv(2, 2).cuboid(-0.2075F, -3.1298F, -0.1854F, 0.27F, 3.51F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-1.485F, 2.43F, -0.405F, -0.031F, -0.2028F, -2.6542F)); - - ModelPartData cube_r81 = right_hand.addChild("cube_r81", ModelPartBuilder.create().uv(2, 2).cuboid(0.8416F, -1.8767F, -0.1247F, 0.54F, 2.7F, 0.675F, new Dilation(0.0F)), ModelTransform.of(1.35F, 0.54F, -0.405F, 0.2463F, -0.0285F, 2.7936F)); - - ModelPartData cube_r82 = right_hand.addChild("cube_r82", ModelPartBuilder.create().uv(2, 2).cuboid(-0.2275F, -9.754F, -0.8108F, 0.54F, 2.7F, 0.675F, new Dilation(0.0F)), ModelTransform.of(1.62F, -6.615F, 1.755F, 0.1977F, -0.1506F, -2.96F)); - - ModelPartData cube_r83 = right_hand.addChild("cube_r83", ModelPartBuilder.create().uv(2, 2).cuboid(0.4041F, -1.1821F, -0.3202F, 0.405F, 2.7F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-0.27F, 1.62F, -0.405F, 0.1435F, -0.2028F, -2.6542F)); - - ModelPartData left_arm = upper_torso.addChild("left_arm", ModelPartBuilder.create(), ModelTransform.pivot(6.075F, -21.465F, -0.945F)); - - ModelPartData cube_r84 = left_arm.addChild("cube_r84", ModelPartBuilder.create().uv(2, 2).cuboid(-1.485F, 9.7036F, -0.3375F, 0.27F, 4.59F, 0.27F, new Dilation(0.0F)), ModelTransform.of(2.43F, 14.175F, -0.27F, 0.0402F, -0.1237F, 2.8055F)); - - ModelPartData cube_r85 = left_arm.addChild("cube_r85", ModelPartBuilder.create().uv(2, 2).cuboid(1.08F, 3.3586F, -0.3375F, 0.27F, 6.345F, 0.27F, new Dilation(0.0F)), ModelTransform.of(2.43F, 14.175F, -0.27F, 0.0067F, -0.1299F, 3.0693F)); - - ModelPartData cube_r86 = left_arm.addChild("cube_r86", ModelPartBuilder.create().uv(2, 2).cuboid(0.54F, -2.8514F, -0.3375F, 0.27F, 6.345F, 0.27F, new Dilation(0.0F)), ModelTransform.of(2.43F, 14.175F, -0.27F, 0.027F, -0.1273F, 2.911F)); - - ModelPartData cube_r87 = left_arm.addChild("cube_r87", ModelPartBuilder.create().uv(2, 2).cuboid(-0.405F, -5.5514F, -0.4725F, 0.81F, 6.21F, 0.945F, new Dilation(0.0F)), ModelTransform.of(2.43F, 14.175F, -0.27F, 0.0961F, -0.1358F, 3.0514F)); - - ModelPartData cube_r88 = left_arm.addChild("cube_r88", ModelPartBuilder.create().uv(2, 2).cuboid(-12.0378F, -15.2433F, -0.1171F, 0.81F, 14.31F, 0.945F, new Dilation(0.0F)), ModelTransform.of(-11.61F, 0.675F, 1.215F, 0.0203F, -0.127F, 2.9639F)); - - ModelPartData left_elbow = left_arm.addChild("left_elbow", ModelPartBuilder.create(), ModelTransform.pivot(3.105F, 19.845F, -0.54F)); - - ModelPartData cube_r89 = left_elbow.addChild("cube_r89", ModelPartBuilder.create().uv(2, 2).cuboid(0.135F, -15.2714F, -0.3375F, 0.27F, 9.045F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-0.675F, -5.67F, 0.27F, 0.1053F, -0.1288F, 2.9814F)); - - ModelPartData cube_r90 = left_elbow.addChild("cube_r90", ModelPartBuilder.create().uv(2, 2).cuboid(-0.405F, -15.8114F, -0.3375F, 0.27F, 4.05F, 0.675F, new Dilation(0.0F)) - .uv(2, 2).cuboid(-0.135F, -9.0614F, -0.3375F, 0.27F, 3.51F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-0.675F, -5.67F, 0.27F, 0.0961F, -0.1358F, 3.0514F)); - - ModelPartData cube_r91 = left_elbow.addChild("cube_r91", ModelPartBuilder.create().uv(2, 2).cuboid(0.0525F, -1.8061F, -0.2404F, 0.27F, 3.51F, 0.675F, new Dilation(0.0F)), ModelTransform.of(0.27F, 4.32F, -0.81F, 0.114F, -0.1212F, 2.9114F)); - - ModelPartData left_hand = left_elbow.addChild("left_hand", ModelPartBuilder.create(), ModelTransform.pivot(0.675F, 9.72F, -1.08F)); - - ModelPartData cube_r92 = left_hand.addChild("cube_r92", ModelPartBuilder.create().uv(2, 2).cuboid(-1.3351F, -3.1453F, 0.0939F, 0.27F, 1.215F, 0.405F, new Dilation(0.0F)), ModelTransform.of(0.54F, 2.835F, -0.405F, -0.197F, -0.1585F, 3.114F)); - - ModelPartData cube_r93 = left_hand.addChild("cube_r93", ModelPartBuilder.create().uv(2, 2).cuboid(-0.9301F, -2.8753F, 0.2289F, 0.27F, 0.54F, 0.405F, new Dilation(0.0F)), ModelTransform.of(0.0F, 2.16F, -0.81F, -0.0857F, -0.1365F, -2.8633F)); - - ModelPartData cube_r94 = left_hand.addChild("cube_r94", ModelPartBuilder.create().uv(2, 2).cuboid(-0.6601F, -2.2003F, 0.2289F, 0.27F, 4.995F, 0.405F, new Dilation(0.0F)), ModelTransform.of(0.54F, 2.835F, -0.405F, -0.055F, -0.1846F, 2.7962F)); - - ModelPartData cube_r95 = left_hand.addChild("cube_r95", ModelPartBuilder.create().uv(2, 2).cuboid(-0.2551F, -2.6053F, 0.2289F, 0.27F, 3.105F, 0.405F, new Dilation(0.0F)), ModelTransform.of(0.0F, 2.16F, -0.81F, -0.0445F, -0.1548F, 3.1383F)); - - ModelPartData cube_r96 = left_hand.addChild("cube_r96", ModelPartBuilder.create().uv(2, 2).cuboid(-19.9175F, 9.6952F, 4.1346F, 0.27F, 0.81F, 0.405F, new Dilation(0.0F)), ModelTransform.of(-23.625F, 1.62F, -0.27F, -0.031F, -0.2028F, -2.6542F)); - - ModelPartData cube_r97 = left_hand.addChild("cube_r97", ModelPartBuilder.create().uv(2, 2).cuboid(0.2681F, -0.8594F, -0.4104F, 0.54F, 1.485F, 0.675F, new Dilation(0.0F)), ModelTransform.of(0.675F, 0.81F, -0.27F, 0.2396F, -0.0643F, 2.9377F)); - - ModelPartData cube_r98 = left_hand.addChild("cube_r98", ModelPartBuilder.create().uv(2, 2).cuboid(-19.4409F, 9.6179F, 2.1098F, 0.54F, 2.025F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-22.41F, 0.81F, -0.27F, 0.1435F, -0.2028F, -2.6542F)); - - ModelPartData right_leg = body.addChild("right_leg", ModelPartBuilder.create(), ModelTransform.pivot(-0.675F, -18.9F, -0.27F)); - - ModelPartData cube_r99 = right_leg.addChild("cube_r99", ModelPartBuilder.create().uv(3, 3).cuboid(-0.27F, -6.8175F, 1.4119F, 0.405F, 2.295F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 6.21F, -2.025F, -0.0917F, 0.0355F, 0.3482F)); - - ModelPartData cube_r100 = right_leg.addChild("cube_r100", ModelPartBuilder.create().uv(3, 3).cuboid(-1.751F, -4.2888F, 1.4119F, 0.405F, 1.755F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 6.21F, -2.025F, -0.0752F, 0.0634F, 0.6791F)); - - ModelPartData cube_r101 = right_leg.addChild("cube_r101", ModelPartBuilder.create().uv(3, 3).cuboid(-2.831F, -1.5888F, 1.4119F, 0.405F, 1.755F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 6.21F, -2.025F, -0.0382F, 0.0907F, 1.151F)); - - ModelPartData cube_r102 = right_leg.addChild("cube_r102", ModelPartBuilder.create().uv(3, 3).cuboid(-0.3469F, -4.0427F, -1.9382F, 0.81F, 6.75F, 0.81F, new Dilation(0.0F)), ModelTransform.of(-1.485F, 3.78F, 0.27F, -0.5492F, 1.4206F, 0.1686F)); - - ModelPartData cube_r103 = right_leg.addChild("cube_r103", ModelPartBuilder.create().uv(3, 3).cuboid(-4.32F, -5.8725F, 1.5469F, 0.405F, 2.295F, 0.54F, new Dilation(0.0F)), ModelTransform.of(-1.755F, 6.21F, -2.025F, -0.0358F, 0.0916F, 1.1772F)); - - ModelPartData right_knee = right_leg.addChild("right_knee", ModelPartBuilder.create(), ModelTransform.of(-4.185F, 4.86F, -0.135F, 0.0873F, -0.3316F, 0.0F)); - - ModelPartData cube_r104 = right_knee.addChild("cube_r104", ModelPartBuilder.create().uv(3, 3).cuboid(-4.995F, -16.875F, 0.54F, 0.405F, 1.755F, 0.54F, new Dilation(0.0F)), ModelTransform.of(3.645F, 15.525F, -5.67F, -0.1933F, 0.6F, -0.1383F)); - - ModelPartData cube_r105 = right_knee.addChild("cube_r105", ModelPartBuilder.create().uv(3, 3).cuboid(-6.345F, -15.795F, 0.54F, 0.405F, 1.755F, 0.54F, new Dilation(0.0F)) - .uv(3, 3).cuboid(-7.155F, -15.795F, 0.405F, 0.81F, 10.8F, 0.81F, new Dilation(0.0F)), ModelTransform.of(3.645F, 15.525F, -5.67F, -0.0841F, 0.6218F, 0.0517F)); - - ModelPartData cube_r106 = right_knee.addChild("cube_r106", ModelPartBuilder.create().uv(2, 2).cuboid(0.0903F, -1.6302F, -1.9992F, 0.27F, 1.62F, 0.675F, new Dilation(0.0F)), ModelTransform.of(0.81F, 2.7F, 1.35F, 0.1043F, -0.1304F, 2.9989F)); - - ModelPartData cube_r107 = right_knee.addChild("cube_r107", ModelPartBuilder.create().uv(2, 2).cuboid(-12.9485F, -2.6938F, -0.1683F, 0.27F, 2.295F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-12.015F, 2.7F, 1.35F, 0.0722F, -0.1504F, -3.056F)); - - ModelPartData cube_r108 = right_knee.addChild("cube_r108", ModelPartBuilder.create().uv(2, 2).cuboid(-13.2185F, -1.0738F, -0.1683F, 0.27F, 2.295F, 0.675F, new Dilation(0.0F)), ModelTransform.of(-12.015F, 2.7F, 1.35F, 0.0247F, -0.1649F, -2.7559F)); - - ModelPartData right_ankle = right_knee.addChild("right_ankle", ModelPartBuilder.create(), ModelTransform.pivot(-0.945F, 10.26F, -0.675F)); - - ModelPartData cube_r109 = right_ankle.addChild("cube_r109", ModelPartBuilder.create().uv(3, 3).cuboid(-7.83F, -4.32F, -1.215F, 0.81F, 2.7F, 0.81F, new Dilation(0.0F)), ModelTransform.of(4.59F, 5.265F, -4.995F, -0.3639F, 0.6236F, 0.2275F)); - - ModelPartData right_foot = right_ankle.addChild("right_foot", ModelPartBuilder.create(), ModelTransform.pivot(-0.945F, 1.62F, -0.675F)); - - ModelPartData cube_r110 = right_foot.addChild("cube_r110", ModelPartBuilder.create().uv(3, 3).cuboid(-7.83F, 1.62F, -1.215F, 0.81F, 1.485F, 0.54F, new Dilation(0.0F)), ModelTransform.of(5.13F, 2.025F, -5.4F, -1.2883F, 0.7309F, 0.0716F)); - - ModelPartData cube_r111 = right_foot.addChild("cube_r111", ModelPartBuilder.create().uv(2, 2).cuboid(-7.83F, -1.08F, -1.62F, 0.81F, 2.7F, 0.945F, new Dilation(0.0F)), ModelTransform.of(5.13F, 2.025F, -5.4F, -1.0788F, 0.7309F, 0.0716F)); - return TexturedModelData.of(modelData, 64, 64); - } - @Override - public void setAngles(BacteriaEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - this.getPart().traverse().forEach(ModelPart::resetTransform); - this.setHeadAngles(netHeadYaw, headPitch); - this.animateMovement(CubliminalAnimations.BACTERIA_WALK, limbSwing, limbSwingAmount, 2f, 2.5f); - this.updateAnimation(entity.idleAnimationState, CubliminalAnimations.BACTERIA_IDLE, ageInTicks, 1f); - this.updateAnimation(entity.attackAnimationState, CubliminalAnimations.BACTERIA_ATTACK, ageInTicks, 1f); - } - private void setHeadAngles(float headYaw, float headPitch) { - headYaw = MathHelper.clamp(headYaw, -30.0F, 30.0F); - headPitch = MathHelper.clamp(headPitch, -25.0F, 45.0F); - - this.head.yaw = headYaw * 0.017453292F; - this.head.pitch = headPitch * 0.017453292F; - } - @Override - public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { - bacteria.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha); - } - - @Override - public ModelPart getPart() { - return bacteria; - } -} diff --git a/src/main/java/net/limit/cubliminal/entity/client/BacteriaRenderer.java b/src/main/java/net/limit/cubliminal/entity/client/BacteriaRenderer.java deleted file mode 100644 index ef97451..0000000 --- a/src/main/java/net/limit/cubliminal/entity/client/BacteriaRenderer.java +++ /dev/null @@ -1,28 +0,0 @@ -package net.limit.cubliminal.entity.client; - -import net.limit.cubliminal.Cubliminal; -import net.limit.cubliminal.entity.custom.BacteriaEntity; -import net.limit.cubliminal.init.CubliminalModelLayers; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.MobEntityRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Identifier; - -public class BacteriaRenderer extends MobEntityRenderer> { - private static final Identifier TEXTURE = Cubliminal.id("textures/entity/bacteria.png"); - public BacteriaRenderer(EntityRendererFactory.Context context) { - super(context, new BacteriaModel<>(context.getPart(CubliminalModelLayers.BACTERIA)), 0.8f); - } - - @Override - public Identifier getTexture(BacteriaEntity entity) { - return TEXTURE; - } - - @Override - public void render(BacteriaEntity mobEntity, float f, float g, MatrixStack matrixStack, - VertexConsumerProvider vertexConsumerProvider, int i) { - super.render(mobEntity, f, g, matrixStack, vertexConsumerProvider, i); - } -} diff --git a/src/main/java/net/limit/cubliminal/entity/custom/BacteriaEntity.java b/src/main/java/net/limit/cubliminal/entity/custom/BacteriaEntity.java deleted file mode 100644 index 8dd8e6d..0000000 --- a/src/main/java/net/limit/cubliminal/entity/custom/BacteriaEntity.java +++ /dev/null @@ -1,239 +0,0 @@ -package net.limit.cubliminal.entity.custom; - -import net.limit.cubliminal.entity.ai.goal.BacteriaAttackGoal; -import net.limit.cubliminal.init.CubliminalSounds; -import net.minecraft.block.BlockState; -import net.minecraft.entity.*; -import net.minecraft.entity.ai.goal.*; -import net.minecraft.entity.ai.pathing.MobNavigation; -import net.minecraft.entity.attribute.DefaultAttributeContainer; -import net.minecraft.entity.attribute.EntityAttributeInstance; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.data.DataTracker; -import net.minecraft.entity.data.TrackedData; -import net.minecraft.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.mob.HostileEntity; -import net.minecraft.entity.passive.IronGolemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.world.Difficulty; -import net.minecraft.world.World; -import net.minecraft.world.explosion.Explosion; -import org.jetbrains.annotations.Nullable; - -import java.util.UUID; -import java.util.function.Predicate; - -import static net.limit.cubliminal.init.CubliminalSounds.clientStopSound; - -public class BacteriaEntity extends HostileEntity { - private static final TrackedData ATTACKING = - DataTracker.registerData(BacteriaEntity.class, TrackedDataHandlerRegistry.BOOLEAN); - private static final UUID ATTACKING_SPEED_BOOST_ID = UUID.fromString("020E0DFB-87AE-4653-9556-831010E291A0"); - private static final EntityAttributeModifier ATTACKING_SPEED_BOOST = new EntityAttributeModifier( - ATTACKING_SPEED_BOOST_ID, "Attacking speed boost", 0.1f, EntityAttributeModifier.Operation.ADDITION - ); - private static final UUID PLAYER_DAMAGE_BOOST_ID = UUID.fromString("D12717a5-1157-4f2c-9d47-006aa7a31fbf"); - private static final EntityAttributeModifier PLAYER_DAMAGE_BOOST = new EntityAttributeModifier( - PLAYER_DAMAGE_BOOST_ID, "Player damage boost", 1000f, EntityAttributeModifier.Operation.ADDITION - ); - - private static final Predicate DOOR_BREAK_DIFFICULTY_CHECKER = difficulty -> difficulty == Difficulty.HARD; - public boolean canPlaySound = true; - public final AnimationState idleAnimationState = new AnimationState(); - private int idleAnimationTimeout = 0; - public final AnimationState attackAnimationState = new AnimationState(); - public int attackAnimationTimeout = 0; - public BacteriaEntity(EntityType entityType, World world) { - super(entityType, world); - this.setStepHeight(3f); - ((MobNavigation)this.getNavigation()).setCanPathThroughDoors(true); - } - - public boolean canBreakDoors() { - return true; - } - - private void setupAnimationStates() { - if (this.idleAnimationTimeout <= 0) { - this.idleAnimationTimeout = this.random.nextInt(40) + 80; - this.idleAnimationState.start(this.age); - } else { - --this.idleAnimationTimeout; - } - - if (this.isAttacking() && attackAnimationTimeout <= 0) { - attackAnimationTimeout = 10; - attackAnimationState.start(this.age); - } else { - --this.attackAnimationTimeout; - } - if (!this.isAttacking()) { - attackAnimationState.stop(); - } - } - - - @Override - protected void updateLimbs(float posDelta) { - float f = this.getPose() == EntityPose.STANDING ? Math.min(posDelta * 6.0f, 1.0f) : 0.0f; - this.limbAnimator.updateLimbs(f, 0.2f); - } - - @Override - public void tick() { - super.tick(); - if(this.getWorld().isClient()) { - setupAnimationStates(); - } else { - if (!canPlaySound) { - clientStopSound(this.getCommandSource().getWorld() - .getEntitiesByClass(ServerPlayerEntity.class, new Box(this.getBlockPos()) - .expand(20), Predicate.not(ServerPlayerEntity::isDisconnected)), - SoundCategory.HOSTILE, CubliminalSounds.BACTERIA_IDLE.getId()); - if (this.getTarget() == null) { - canPlaySound = true; - } - } - /* - for (BlockEntity blockEntity : BlockPos.stream(new Box(this.getBlockPos()).expand(6)) - .map(this.getWorld()::getBlockEntity).filter(Objects::nonNull).filter(blockEntity -> - blockEntity.getCachedState().equals(CubliminalBlocks.FLUORESCENT_LIGHT - .getDefaultState())).toList()) { - this.getWorld().setBlockState(blockEntity.getPos(), - blockEntity.getCachedState().with(LIT, false)); - } - */ - } - } - - @Override - public int getMinAmbientSoundDelay() { - return 1000; - } - - @Override - public void tickMovement() { - super.tickMovement(); - } - - @Override - public boolean cannotDespawn() { - return true; - } - @Override - protected void initGoals() { - this.goalSelector.add(0, new BreakDoorGoal(this, DOOR_BREAK_DIFFICULTY_CHECKER)); - this.targetSelector.add(1, new RevengeGoal(this)); - this.goalSelector.add(2, new BacteriaAttackGoal(this, 1D, true)); - this.targetSelector.add(2, new ActiveTargetGoal<>(this, PlayerEntity.class, true)); - this.targetSelector.add(3, new ActiveTargetGoal<>(this, IronGolemEntity.class, true)); - this.goalSelector.add(4, new LookAtEntityGoal(this, PlayerEntity.class, 40.0f)); - this.goalSelector.add(5, new WanderAroundFarGoal(this, 0.6, 4)); - } - - public static DefaultAttributeContainer.Builder createBacteriaAttributes() { - return HostileEntity.createMobAttributes() - .add(EntityAttributes.GENERIC_MAX_HEALTH,500) - .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.33f) - .add(EntityAttributes.GENERIC_ATTACK_DAMAGE,13) - .add(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, 1.0) - .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 35.0) - .add(EntityAttributes.GENERIC_ARMOR, 50); - } - @Override - public void setTarget(@Nullable LivingEntity target) { - super.setTarget(target); - EntityAttributeInstance entityAttributeInstance1 = this.getAttributeInstance(EntityAttributes.GENERIC_MOVEMENT_SPEED); - EntityAttributeInstance entityAttributeInstance2 = this.getAttributeInstance(EntityAttributes.GENERIC_ATTACK_DAMAGE); - assert entityAttributeInstance1 != null; - assert entityAttributeInstance2 != null; - if (target == null) { - entityAttributeInstance1.removeModifier(ATTACKING_SPEED_BOOST.getId()); - entityAttributeInstance2.removeModifier(PLAYER_DAMAGE_BOOST.getId()); - } else { - if (!entityAttributeInstance1.hasModifier(ATTACKING_SPEED_BOOST)) { - entityAttributeInstance1.addTemporaryModifier(ATTACKING_SPEED_BOOST); - } - if (target.isPlayer()) { - if (!entityAttributeInstance2.hasModifier(PLAYER_DAMAGE_BOOST)) { - entityAttributeInstance2.addTemporaryModifier(PLAYER_DAMAGE_BOOST); - } - if (canPlaySound) { - this.playSound(CubliminalSounds.BACTERIA_CHASE, 1f, 1f); - canPlaySound = false; - } - } - } - } - @Override - public void writeCustomDataToNbt(NbtCompound nbt) { - super.writeCustomDataToNbt(nbt); - nbt.putBoolean("CanBreakDoors", this.canBreakDoors()); - } - - @Override - public boolean canHaveStatusEffect(StatusEffectInstance effect) { - if (effect.getEffectType() == StatusEffects.WITHER || effect.getEffectType() == StatusEffects.POISON - || effect.getEffectType() == StatusEffects.INSTANT_DAMAGE || effect.getEffectType() == StatusEffects.SLOWNESS - || effect.getEffectType() == StatusEffects.WEAKNESS) { - return false; - } - return super.canHaveStatusEffect(effect); - } - - @Override - public boolean isFireImmune() { - return true; - } - - @Override - public boolean isImmuneToExplosion(Explosion explosion) { - return true; - } - @Override - public boolean canBeHitByProjectile() { - return false; - } - - @Override - protected float getActiveEyeHeight(EntityPose pose, EntityDimensions dimensions) { - return 2.7f; - } - - public void setAttacking(boolean attacking) { - this.dataTracker.set(ATTACKING, attacking); - } - - @Override - public boolean isAttacking() { - return this.dataTracker.get(ATTACKING); - } - - @Override - protected void initDataTracker() { - super.initDataTracker(); - this.dataTracker.startTracking(ATTACKING, false); - } - - @Nullable - @Override - protected SoundEvent getAmbientSound() { - return CubliminalSounds.BACTERIA_IDLE; - } - - @Override - protected void playStepSound(BlockPos pos, BlockState state) { - if (this.getTarget() != null && !this.getWorld().isClient()) { - this.playSound(CubliminalSounds.BACTERIA_STEP_SOUND.value(), 0.7f, 1f); - } - } -} diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalBlockEntities.java b/src/main/java/net/limit/cubliminal/init/CubliminalBlockEntities.java index ff4b5ae..5000e52 100644 --- a/src/main/java/net/limit/cubliminal/init/CubliminalBlockEntities.java +++ b/src/main/java/net/limit/cubliminal/init/CubliminalBlockEntities.java @@ -9,14 +9,6 @@ public class CubliminalBlockEntities { - public static final BlockEntityType FLUORESCENT_LIGHT_BLOCK_ENTITY = - Registry.register(Registries.BLOCK_ENTITY_TYPE, Cubliminal.id("fluorescent_light"), - BlockEntityType.Builder.create(FluorescentLightBlockEntity::new, CubliminalBlocks.FLICKERING_FLUORESCENT_LIGHT).build()); - - public static final BlockEntityType FUSED_FLUORESCENT_LIGHT_BLOCK_ENTITY = - Registry.register(Registries.BLOCK_ENTITY_TYPE, Cubliminal.id("fused_fluorescent_light"), - BlockEntityType.Builder.create(FusedFluorescentLightBlockEntity::new, CubliminalBlocks.FUSED_FLUORESCENT_LIGHT).build()); - public static final BlockEntityType THE_LOBBY_GATEWAY_BLOCK_ENTITY = Registry.register(Registries.BLOCK_ENTITY_TYPE, Cubliminal.id("the_lobby_gateway_block"), BlockEntityType.Builder.create(TheLobbyGatewayBlockEntity::new, CubliminalBlocks.THE_LOBBY_GATEWAY_BLOCK).build()); diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalBlocks.java b/src/main/java/net/limit/cubliminal/init/CubliminalBlocks.java index f86b4ab..0f9af64 100644 --- a/src/main/java/net/limit/cubliminal/init/CubliminalBlocks.java +++ b/src/main/java/net/limit/cubliminal/init/CubliminalBlocks.java @@ -6,18 +6,17 @@ import net.limit.cubliminal.Cubliminal; import net.limit.cubliminal.block.CustomProperties; import net.limit.cubliminal.block.custom.*; -import net.limit.cubliminal.block.custom.SpreadableBlock; import net.minecraft.block.*; import net.minecraft.block.piston.PistonBehavior; import net.minecraft.item.BlockItem; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.sound.SoundEvents; import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; -import java.util.Optional; import java.util.function.ToIntFunction; import static net.minecraft.block.Blocks.createLightLevelFromLitBlockState; @@ -86,24 +85,26 @@ private static Block registerBlock(String id, Block block) { .strength(1, 3))); public static final Block RED_WALLPAPERS = registerBlock("red_wallpapers", - new SpreadableBlock(Optional.empty(), + new Block(//Optional.empty(), AbstractBlock.Settings.create() .mapColor(MapColor.TERRACOTTA_RED) .sounds(BlockSoundGroup.BASALT) .strength(5, 7) - .ticksRandomly() - .requiresTool(), - CubliminalBlocks.YELLOW_WALLPAPERS, CubliminalBlocks.DAMAGED_YELLOW_WALLPAPERS, CubliminalBlocks.BOTTOM_YELLOW_WALLPAPERS)); + //.ticksRandomly() + .requiresTool() + //, CubliminalBlocks.YELLOW_WALLPAPERS, CubliminalBlocks.DAMAGED_YELLOW_WALLPAPERS, CubliminalBlocks.BOTTOM_YELLOW_WALLPAPERS + )); public static final Block RED_DAMP_CARPET = registerBlock("red_damp_carpet", - new SpreadableBlock(Optional.empty(), + new Block(//Optional.empty(), AbstractBlock.Settings.create() .mapColor(MapColor.RED) .sounds(BlockSoundGroup.WOOL) .strength(1, 3) - .ticksRandomly() - .slipperiness(0.7f), - CubliminalBlocks.DAMP_CARPET, CubliminalBlocks.DIRTY_DAMP_CARPET)); + //.ticksRandomly() + .slipperiness(0.7f) + //, CubliminalBlocks.DAMP_CARPET, CubliminalBlocks.DIRTY_DAMP_CARPET + )); public static final Block FLICKERING_FLUORESCENT_LIGHT = registerBlock("fluorescent_light", new FluorescentLightBlock(AbstractBlock.Settings.create() @@ -146,14 +147,24 @@ private static Block registerBlock(String id, Block block) { .pistonBehavior(PistonBehavior.DESTROY) .requiresTool())); - public static final Block ELECTRICAL_PLUG = registerBlock("electrical_plug", - new ElectricalPlugBlock(AbstractBlock.Settings.create() + public static final Block SOCKET = registerBlock("socket", + new SocketBlock(AbstractBlock.Settings.create() .mapColor(MapColor.WHITE_GRAY) .strength(3, 3) .sounds(BlockSoundGroup.CALCITE) .pistonBehavior(PistonBehavior.DESTROY) .requiresTool())); + public static final Block JUMBLED_DOCUMENTS = registerBlock("jumbled_documents", + new Block(AbstractBlock.Settings.create() + .mapColor(MapColor.WHITE) + .breakInstantly() + .sounds(new BlockSoundGroup(1.0f, 1.0f, SoundEvents.ITEM_BOOK_PAGE_TURN, SoundEvents.ITEM_BOOK_PAGE_TURN, + SoundEvents.ITEM_BOOK_PAGE_TURN, SoundEvents.ITEM_BOOK_PAGE_TURN, SoundEvents.ITEM_BOOK_PAGE_TURN)) + .nonOpaque() + .noCollision() + .pistonBehavior(PistonBehavior.DESTROY))); + public static final Block TWO_LONG_SPRUCE_TABLE = registerBlock("two_long_spruce_table", new TwoLongTableBlock(FabricBlockSettings.copyOf(Blocks.SPRUCE_PLANKS) .requiresTool())); diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalEntities.java b/src/main/java/net/limit/cubliminal/init/CubliminalEntities.java index 4bb328e..f9331b3 100644 --- a/src/main/java/net/limit/cubliminal/init/CubliminalEntities.java +++ b/src/main/java/net/limit/cubliminal/init/CubliminalEntities.java @@ -1,7 +1,6 @@ package net.limit.cubliminal.init; import net.limit.cubliminal.Cubliminal; -import net.limit.cubliminal.entity.custom.BacteriaEntity; import net.limit.cubliminal.entity.custom.SeatEntity; import net.minecraft.entity.EntityType; import net.minecraft.entity.SpawnGroup; @@ -9,10 +8,6 @@ import net.minecraft.registry.Registry; public class CubliminalEntities { - public static final EntityType BACTERIA = Registry.register(Registries.ENTITY_TYPE, - Cubliminal.id("bacteria"), - EntityType.Builder.create(BacteriaEntity::new, SpawnGroup.MONSTER) - .setDimensions(0.8f,2.8f).build()); public static final EntityType SEAT_ENTITY = Registry.register(Registries.ENTITY_TYPE, Cubliminal.id("seat_entity"), diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalItemGroups.java b/src/main/java/net/limit/cubliminal/init/CubliminalItemGroups.java index 78ab003..f98eb8e 100644 --- a/src/main/java/net/limit/cubliminal/init/CubliminalItemGroups.java +++ b/src/main/java/net/limit/cubliminal/init/CubliminalItemGroups.java @@ -7,7 +7,6 @@ import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.text.Text; -import net.minecraft.util.Identifier; public class CubliminalItemGroups { public static final ItemGroup BACKROOMS_GROUP = Registry.register(Registries.ITEM_GROUP, @@ -37,7 +36,7 @@ public class CubliminalItemGroups { entries.add(CubliminalBlocks.GABBRO); entries.add(CubliminalBlocks.MOLD); entries.add(CubliminalBlocks.SMOKE_DETECTOR); - entries.add(CubliminalBlocks.ELECTRICAL_PLUG); + entries.add(CubliminalBlocks.SOCKET); entries.add(CubliminalBlocks.TWO_LONG_SPRUCE_TABLE); entries.add(CubliminalBlocks.SPRUCE_CHAIR); entries.add(CubliminalBlocks.SINK); diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalItems.java b/src/main/java/net/limit/cubliminal/init/CubliminalItems.java index d2b041c..6529862 100644 --- a/src/main/java/net/limit/cubliminal/init/CubliminalItems.java +++ b/src/main/java/net/limit/cubliminal/init/CubliminalItems.java @@ -6,7 +6,6 @@ import net.limit.cubliminal.item.AlmondWaterItem; import net.limit.cubliminal.item.BasicWeaponItem; import net.minecraft.item.Item; -import net.minecraft.item.SpawnEggItem; import net.minecraft.item.SwordItem; import net.minecraft.item.ToolMaterials; import net.minecraft.registry.Registries; @@ -16,7 +15,6 @@ public class CubliminalItems { public static final Item YELLOW_WALLPAPER = registerItem("yellow_wallpaper", new Item(new FabricItemSettings())); public static final Item CRIMSON_WALLPAPER = registerItem("crimson_wallpaper", new Item(new FabricItemSettings())); - public static final Item BACTERIA_SPAWN_EGG = registerItem("bacteria_spawn_egg", new SpawnEggItem(CubliminalEntities.BACTERIA, 0x171717, 0x2d02a6, new FabricItemSettings())); public static final Item ALMOND_WATER = registerItem("almond_water", new AlmondWaterItem(new FabricItemSettings().food(CubliminalFoodComponents.ALMOND_WATER).maxCount(16))); public static final Item WOODEN_PLANK = registerItem("wooden_plank", new BasicWeaponItem(2, -2f, new FabricItemSettings())); public static final Item NAILED_BAT = registerItem("nailed_bat", new SwordItem(ToolMaterials.IRON, 3, -2.2f, new FabricItemSettings().maxCount(1))); diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalModelLayers.java b/src/main/java/net/limit/cubliminal/init/CubliminalModelLayers.java deleted file mode 100644 index c70ec02..0000000 --- a/src/main/java/net/limit/cubliminal/init/CubliminalModelLayers.java +++ /dev/null @@ -1,8 +0,0 @@ -package net.limit.cubliminal.init; - -import net.limit.cubliminal.Cubliminal; -import net.minecraft.client.render.entity.model.EntityModelLayer; - -public class CubliminalModelLayers { - public static final EntityModelLayer BACTERIA = new EntityModelLayer(Cubliminal.id("bacteria"), "main"); -} diff --git a/src/main/java/net/limit/cubliminal/init/CubliminalSounds.java b/src/main/java/net/limit/cubliminal/init/CubliminalSounds.java index d0c9385..3394d5c 100644 --- a/src/main/java/net/limit/cubliminal/init/CubliminalSounds.java +++ b/src/main/java/net/limit/cubliminal/init/CubliminalSounds.java @@ -28,10 +28,6 @@ private static RegistryEntry.Reference registerSoundEvent(String id) public static final RegistryEntry.Reference AMBIENT_LEVEL_O = registerSoundEvent("ambient.lvl0"); public static final RegistryEntry.Reference AMBIENT_PILLARS_LEVEL_0 = registerSoundEvent("ambient.lvl0.pillars"); public static final RegistryEntry.Reference AMBIENT_REDROOMS = registerSoundEvent("ambient.redrooms"); - public static final RegistryEntry.Reference BACTERIA_STEP_SOUND = registerSoundEvent("entity.bacteria.step"); - public static final SoundEvent BACTERIA_IDLE = register("entity.bacteria.ambient"); - public static final SoundEvent BACTERIA_CHASE = register("entity.bacteria.chase"); - public static final RegistryEntry.Reference BACTERIA_KILL = registerSoundEvent("entity.bacteria.kill"); public static final RegistryEntry.Reference HEARTBEAT = registerSoundEvent("heartbeat"); public static final RegistryEntry.Reference NOCLIPPING = registerSoundEvent("noclipping"); public static final RegistryEntry.Reference OPEN_SINK = registerSoundEvent("block.sink_open"); diff --git a/src/main/java/net/limit/cubliminal/mixin/EntityMixin.java b/src/main/java/net/limit/cubliminal/mixin/EntityMixin.java index 0cf4dba..988128b 100644 --- a/src/main/java/net/limit/cubliminal/mixin/EntityMixin.java +++ b/src/main/java/net/limit/cubliminal/mixin/EntityMixin.java @@ -1,10 +1,7 @@ package net.limit.cubliminal.mixin; import net.limit.cubliminal.util.NoClipEngine; -import net.limit.cubliminal.util.ParalyzingEntries; import net.minecraft.entity.Entity; -import net.minecraft.entity.MovementType; -import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -28,11 +25,4 @@ private void onTryTickInVoid(CallbackInfo ci) { private void isImmuneToFire(CallbackInfoReturnable cir) { if (NoClipEngine.isNoClipping(this)) cir.setReturnValue(true); } - /* - @Inject(method = "move", at = @At("HEAD"), cancellable = true) - private void suppressMovement(MovementType movementType, Vec3d movement, CallbackInfo ci) { - if (!ParalyzingEntries.PARALYZING_ENTRIES.isEmpty()) ci.cancel(); - } - - */ } diff --git a/src/main/java/net/limit/cubliminal/util/NoClipEngine.java b/src/main/java/net/limit/cubliminal/util/NoClipEngine.java index da6787c..35a8a4c 100644 --- a/src/main/java/net/limit/cubliminal/util/NoClipEngine.java +++ b/src/main/java/net/limit/cubliminal/util/NoClipEngine.java @@ -94,13 +94,6 @@ public static void noClipDestination(ServerPlayerEntity playerEntity) { TO_OVER.remove(playerEntity); } else if (TO_LEVEL_0.contains(playerEntity)) { registryKey = CubliminalWorlds.THE_LOBBY_KEY; - /* - int x = playerEntity.getBlockX(); - int z = playerEntity.getBlockZ(); - while (x % 8 != 0) x++; - while (z % 8 != 0) z++; - - */ destination = new BlockPos(4, 16, 4); TO_LEVEL_0.remove(playerEntity); } else if (registryKey.getValue().getNamespace().equals(Cubliminal.MOD_ID)) { @@ -108,13 +101,6 @@ public static void noClipDestination(ServerPlayerEntity playerEntity) { destination = playerEntity.getServerWorld().getSpawnPos(); } else { registryKey = CubliminalWorlds.THE_LOBBY_KEY; - /* - int x = playerEntity.getBlockX(); - int z = playerEntity.getBlockZ(); - while (x % 8 != 0) x++; - while (z % 8 != 0) z++; - - */ destination = new BlockPos(4, 16, 4); } diff --git a/src/main/java/net/limit/cubliminal/util/ParalyzingEntries.java b/src/main/java/net/limit/cubliminal/util/ParalyzingEntries.java deleted file mode 100644 index e0c6641..0000000 --- a/src/main/java/net/limit/cubliminal/util/ParalyzingEntries.java +++ /dev/null @@ -1,8 +0,0 @@ -package net.limit.cubliminal.util; - -import java.util.HashSet; -import java.util.Set; - -public class ParalyzingEntries { - public static Set PARALYZING_ENTRIES = new HashSet<>(); -} diff --git a/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeEntries.java b/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeEntries.java index 85b35ad..fd76f1f 100644 --- a/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeEntries.java +++ b/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeEntries.java @@ -5,8 +5,10 @@ public enum LevelZeroBiomeEntries { THE_LOBBY(1.5, 1.5, 1.5), - PILLARS_BIOME(2.6, 3.3, 1.5), - THE_REDROOMS(-0.2, 1, 0.5); + //PILLARS_BIOME(2.6, 3.3, 1.5), + //THE_REDROOMS(-0.2, 1, 0.5); + PILLARS_BIOME(3.2, 2, 1.5), + THE_REDROOMS(0, 0.2, 0.5); RegistryEntry.Reference biome; final double rarity; diff --git a/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeSource.java b/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeSource.java index d3ce2cb..5f96f12 100644 --- a/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeSource.java +++ b/src/main/java/net/limit/cubliminal/world/biome/level_0/LevelZeroBiomeSource.java @@ -52,9 +52,9 @@ public RegistryEntry.Reference getBiome(int x, int y, int z, MultiNoiseUt bl = true; } //get noise value at the given position (range of 0 - 3) - double rarityValue = (rarity.sample(x * 0.01,z * 0.01) + 1) * 1.5; - double spacingValue = (spacing.sample(x * 0.01,z * 0.01) + 1) * 1.5; - double safetyValue = (safety.sample(x * 0.01,z * 0.01) + 1) * 1.5; + double rarityValue = (rarity.sample(x * 0.005,z * 0.005) + 1) * 1.5; + double spacingValue = (spacing.sample(x * 0.005,z * 0.005) + 1) * 1.5; + double safetyValue = (safety.sample(x * 0.005,z * 0.005) + 1) * 1.5; //return most suitable biome entry by making use of helper enum return getBiomeReference(rarityValue, spacingValue, safetyValue); diff --git a/src/main/java/net/limit/cubliminal/world/chunk/LevelZeroChunkGenerator.java b/src/main/java/net/limit/cubliminal/world/chunk/LevelZeroChunkGenerator.java index f83c741..befb015 100644 --- a/src/main/java/net/limit/cubliminal/world/chunk/LevelZeroChunkGenerator.java +++ b/src/main/java/net/limit/cubliminal/world/chunk/LevelZeroChunkGenerator.java @@ -213,7 +213,7 @@ protected void modifyStructure(ChunkRegion region, BlockPos pos, BlockState stat .with(CustomProperties.RED, state.get(CustomProperties.RED)), Block.FORCE_STATE, 1); } - } else if (state.isOf(CubliminalBlocks.ELECTRICAL_PLUG)) { + } else if (state.isOf(CubliminalBlocks.SOCKET)) { if (randomInt != 0) { region.setBlockState(pos, Blocks.LIGHT.getDefaultState().with(LightBlock.LEVEL_15, 3), Block.FORCE_STATE, 1); diff --git a/src/main/resources/assets/cubliminal/blockstates/electrical_plug.json b/src/main/resources/assets/cubliminal/blockstates/electrical_plug.json deleted file mode 100644 index caedebb..0000000 --- a/src/main/resources/assets/cubliminal/blockstates/electrical_plug.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=west": { - "model": "cubliminal:block/electrical_plug", - "y": 90 - }, - "facing=south": { - "model": "cubliminal:block/electrical_plug" - }, - "facing=north": { - "model": "cubliminal:block/electrical_plug", - "y": 180 - }, - "facing=east": { - "model": "cubliminal:block/electrical_plug", - "y": 270 - } - } -} diff --git a/src/main/resources/assets/cubliminal/blockstates/socket.json b/src/main/resources/assets/cubliminal/blockstates/socket.json new file mode 100644 index 0000000..da95676 --- /dev/null +++ b/src/main/resources/assets/cubliminal/blockstates/socket.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=west": { + "model": "cubliminal:block/socket", + "y": 90 + }, + "facing=south": { + "model": "cubliminal:block/socket" + }, + "facing=north": { + "model": "cubliminal:block/socket", + "y": 180 + }, + "facing=east": { + "model": "cubliminal:block/socket", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/cubliminal/lang/en_us.json b/src/main/resources/assets/cubliminal/lang/en_us.json index e1d447a..8e5c552 100644 --- a/src/main/resources/assets/cubliminal/lang/en_us.json +++ b/src/main/resources/assets/cubliminal/lang/en_us.json @@ -3,7 +3,6 @@ "key.cubliminal.noclip": "Noclip", "item.cubliminal.yellow_wallpaper": "Yellow Wallpaper", "item.cubliminal.crimson_wallpaper": "Crimson Wallpaper", - "item.cubliminal.bacteria_spawn_egg": "Bacteria Spawn Egg", "item.cubliminal.almond_water": "Almond Water", "item.cubliminal.wooden_plank": "Wooden Plank", "item.cubliminal.nailed_bat": "Nailed Bat", @@ -25,7 +24,7 @@ "block.cubliminal.gabbro": "Gabbro", "block.cubliminal.mold": "Mold", "block.cubliminal.smoke_detector": "Smoke Detector", - "block.cubliminal.electrical_plug": "Electrical Plug", + "block.cubliminal.socket": "Socket", "block.cubliminal.two_long_spruce_table": "Spruce Table", "block.cubliminal.spruce_chair": "Spruce Chair", "block.cubliminal.computer": "Computer", @@ -54,16 +53,12 @@ "advancements.backrooms.enter_the_lobby.description": "Enter the parallel reality of The Backrooms", "advancements.backrooms.enter_manila_room.title": "Man-made oasis", "advancements.backrooms.enter_manila_room.description": "Make your way to the Manila Room and save yourself from madness", - "entity.cubliminal.bacteria": "Bacteria", "effect.cubliminal.paranoia": "Paranoia", - "subtitle.entity.cubliminal.bacteria_step": "Heavy steps", - "subtitle.entity.cubliminal.bacteria_idle": "Distant moan", - "subtitle.entity.cubliminal.bacteria_scream": "Bacteria screams", "subtitle.noclipping": "Null", "subtitle.block.sink_open": "Squeak", "subtitle.block.sink_ambient": "Open water source", "text.autoconfig.cubliminal.title": "Cubliminal", "text.autoconfig.cubliminal.option.allowNoClip": "Toggle no-clip key", "text.autoconfig.cubliminal.option.crouchingNoClippingResetsCooldown": "Crouching + nocliping resets the noclip cooldown", - "text.autoconfig.cubliminal.option.disableAggressiveGraphics": "Disable any sort of abrupt changes in graphics" + "text.autoconfig.cubliminal.option.disableAggressiveGraphics": "Disable abrupt changes in graphics" } diff --git a/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents0.json b/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents0.json new file mode 100644 index 0000000..604da4e --- /dev/null +++ b/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents0.json @@ -0,0 +1,22 @@ +{ + "ambientocclusion": false, + "texture_size": [32, 32], + "textures": { + "0": "cubliminal:block/jumbled_documents0c", + "particle": "cubliminal:block/jumbled_documents0c" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 1, 16], + "faces": { + "north": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "east": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "south": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "west": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 8, 0, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents1.json b/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents1.json new file mode 100644 index 0000000..48acf63 --- /dev/null +++ b/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents1.json @@ -0,0 +1,23 @@ +{ + "ambientocclusion": false, + "texture_size": [32, 32], + "textures": { + "0": "cubliminal:block/jumbled_documents1a", + "particle": "cubliminal:block/jumbled_documents1a" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 1, 16], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "east": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "south": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "west": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 8, 0, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents2.json b/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents2.json new file mode 100644 index 0000000..68f9d6c --- /dev/null +++ b/src/main/resources/assets/cubliminal/models/block/jumbled_documents/jumbled_documents2.json @@ -0,0 +1,23 @@ +{ + "ambientocclusion": false, + "texture_size": [32, 32], + "textures": { + "0": "cubliminal:block/jumbled_documents2b", + "particle": "cubliminal:block/jumbled_documents2b" + }, + "elements": [ + { + "from": [0, 1, 0], + "to": [16, 1, 16], + "rotation": {"angle": 22.5, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "east": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "south": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "west": {"uv": [0, 0, 8, 0], "texture": "#missing"}, + "up": {"uv": [8, 8, 0, 0], "texture": "#0"}, + "down": {"uv": [8, 8, 0, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/cubliminal/models/block/electrical_plug.json b/src/main/resources/assets/cubliminal/models/block/socket.json similarity index 86% rename from src/main/resources/assets/cubliminal/models/block/electrical_plug.json rename to src/main/resources/assets/cubliminal/models/block/socket.json index 7fa93b6..3638642 100644 --- a/src/main/resources/assets/cubliminal/models/block/electrical_plug.json +++ b/src/main/resources/assets/cubliminal/models/block/socket.json @@ -2,8 +2,8 @@ "parent": "block/cube_all", "texture_size": [32, 32], "textures": { - "1": "cubliminal:block/electrical_plug", - "particle": "cubliminal:block/electrical_plug" + "1": "cubliminal:block/socket", + "particle": "cubliminal:block/socket" }, "elements": [ { diff --git a/src/main/resources/assets/cubliminal/models/item/electrical_plug.json b/src/main/resources/assets/cubliminal/models/item/electrical_plug.json deleted file mode 100644 index 9639da7..0000000 --- a/src/main/resources/assets/cubliminal/models/item/electrical_plug.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "cubliminal:block/electrical_plug" -} diff --git a/src/main/resources/assets/cubliminal/models/item/socket.json b/src/main/resources/assets/cubliminal/models/item/socket.json new file mode 100644 index 0000000..797eea1 --- /dev/null +++ b/src/main/resources/assets/cubliminal/models/item/socket.json @@ -0,0 +1,3 @@ +{ + "parent": "cubliminal:block/socket" +} diff --git a/src/main/resources/assets/cubliminal/sounds.json b/src/main/resources/assets/cubliminal/sounds.json index f12f47c..d2cd165 100644 --- a/src/main/resources/assets/cubliminal/sounds.json +++ b/src/main/resources/assets/cubliminal/sounds.json @@ -26,49 +26,6 @@ } ] }, - "entity.bacteria.step": { - "category": "hostile", - "sounds": [ - { - "name": "cubliminal:entity/bacteria_step", - "stream": false - } - ], - "subtitle": "subtitle.entity.cubliminal.bacteria_step" - }, - "entity.bacteria.ambient": { - "category": "hostile", - "sounds": [ - { - "name": "cubliminal:entity/bacteria_idle1" - }, - { - "name": "cubliminal:entity/bacteria_idle2" - }, - { - "name": "cubliminal:entity/bacteria_idle3" - } - ], - "subtitle": "subtitle.entity.cubliminal.bacteria_idle" - }, - "entity.bacteria.chase": { - "category": "hostile", - "sounds": [ - { - "name": "cubliminal:entity/bacteria_chase" - } - ], - "subtitle": "subtitle.entity.cubliminal.bacteria_scream" - }, - "entity.bacteria.kill": { - "category": "hostile", - "sounds": [ - { - "name": "cubliminal:entity/bacteria_kill" - } - ], - "subtitle": "subtitle.entity.cubliminal.bacteria_scream" - }, "heartbeat": { "category": "player", "sounds": [ diff --git a/src/main/resources/assets/cubliminal/sounds/ambience/ambientredrooms.ogg b/src/main/resources/assets/cubliminal/sounds/ambience/ambientredrooms.ogg index 47e7a6e..974bf5c 100644 Binary files a/src/main/resources/assets/cubliminal/sounds/ambience/ambientredrooms.ogg and b/src/main/resources/assets/cubliminal/sounds/ambience/ambientredrooms.ogg differ diff --git a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_chase.ogg b/src/main/resources/assets/cubliminal/sounds/entity/bacteria_chase.ogg deleted file mode 100644 index 713b1df..0000000 Binary files a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_chase.ogg and /dev/null differ diff --git a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle1.ogg b/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle1.ogg deleted file mode 100644 index 177fcd2..0000000 Binary files a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle1.ogg and /dev/null differ diff --git a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle2.ogg b/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle2.ogg deleted file mode 100644 index fe849ca..0000000 Binary files a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle2.ogg and /dev/null differ diff --git a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle3.ogg b/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle3.ogg deleted file mode 100644 index bee4ca0..0000000 Binary files a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_idle3.ogg and /dev/null differ diff --git a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_kill.ogg b/src/main/resources/assets/cubliminal/sounds/entity/bacteria_kill.ogg deleted file mode 100644 index e7c6d04..0000000 Binary files a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_kill.ogg and /dev/null differ diff --git a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_step.ogg b/src/main/resources/assets/cubliminal/sounds/entity/bacteria_step.ogg deleted file mode 100644 index 9d5051b..0000000 Binary files a/src/main/resources/assets/cubliminal/sounds/entity/bacteria_step.ogg and /dev/null differ diff --git a/src/main/resources/assets/cubliminal/textures/block/electrical_plug.png b/src/main/resources/assets/cubliminal/textures/block/socket.png similarity index 100% rename from src/main/resources/assets/cubliminal/textures/block/electrical_plug.png rename to src/main/resources/assets/cubliminal/textures/block/socket.png diff --git a/src/main/resources/data/cubliminal/advancements/recipes/building_blocks/electrical_plug.json b/src/main/resources/data/cubliminal/advancements/recipes/building_blocks/socket.json similarity index 87% rename from src/main/resources/data/cubliminal/advancements/recipes/building_blocks/electrical_plug.json rename to src/main/resources/data/cubliminal/advancements/recipes/building_blocks/socket.json index d82c01c..b1bd356 100644 --- a/src/main/resources/data/cubliminal/advancements/recipes/building_blocks/electrical_plug.json +++ b/src/main/resources/data/cubliminal/advancements/recipes/building_blocks/socket.json @@ -15,7 +15,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "cubliminal:electrical_plug" + "recipe": "cubliminal:socket" }, "trigger": "minecraft:recipe_unlocked" } @@ -28,7 +28,7 @@ ], "rewards": { "recipes": [ - "cubliminal:electrical_plug" + "cubliminal:socket" ] }, "sends_telemetry_event": false diff --git a/src/main/resources/data/cubliminal/loot_tables/blocks/electrical_plug.json b/src/main/resources/data/cubliminal/loot_tables/blocks/socket.json similarity index 74% rename from src/main/resources/data/cubliminal/loot_tables/blocks/electrical_plug.json rename to src/main/resources/data/cubliminal/loot_tables/blocks/socket.json index f901038..e4522f4 100644 --- a/src/main/resources/data/cubliminal/loot_tables/blocks/electrical_plug.json +++ b/src/main/resources/data/cubliminal/loot_tables/blocks/socket.json @@ -11,11 +11,11 @@ "entries": [ { "type": "minecraft:item", - "name": "cubliminal:electrical_plug" + "name": "cubliminal:socket" } ], "rolls": 1.0 } ], - "random_sequence": "cubliminal:blocks/electrical_plug" + "random_sequence": "cubliminal:blocks/socket" } \ No newline at end of file diff --git a/src/main/resources/data/cubliminal/recipes/electrical_plug.json b/src/main/resources/data/cubliminal/recipes/socket.json similarity index 87% rename from src/main/resources/data/cubliminal/recipes/electrical_plug.json rename to src/main/resources/data/cubliminal/recipes/socket.json index f7db889..ee16a9f 100644 --- a/src/main/resources/data/cubliminal/recipes/electrical_plug.json +++ b/src/main/resources/data/cubliminal/recipes/socket.json @@ -14,7 +14,7 @@ ], "result": { "count": 2, - "item": "cubliminal:electrical_plug" + "item": "cubliminal:socket" }, "show_notification": true } \ No newline at end of file diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0column/0column_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0column/0column_1.nbt index e4ccc69..e0768e1 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0column/0column_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0column/0column_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corner/0corner_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corner/0corner_1.nbt index 3629925..128f877 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corner/0corner_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corner/0corner_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corridor/0corridor_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corridor/0corridor_1.nbt index 0126d6c..df2c308 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corridor/0corridor_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0corridor/0corridor_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0thickwall/0thickwall_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0thickwall/0thickwall_1.nbt index eb60a02..b2926fa 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0thickwall/0thickwall_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0thickwall/0thickwall_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_1.nbt index bc705c4..7000f1d 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_2.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_2.nbt index 855dd3c..6cfc78b 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_2.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0tinywall/0tinywall_2.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_1.nbt index 5504c19..f3ebf7c 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_2.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_2.nbt index 25a7c0f..f1d5cdc 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_2.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0twowalls/0twowalls_2.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0wall/0wall_1.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0wall/0wall_1.nbt index 733e0f9..07fb0c5 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0wall/0wall_1.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/0wall/0wall_1.nbt differ diff --git a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/special/special_3.nbt b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/special/special_3.nbt index 3ba2db2..24fc2ed 100644 Binary files a/src/main/resources/data/cubliminal/structures/nbt/the_lobby/special/special_3.nbt and b/src/main/resources/data/cubliminal/structures/nbt/the_lobby/special/special_3.nbt differ diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index fea451b..5b3e8aa 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -6,7 +6,7 @@ "cubliminal:deco_fluorescent_light", "cubliminal:fused_fluorescent_light", "cubliminal:smoke_detector", - "cubliminal:electrical_plug", + "cubliminal:socket", "cubliminal:emergency_exit_door_0", "cubliminal:exit_sign", "cubliminal:sink", diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json index 296ba1a..56deac0 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -8,7 +8,7 @@ "cubliminal:deco_fluorescent_light", "cubliminal:fused_fluorescent_light", "cubliminal:smoke_detector", - "cubliminal:electrical_plug", + "cubliminal:socket", "cubliminal:emergency_exit_door_0", "cubliminal:exit_sign" ]