From cc21d6b93508847e5a4a62707bf66fbb56adf9d6 Mon Sep 17 00:00:00 2001 From: Jenny Date: Mon, 27 Jan 2025 19:05:37 +0100 Subject: [PATCH] homing tnt texture & homing tnt particle change & moved tnt/arrow particle spawning into tick() logic --- .../enhancedexplosives/blocks/blocks.java | 2 +- .../datagen/ModBlockStateProvider.java | 18 ++++++++++-------- .../entities/arrows/baseArrow.java | 2 +- .../entities/client/BaseTNTRenderer.java | 4 ---- .../entities/client/TNTArrowRenderer.java | 5 +---- .../entities/tnt/basePrimedTNT.java | 3 +++ .../entities/tnt/homingPrimedTNT.java | 13 +++++++++++-- .../textures/block/tnt_homing_bottom.png | Bin 0 -> 108 bytes .../textures/block/tnt_homing_side.png | Bin 0 -> 250 bytes .../textures/block/tnt_homing_top.png | Bin 0 -> 248 bytes 10 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/assets/enhancedexplosives/textures/block/tnt_homing_bottom.png create mode 100644 src/main/resources/assets/enhancedexplosives/textures/block/tnt_homing_side.png create mode 100644 src/main/resources/assets/enhancedexplosives/textures/block/tnt_homing_top.png diff --git a/src/main/java/com/jenny/enhancedexplosives/blocks/blocks.java b/src/main/java/com/jenny/enhancedexplosives/blocks/blocks.java index 8ae455f..8c0dd9c 100644 --- a/src/main/java/com/jenny/enhancedexplosives/blocks/blocks.java +++ b/src/main/java/com/jenny/enhancedexplosives/blocks/blocks.java @@ -17,7 +17,7 @@ public class blocks { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID); public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); - public static final RegistryObject TNT_8 = BLOCKS.register("tnt_8", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE), 8.0f, 80)); + public static final RegistryObject TNT_8 = BLOCKS.register("tnt_8", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE), 8.0f, 80)); public static final RegistryObject TNT_8_ITEM = ITEMS.register("tnt_8", () -> new BlockItemTooltip(TNT_8.get(), new Item.Properties())); public static final RegistryObject TNT_16 = BLOCKS.register("tnt_16", () -> new strongerTNTBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_RED), 16.0f, 80)); diff --git a/src/main/java/com/jenny/enhancedexplosives/datagen/ModBlockStateProvider.java b/src/main/java/com/jenny/enhancedexplosives/datagen/ModBlockStateProvider.java index 519dc1d..13e7cdb 100644 --- a/src/main/java/com/jenny/enhancedexplosives/datagen/ModBlockStateProvider.java +++ b/src/main/java/com/jenny/enhancedexplosives/datagen/ModBlockStateProvider.java @@ -21,13 +21,14 @@ public class ModBlockStateProvider extends BlockStateProvider { @Override protected void registerStatesAndModels() { - sideTopBottom(blocks.TNT_8.get()); - sideTopBottom(blocks.TNT_16.get()); - sideTopBottom(blocks.TNT_32.get()); - sideTopBottom(blocks.TNT_64.get()); - sideTopBottom(blocks.TNT_128.get()); - sideTopBottom(blocks.TNT_ENDER.get()); - sideTopBottom(blocks.TNT_CLAYMORE.get()); + sideTopBottom(blocks.TNT_8); + sideTopBottom(blocks.TNT_16); + sideTopBottom(blocks.TNT_32); + sideTopBottom(blocks.TNT_64); + sideTopBottom(blocks.TNT_128); + sideTopBottom(blocks.TNT_ENDER); + sideTopBottom(blocks.TNT_CLAYMORE); + sideTopBottom(blocks.TNT_HOMING); blockWithItem(blocks.TNT_BLACK_HOLE); } @@ -60,7 +61,8 @@ public class ModBlockStateProvider extends BlockStateProvider { return new ResourceLocation(rl.getNamespace(), rl.getPath() + suffix); } - public void sideTopBottom(Block block) { + public void sideTopBottom(RegistryObject blockRegistryObject) { + Block block = blockRegistryObject.get(); ModelFile model = models().cubeBottomTop(name(block), extend(blockTexture(block), "_side"), extend(blockTexture(block), "_bottom"), extend(blockTexture(block), "_top")); this.getVariantBuilder(block).forAllStates(blockState -> ConfiguredModel.builder().modelFile(model).build()); simpleBlockItem(block, model); diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/baseArrow.java b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/baseArrow.java index f1c92d3..cfef4e6 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/baseArrow.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/baseArrow.java @@ -104,7 +104,7 @@ public class baseArrow extends AbstractArrow { this.makeParticle(1); } } else { - this.makeParticle(2); + spawnParticles(0); } this.tick++; } else if (this.inGround && this.inGroundTime != 0 && !this.effects.isEmpty() && this.inGroundTime >= 600) { diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/client/BaseTNTRenderer.java b/src/main/java/com/jenny/enhancedexplosives/entities/client/BaseTNTRenderer.java index d7fc905..84a5893 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/client/BaseTNTRenderer.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/client/BaseTNTRenderer.java @@ -35,10 +35,6 @@ public class BaseTNTRenderer extends EntityRenderer float f1 = 1.0F + f * 0.3F; pPoseStack.scale(f1, f1, f1); } - if (ConfigClient.tntParticles) { - pEntity.spawnParticles(pPartialTicks); - } - pEntity.spawnParticles(pPartialTicks); pPoseStack.mulPose(Axis.YP.rotationDegrees(-90.0F)); pPoseStack.translate(-0.5F, -0.5F, 0.5F); pPoseStack.mulPose(Axis.YP.rotationDegrees(90.0F)); diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/client/TNTArrowRenderer.java b/src/main/java/com/jenny/enhancedexplosives/entities/client/TNTArrowRenderer.java index 23c1ea2..24a42ac 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/client/TNTArrowRenderer.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/client/TNTArrowRenderer.java @@ -17,7 +17,6 @@ import net.minecraft.world.level.block.Blocks; import org.jetbrains.annotations.NotNull; public class TNTArrowRenderer extends EntityRenderer { - private final boolean renderParticles = ConfigClient.arrowParticles; private final BlockRenderDispatcher blockRenderer; public TNTArrowRenderer(EntityRendererProvider.Context pContext) { @@ -27,6 +26,7 @@ public class TNTArrowRenderer extends EntityRenderer { } public void render(@NotNull baseArrow pEntity, float pEntityYaw, float pPartialTicks, PoseStack pPoseStack, @NotNull MultiBufferSource pBuffer, int pPackedLight) { + pPoseStack.pushPose(); pPoseStack.translate(0.0F, 0.5F, 0.0F); pPoseStack.scale(0.5f, 0.5f, 0.5f); @@ -34,9 +34,6 @@ public class TNTArrowRenderer extends EntityRenderer { pPoseStack.mulPose(Axis.YP.rotationDegrees(-90.0F)); pPoseStack.translate(-0.5F, -0.5F, 0.5F); pPoseStack.mulPose(Axis.YP.rotationDegrees(90.0F)); - if (renderParticles) { - pEntity.spawnParticles(pPartialTicks); - } TntMinecartRenderer.renderWhiteSolidBlock(this.blockRenderer, Blocks.TNT.defaultBlockState(), pPoseStack, pBuffer, pPackedLight, i / 5 % 2 == 0); pPoseStack.popPose(); super.render(pEntity, pEntityYaw, pPartialTicks, pPoseStack, pBuffer, pPackedLight); diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/tnt/basePrimedTNT.java b/src/main/java/com/jenny/enhancedexplosives/entities/tnt/basePrimedTNT.java index a83a0b3..d70af11 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/tnt/basePrimedTNT.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/tnt/basePrimedTNT.java @@ -65,6 +65,9 @@ public abstract class basePrimedTNT extends Entity implements TraceableEntity { } public void tick() { + if (level().isClientSide) { + spawnParticles(0); + } if (!this.isNoGravity()) { this.setDeltaMovement(this.getDeltaMovement().add(0.0D, -0.04D, 0.0D)); } diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/tnt/homingPrimedTNT.java b/src/main/java/com/jenny/enhancedexplosives/entities/tnt/homingPrimedTNT.java index 61d018d..fe6910c 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/tnt/homingPrimedTNT.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/tnt/homingPrimedTNT.java @@ -1,8 +1,10 @@ package com.jenny.enhancedexplosives.entities.tnt; +import com.jenny.enhancedexplosives.blocks.blocks; import com.jenny.enhancedexplosives.entities.entities; import com.jenny.enhancedexplosives.config.ConfigClient; +import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.syncher.EntityDataAccessor; @@ -11,6 +13,7 @@ import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.world.entity.*; import net.minecraft.world.entity.ai.targeting.TargetingConditions; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; @@ -94,8 +97,14 @@ public class homingPrimedTNT extends basePrimedTNT { @Override public void spawnParticles(float partialTicks) { - for (int i = 1; i <= ConfigClient.calcPCount(30); i++) { - level().addParticle(ParticleTypes.FALLING_OBSIDIAN_TEAR, getX(), getY(), getZ(), this.getDeltaMovement().x, this.getDeltaMovement().y, this.getDeltaMovement().z); + Vec3 pos = getPosition(partialTicks); + for (int i = 1; i <= ConfigClient.calcPCount(1); i++) { + level().addParticle(ParticleTypes.FLAME, pos.x, pos.y, pos.z, 0, 0, 0); } } + + @Override + public Block renderBlock() { + return blocks.TNT_HOMING.get(); + } } diff --git a/src/main/resources/assets/enhancedexplosives/textures/block/tnt_homing_bottom.png b/src/main/resources/assets/enhancedexplosives/textures/block/tnt_homing_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..53f78d706be13723d917a81fa7adaa1df810e911 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`#-1*YAr_~TZ)mLg_kY_y5sBs- zOFl_D^z7SbXE1Mt_K*1?c2C(FIJ^uFXGrw49n6quFl2aFFMGe?{?a2r?F^o-elF{r G5}E+HVPx#v`IukR5*>rlCcVdKoCTqVw1u$q6tchK)@oTO`R{!pQN%%AqUYQHj)pR6ry;A z!eQaS!Oh<6-YeE?9 zpe)O*@YD}?Pm=1owt`8LSV3dVGQpCJG2?Hu1XFB)^XoH9Ff@)eEhtUXrDsW!_uO9u zP{s`ar*DLd5AwsWN2#KIRUQ5In-~;TXcb)jAG%Slri*W3Q~&?~07*qoM6N<$ffMIfEy45kyp|SOww&c`kZ=Z{V6JnrT*Uvj@D! z_&(j#13&`@n(=1n0h--FOa#%R6g9=m4&|dqUlJH^G{IjF*n`-_eQ}?L9xw%Q)ctc0 yR19~`=%(S+1K$JZj6C8Wi{yV{D