diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelBullet.java b/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelBullet.java deleted file mode 100644 index 27038eb5d..000000000 --- a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelBullet.java +++ /dev/null @@ -1,52 +0,0 @@ -package net.mcreator.superbwarfare.client.model.entity; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.ModUtils; -import net.minecraft.client.model.EntityModel; -import net.minecraft.client.model.geom.ModelLayerLocation; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; - -// Made with Blockbench 4.9.4 -// Exported for Minecraft version 1.17 or later with Mojang mappings -// Paste this class into your mod and generate all required imports -public class ModelBullet extends EntityModel { - // This layer location should be baked with EntityRendererProvider.Context in - // the entity renderer and passed into this model's constructor - public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "modelbullet"), "main"); - public final ModelPart bone; - - public ModelBullet(ModelPart root) { - this.bone = root.getChild("bone"); - } - - public static LayerDefinition createBodyLayer() { - MeshDefinition meshdefinition = new MeshDefinition(); - PartDefinition partdefinition = meshdefinition.getRoot(); - - PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offset(0.0F, 8.0F, 0.0F)); - - PartDefinition bone2 = bone.addOrReplaceChild("bone2", CubeListBuilder.create().texOffs(0, 0).addBox(-1.4142F, -92.5F, -1.2071F, 0.0F, 15.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(-2.1213F, 8.5F, 0.0F)); - - PartDefinition cube_r1 = bone2.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-0.5F, 0.0F, -0.5F, 1.0F, 0.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.4142F, -92.1F, -0.7071F, 0.0F, 0.7854F, 0.0F)); - - PartDefinition cube_r2 = bone2.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 0).addBox(0.0F, -7.5F, -0.5F, 0.0F, 15.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.4142F, -85.0F, -0.7071F, 0.0F, -2.0944F, 0.0F)); - - PartDefinition cube_r3 = bone2.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(0, 0).addBox(0.0F, -7.5F, -0.5F, 0.0F, 15.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.4142F, -85.0F, -0.7071F, 0.0F, -1.0472F, 0.0F)); - - return LayerDefinition.create(meshdefinition, 16, 16); - } - - @Override - public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - } - - @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelClaymore.java b/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelClaymore.java deleted file mode 100644 index bd14d60b8..000000000 --- a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelClaymore.java +++ /dev/null @@ -1,56 +0,0 @@ -package net.mcreator.superbwarfare.client.model.entity; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.ModUtils; -import net.minecraft.client.model.EntityModel; -import net.minecraft.client.model.geom.ModelLayerLocation; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; - -// Made with Blockbench 4.9.3 -// Exported for Minecraft version 1.17 or later with Mojang mappings -// Paste this class into your mod and generate all required imports -public class ModelClaymore extends EntityModel { - // This layer location should be baked with EntityRendererProvider.Context in - // the entity renderer and passed into this model's constructor - public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "modelclaymore"), "main"); - public final ModelPart claymore; - - public ModelClaymore(ModelPart root) { - this.claymore = root.getChild("claymore"); - } - - public static LayerDefinition createBodyLayer() { - MeshDefinition meshdefinition = new MeshDefinition(); - PartDefinition partdefinition = meshdefinition.getRoot(); - PartDefinition claymore = partdefinition.addOrReplaceChild("claymore", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); - PartDefinition bone = claymore.addOrReplaceChild("bone", - CubeListBuilder.create().texOffs(0, 0).addBox(-3.5F, -7.75F, -0.5F, 7.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(0, 14).addBox(-2.0F, -8.0F, 0.0F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(14, 7) - .addBox(2.0F, -8.75F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(6, 7).addBox(-3.0F, -8.75F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 3.1416F, 0.0F)); - PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(8, 7).addBox(-1.5F, -6.0F, -0.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(4.3118F, -1.75F, -0.4598F, 0.0F, 0.3927F, 0.0F)); - PartDefinition cube_r2 = bone.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 7).addBox(0.5F, -6.0F, -1.5F, 2.0F, 5.0F, 2.0F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-5.6184F, -1.75F, 0.0814F, 0.0F, -0.3927F, 0.0F)); - PartDefinition cube_r3 = bone.addOrReplaceChild("cube_r3", - CubeListBuilder.create().texOffs(12, 13).addBox(0.0F, -0.75F, -0.5F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(0, 15).addBox(6.0F, -0.75F, -0.5F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-3.0F, -2.6F, 0.3F, -0.7854F, 0.0F, 0.0F)); - PartDefinition cube_r4 = bone.addOrReplaceChild("cube_r4", - CubeListBuilder.create().texOffs(10, 13).addBox(0.0F, -0.5F, -0.25F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)).texOffs(14, 13).addBox(6.0F, -0.5F, -0.25F, 0.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(-3.0F, -2.6F, 0.3F, 0.7854F, 0.0F, 0.0F)); - return LayerDefinition.create(meshdefinition, 32, 32); - } - - @Override - public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - } - - @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - claymore.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelMissile.java b/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelMissile.java deleted file mode 100644 index aadc9b54c..000000000 --- a/src/main/java/net/mcreator/superbwarfare/client/model/entity/ModelMissile.java +++ /dev/null @@ -1,48 +0,0 @@ -package net.mcreator.superbwarfare.client.model.entity; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.ModUtils; -import net.minecraft.client.model.EntityModel; -import net.minecraft.client.model.geom.ModelLayerLocation; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; - -// Made with Blockbench 4.9.2 -// Exported for Minecraft version 1.17 or later with Mojang mappings -// Paste this class into your mod and generate all required imports -public class ModelMissile extends EntityModel { - // This layer location should be baked with EntityRendererProvider.Context in - // the entity renderer and passed into this model's constructor - public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation(ModUtils.MODID, "modelmissile"), "main"); - public final ModelPart bone; - - public ModelMissile(ModelPart root) { - this.bone = root.getChild("bone"); - } - - public static LayerDefinition createBodyLayer() { - MeshDefinition meshdefinition = new MeshDefinition(); - PartDefinition partdefinition = meshdefinition.getRoot(); - PartDefinition bone = partdefinition.addOrReplaceChild("bone", - CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -34.0F, -1.0F, 2.0F, 18.0F, 2.0F, new CubeDeformation(0.0F)).texOffs(8, 8).addBox(-0.5F, -21.0F, -2.0F, 1.0F, 4.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(14, 4) - .addBox(-0.5F, -32.0F, -2.0F, 1.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(8, 0).addBox(-0.5F, -36.0F, -0.5F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), - PartPose.offset(0.0F, 24.0F, 0.0F)); - PartDefinition cube_r1 = bone.addOrReplaceChild("cube_r1", - CubeListBuilder.create().texOffs(14, 12).addBox(-0.5F, -3.0F, -2.0F, 1.0F, 2.0F, 4.0F, new CubeDeformation(0.0F)).texOffs(8, 0).addBox(-0.5F, 8.0F, -2.0F, 1.0F, 4.0F, 4.0F, new CubeDeformation(0.0F)), - PartPose.offsetAndRotation(0.0F, -29.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - return LayerDefinition.create(meshdefinition, 32, 32); - } - - @Override - public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - } - - @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ClaymoreRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ClaymoreRenderer.java index f2189034b..f61fbabcf 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ClaymoreRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ClaymoreRenderer.java @@ -2,12 +2,14 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.math.Axis; import net.mcreator.superbwarfare.entity.ClaymoreEntity; import net.mcreator.superbwarfare.entity.model.ClaymoreModel; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; @@ -31,6 +33,14 @@ public class ClaymoreRenderer extends GeoEntityRenderer { super.preRender(poseStack, entity, model, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, red, green, blue, alpha); } + @Override + public void render(ClaymoreEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { + poseStack.pushPose(); + poseStack.mulPose(Axis.YP.rotationDegrees(90 - Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); + super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); + poseStack.popPose(); + } + @Override protected float getDeathMaxRotation(ClaymoreEntity entityLivingBaseIn) { return 0.0F; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/FragRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/FragRenderer.java deleted file mode 100644 index f0a8f8914..000000000 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/FragRenderer.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.mcreator.superbwarfare.client.renderer.entity; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Axis; -import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.client.model.entity.ModelBullet; -import net.mcreator.superbwarfare.entity.FragEntity; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.entity.EntityRenderer; -import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.Mth; - -public class FragRenderer extends EntityRenderer { - private static final ResourceLocation TEXTURE = new ResourceLocation(ModUtils.MODID, "textures/entity/bullet_tex.png"); - private final ModelBullet model; - - public FragRenderer(EntityRendererProvider.Context context) { - super(context); - model = new ModelBullet<>(context.bakeLayer(ModelBullet.LAYER_LOCATION)); - } - - protected int getBlockLightLevel(FragEntity pEntity, BlockPos pPos) { - return 15; - } - - @Override - public void render(FragEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) { - VertexConsumer vb = bufferIn.getBuffer(RenderType.eyes(this.getTextureLocation(entityIn))); - poseStack.pushPose(); - poseStack.mulPose(Axis.YP.rotationDegrees(Mth.lerp(partialTicks, entityIn.yRotO, entityIn.getYRot()) - 90)); - poseStack.mulPose(Axis.ZP.rotationDegrees(90 + Mth.lerp(partialTicks, entityIn.xRotO, entityIn.getXRot()))); - model.renderToBuffer(poseStack, vb, packedLightIn, OverlayTexture.NO_OVERLAY, 1, 1, 1, 0.0625f); - poseStack.popPose(); - super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn); - } - - @Override - public ResourceLocation getTextureLocation(FragEntity entity) { - return TEXTURE; - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java index b528b0aa4..363032eb0 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java @@ -6,74 +6,61 @@ import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; -import net.minecraft.core.registries.Registries; -import net.minecraft.nbt.CompoundTag; +import net.minecraft.core.Direction; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.*; -import net.minecraft.world.entity.ai.attributes.AttributeSupplier; -import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.projectile.ThrownPotion; +import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PlayMessages; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; -import software.bernie.geckolib.core.animation.AnimationController; -import software.bernie.geckolib.core.animation.AnimationState; -import software.bernie.geckolib.core.animation.RawAnimation; -import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.Comparator; -// TODO 重写阔剑地雷 -@Mod.EventBusSubscriber -public class ClaymoreEntity extends TamableAnimal implements GeoEntity, AnimatedEntity { - public static final EntityDataAccessor SHOOT = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.BOOLEAN); +public class ClaymoreEntity extends ThrowableItemProjectile implements GeoEntity, AnimatedEntity{ public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.STRING); - private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + public static final EntityDataAccessor ROT_Y = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.FLOAT); + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public String animationProcedure = "empty"; - public ClaymoreEntity(PlayMessages.SpawnEntity packet, Level world) { - this(ModEntities.CLAYMORE.get(), world); + public ClaymoreEntity(EntityType type, Level world) { + super(type, world); } - public ClaymoreEntity(EntityType type, Level world) { - super(type, world); - xpReward = 0; - setNoAi(false); - setPersistenceRequired(); + public ClaymoreEntity(EntityType type, LivingEntity entity, Level world) { + super(type, entity, world); + } + + public ClaymoreEntity(LivingEntity entity, Level level) { + super(ModEntities.CLAYMORE.get(), entity, level); + } + + public ClaymoreEntity(PlayMessages.SpawnEntity spawnEntity, Level level) { + this(ModEntities.CLAYMORE.get(), level); } @Override protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(SHOOT, false); - this.entityData.define(ANIMATION, "undefined"); + this.entityData.define(ROT_Y, 0f); + } + + public void setRotY(float rotY) { + this.entityData.set(ROT_Y, rotY); } @Override @@ -82,130 +69,51 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity, Animated } @Override - protected void registerGoals() { - super.registerGoals(); - + protected Item getDefaultItem() { + return ModItems.CLAYMORE_MINE.get(); } @Override - public MobType getMobType() { - return super.getMobType(); + public boolean shouldRenderAtSqrDistance(double pDistance) { + return true; } @Override - public boolean removeWhenFarAway(double distanceToClosestPlayer) { - return super.removeWhenFarAway(distanceToClosestPlayer); - } - - @Override - public boolean hurt(DamageSource source, float amount) { - if (source.is(DamageTypes.IN_FIRE)) - return false; - if (source.getDirectEntity() instanceof ThrownPotion || source.getDirectEntity() instanceof AreaEffectCloud) - return false; - if (source.is(DamageTypes.FALL)) - return false; - if (source.is(DamageTypes.CACTUS)) - return false; - if (source.is(DamageTypes.DROWN)) - return false; - if (source.is(DamageTypes.LIGHTNING_BOLT)) - return false; - if (source.is(DamageTypes.EXPLOSION)) - return false; - if (source.is(DamageTypes.DRAGON_BREATH)) - return false; - if (source.is(DamageTypes.WITHER)) - return false; - if (source.is(DamageTypes.WITHER_SKULL)) - return false; - return super.hurt(source, amount); - } - - @Override - public void die(DamageSource source) { - super.die(source); - - if (level() instanceof ServerLevel) { - destoryExplode(); - this.discard(); + protected void onHit(HitResult result) { + switch (result.getType()) { + case BLOCK: + BlockHitResult blockResult = (BlockHitResult) result; + this.bounce(blockResult.getDirection()); + break; + case ENTITY: + this.bounce(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite()); + this.setDeltaMovement(this.getDeltaMovement().multiply(0.25, 1.0, 0.25)); + break; + default: + break; } } - private void destoryExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 15f, - this.getX(), this.getY(), this.getZ(), 7.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - - @Override - public void addAdditionalSaveData(CompoundTag compound) { - super.addAdditionalSaveData(compound); - } - - @Override - public void readAdditionalSaveData(CompoundTag compound) { - super.readAdditionalSaveData(compound); - } - - @Override - public InteractionResult mobInteract(Player player, InteractionHand hand) { - ItemStack itemstack = player.getItemInHand(hand); - InteractionResult retval = InteractionResult.sidedSuccess(this.level().isClientSide()); - Item item = itemstack.getItem(); - if (itemstack.getItem() instanceof SpawnEggItem) { - retval = super.mobInteract(player, hand); - } else if (this.level().isClientSide()) { - retval = (this.isTame() && this.isOwnedBy(player) || this.isFood(itemstack)) ? InteractionResult.sidedSuccess(this.level().isClientSide()) : InteractionResult.PASS; - } else { - if (this.isTame()) { - if (this.isOwnedBy(player)) { - if (item.isEdible() && this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) { - this.usePlayerItem(player, hand, itemstack); - this.heal((float) item.getFoodProperties().getNutrition()); - retval = InteractionResult.sidedSuccess(this.level().isClientSide()); - } else if (this.isFood(itemstack) && this.getHealth() < this.getMaxHealth()) { - this.usePlayerItem(player, hand, itemstack); - this.heal(4); - retval = InteractionResult.sidedSuccess(this.level().isClientSide()); - } else { - retval = super.mobInteract(player, hand); - } + private void bounce(Direction direction) { + switch (direction.getAxis()) { + case X: + this.setDeltaMovement(this.getDeltaMovement().multiply(-0.5, 0.75, 0.75)); + break; + case Y: + this.setDeltaMovement(this.getDeltaMovement().multiply(0.75, -0.01, 0.75)); + if (this.getDeltaMovement().y() < this.getGravity()) { + this.setDeltaMovement(this.getDeltaMovement().multiply(1, 0, 1)); } - } else if (this.isFood(itemstack)) { - this.usePlayerItem(player, hand, itemstack); - if (this.random.nextInt(3) == 0 && !net.minecraftforge.event.ForgeEventFactory.onAnimalTame(this, player)) { - this.tame(player); - this.level().broadcastEntityEvent(this, (byte) 7); - } else { - this.level().broadcastEntityEvent(this, (byte) 6); - } - this.setPersistenceRequired(); - retval = InteractionResult.sidedSuccess(this.level().isClientSide()); - } else { - retval = super.mobInteract(player, hand); - if (retval == InteractionResult.SUCCESS || retval == InteractionResult.CONSUME) - this.setPersistenceRequired(); - } + break; + case Z: + this.setDeltaMovement(this.getDeltaMovement().multiply(0.75, 0.75, -0.5)); + break; } - - if (this.isOwnedBy(player) && player.isShiftKeyDown()) { - if (!this.level().isClientSide()) this.discard(); - ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.CLAYMORE_MINE.get())); - } - - return retval; } @Override - public void baseTick() { - super.baseTick(); - var data = this.getPersistentData(); + public void tick() { + super.tick(); var level = this.level(); var x = this.getX(); var y = this.getY(); @@ -215,15 +123,11 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity, Animated if (!this.level().isClientSide()) this.discard(); } - this.removeAllEffects(); - this.clearFire(); - - if (this.tickCount >= 40) { + if (this.tickCount >= 20) { final Vec3 center = new Vec3(x + 1.5 * this.getLookAngle().x, y + 1.5 * this.getLookAngle().y, z + 1.5 * this.getLookAngle().z); for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(2.5 / 2d), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) { var condition = this.getOwner() != target && target instanceof LivingEntity - && !(target instanceof ClaymoreEntity) && !(target instanceof TargetEntity) && !(target instanceof Player player && (player.isCreative() || player.isSpectator())) && (!this.isAlliedTo(target) || target.getTeam() == null || target.getTeam().getName().equals("TDM")) @@ -249,104 +153,26 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity, Animated private void triggerExplode(Entity target) { CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeMineDamage(this.level().registryAccess(), this.getOwner()), 40f, - target.getX(), target.getY(), target.getZ(), 4f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); + ModDamageTypes.causeMineDamage(this.level().registryAccess(), this.getOwner()), 80f, + target.getX(), target.getY(), target.getZ(), 6f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); explosion.explode(); net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); explosion.finalizeExplosion(false); - for (int index0 = 0; index0 < 250; index0++) { - fragShoot(); - } } - - public void fragShoot() { - if (!this.level().isClientSide()) { - FragEntity frag = new FragEntity(this.getOwner(), level()).setPosition0(this.position()); - - frag.setPos(this.getX(), this.getEyeY() + 0.1, this.getZ()); - frag.shoot(this.getLookAngle().x, this.getLookAngle().y + 0.5f, this.getLookAngle().z, 7, - 60); - this.level().addFreshEntity(frag); - } + @Override + protected void updateRotation() { + this.setXRot(0); + this.setYRot(this.entityData.get(ROT_Y)); } - + @Override public EntityDimensions getDimensions(Pose p_33597_) { return super.getDimensions(p_33597_).scale((float) 0.5); } @Override - public AgeableMob getBreedOffspring(ServerLevel serverWorld, AgeableMob ageable) { - ClaymoreEntity retval = ModEntities.CLAYMORE.get().create(serverWorld); - if (retval != null) { - retval.finalizeSpawn(serverWorld, serverWorld.getCurrentDifficultyAt(retval.blockPosition()), MobSpawnType.BREEDING, null, null); - } - return retval; - } - - @Override - public boolean isFood(ItemStack stack) { - return false; - } - - @Override - public boolean isPushable() { - return false; - } - - @Override - protected void doPush(Entity entityIn) { - } - - @Override - protected void pushEntities() { - } - - @Override - public void aiStep() { - super.aiStep(); - this.updateSwingTime(); - } - - public static void init() { - } - - public static AttributeSupplier.Builder createAttributes() { - return Mob.createMobAttributes() - .add(Attributes.MOVEMENT_SPEED, 0) - .add(Attributes.MAX_HEALTH, 20) - .add(Attributes.ARMOR, 0) - .add(Attributes.ATTACK_DAMAGE, 0) - .add(Attributes.FOLLOW_RANGE, 16) - .add(Attributes.KNOCKBACK_RESISTANCE, 1); - } - - private PlayState movementPredicate(AnimationState event) { - if (this.animationProcedure.equals("empty")) { - return event.setAndContinue(RawAnimation.begin().thenLoop("animation.claymore.idle")); - } - return PlayState.STOP; - } - - private PlayState procedurePredicate(AnimationState event) { - if (!animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { - event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure)); - if (event.getController().getAnimationState() == AnimationController.State.STOPPED) { - this.animationProcedure = "empty"; - event.getController().forceAnimationReset(); - } - } else if (animationProcedure.equals("empty")) { - return PlayState.STOP; - } - return PlayState.CONTINUE; - } - - @Override - protected void tickDeath() { - ++this.deathTime; - if (this.deathTime == 1) { - this.remove(ClaymoreEntity.RemovalReason.KILLED); - } + protected float getGravity() { + return 0.07F; } public String getSyncedAnimation() { @@ -364,39 +190,10 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity, Animated @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { - data.add(new AnimationController<>(this, "movement", 4, this::movementPredicate)); - data.add(new AnimationController<>(this, "procedure", 4, this::procedurePredicate)); } @Override public AnimatableInstanceCache getAnimatableInstanceCache() { return this.cache; } - - @SubscribeEvent - public static void onEntityAttacked(LivingAttackEvent event) { - var damagesource = event.getSource(); - var entity = event.getEntity(); - if (damagesource == null || entity == null) return; - - var sourceentity = damagesource.getEntity(); - if (sourceentity == null) return; - - if (entity instanceof ClaymoreEntity tamEnt && tamEnt.getOwner() == sourceentity) { - if (tamEnt.getOwner() instanceof Player player && player.isCreative()) { - ClaymoreEntity claymore = (ClaymoreEntity) entity; - if (damagesource.is(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("superbwarfare:deleted_mod_element")))) { - entity.setYRot(sourceentity.getYRot()); - entity.setXRot(entity.getXRot()); - entity.setYBodyRot(entity.getYRot()); - entity.setYHeadRot(entity.getYRot()); - entity.yRotO = entity.getYRot(); - entity.xRotO = entity.getXRot(); - claymore.yBodyRotO = claymore.getYRot(); - claymore.yHeadRotO = claymore.getYRot(); - } - event.setCanceled(true); - } - } - } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/FragEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/FragEntity.java deleted file mode 100644 index 8ab8d3e2e..000000000 --- a/src/main/java/net/mcreator/superbwarfare/entity/FragEntity.java +++ /dev/null @@ -1,101 +0,0 @@ -package net.mcreator.superbwarfare.entity; - -import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.init.ModDamageTypes; -import net.mcreator.superbwarfare.init.ModEntities; -import net.mcreator.superbwarfare.init.ModItems; -import net.mcreator.superbwarfare.init.ModSounds; -import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; -import net.minecraft.core.BlockPos; -import net.minecraft.network.protocol.Packet; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundSource; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.projectile.ThrowableItemProjectile; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.BellBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.EntityHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.network.NetworkHooks; -import net.minecraftforge.network.PacketDistributor; -import net.minecraftforge.network.PlayMessages; - -public class FragEntity extends ThrowableItemProjectile { - private Vec3 position0; - - public FragEntity(EntityType type, Level world) { - super(type, world); - } - - public FragEntity(LivingEntity entity, Level level) { - super(ModEntities.FRAG.get(), entity, level); - } - - public FragEntity(PlayMessages.SpawnEntity spawnEntity, Level level) { - this(ModEntities.FRAG.get(), level); - } - - public FragEntity setPosition0(Vec3 position0) { - this.position0 = position0; - return this; - } - - @Override - public Packet getAddEntityPacket() { - return NetworkHooks.getEntitySpawningPacket(this); - } - - @Override - protected Item getDefaultItem() { - return ModItems.GRENADE_40MM.get(); - } - - @Override - protected void onHitEntity(EntityHitResult result) { - Entity entity = result.getEntity(); - - if (entity instanceof LivingEntity) { - entity.invulnerableTime = 0; - } - - if (this.getOwner() != null && this.getOwner() instanceof LivingEntity living) { - if (!living.level().isClientSide() && living instanceof ServerPlayer player) { - living.level().playSound(null, living.blockPosition(), ModSounds.INDICATION.get(), SoundSource.VOICE, 1, 1); - ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5)); - - entity.hurt(ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), - 5 - (float) Mth.clamp(0.1 * this.position0.distanceTo(entity.position()) - * (entity instanceof LivingEntity livingEntity ? livingEntity.getMaxHealth() / 100 + 1 : 1), 0, 4.5)); - } - } - - this.discard(); - } - - @Override - public void onHitBlock(BlockHitResult blockHitResult) { - super.onHitBlock(blockHitResult); - BlockPos resultPos = blockHitResult.getBlockPos(); - BlockState state = this.level().getBlockState(resultPos); - if (state.getBlock() instanceof BellBlock bell) { - bell.attemptToRing(this.level(), resultPos, blockHitResult.getDirection()); - } - - this.discard(); - } - - @Override - public void tick() { - super.tick(); - if (this.tickCount > 4 || this.isInWater()) { - this.discard(); - } - } -} diff --git a/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java index 641f94b66..153ede1bb 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java @@ -139,9 +139,6 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { explosion.finalizeExplosion(false); ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - for (int index0 = 0; index0 < 100; index0++) { - fragShoot(); - } } private void causeEntityHitExplode(Entity entity) { @@ -154,15 +151,4 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); this.discard(); } - - public void fragShoot() { - if (!this.level().isClientSide()) { - FragEntity frag = new FragEntity((LivingEntity) this.getOwner(), level()).setPosition0(this.position()); - - frag.setPos(this.getX(), this.getEyeY() + 0.1, this.getZ()); - frag.shoot(this.getLookAngle().x, this.getLookAngle().y, this.getLookAngle().z, 5, - 360); - this.level().addFreshEntity(frag); - } - } } diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java b/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java index 51edc483d..021b0547a 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java @@ -25,7 +25,7 @@ public class ModEntities { EntityType.Builder.of(SenpaiEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true).setTrackingRange(1024).setUpdateInterval(3).setCustomClientFactory(SenpaiEntity::new) .sized(0.6f, 2f)); public static final RegistryObject> CLAYMORE = register("claymore", - EntityType.Builder.of(ClaymoreEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(ClaymoreEntity::new).fireImmune().sized(0.5f, 0.5f)); + EntityType.Builder.of(ClaymoreEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(ClaymoreEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> MK_42 = register("mk_42", EntityType.Builder.of(Mk42Entity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(5124).setUpdateInterval(3).setCustomClientFactory(Mk42Entity::new).fireImmune().sized(3.4f, 3.5f)); public static final RegistryObject> MLE_1934 = register("mle_1934", @@ -39,9 +39,6 @@ public class ModEntities { .setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> GUN_GRENADE = register("projectile_gun_grenade", EntityType.Builder.of(GunGrenadeEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(GunGrenadeEntity::new).sized(0.5f, 0.5f)); - - public static final RegistryObject> FRAG = register("projectile_frag", - EntityType.Builder.of(FragEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).setCustomClientFactory(FragEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> RPG_ROCKET = register("projectile_rpg_rocket", EntityType.Builder.of(RpgRocketEntity::new, MobCategory.MISC).setShouldReceiveVelocityUpdates(true).setTrackingRange(512).setUpdateInterval(1).setCustomClientFactory(RpgRocketEntity::new).sized(0.5f, 0.5f)); public static final RegistryObject> MORTAR_SHELL = register("projectile_mortar_shell", @@ -72,7 +69,6 @@ public class ModEntities { event.put(TARGET.get(), TargetEntity.createAttributes().build()); event.put(MORTAR.get(), MortarEntity.createAttributes().build()); event.put(SENPAI.get(), SenpaiEntity.createAttributes().build()); - event.put(CLAYMORE.get(), ClaymoreEntity.createAttributes().build()); event.put(MK_42.get(), Mk42Entity.createAttributes().build()); event.put(DRONE.get(), DroneEntity.createAttributes().build()); event.put(MLE_1934.get(), Mle1934Entity.createAttributes().build()); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModEntityRenderers.java b/src/main/java/net/mcreator/superbwarfare/init/ModEntityRenderers.java index e4c641227..702938b9d 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModEntityRenderers.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModEntityRenderers.java @@ -21,7 +21,6 @@ public class ModEntityRenderers { event.registerEntityRenderer(ModEntities.CANNON_SHELL.get(), CannonShellRenderer::new); event.registerEntityRenderer(ModEntities.BOCEK_ARROW.get(), BocekArrowRenderer::new); event.registerEntityRenderer(ModEntities.PROJECTILE.get(), ProjectileEntityRenderer::new); - event.registerEntityRenderer(ModEntities.FRAG.get(), FragRenderer::new); event.registerEntityRenderer(ModEntities.MK_42.get(), Mk42Renderer::new); event.registerEntityRenderer(ModEntities.DRONE.get(), DroneRenderer::new); event.registerEntityRenderer(ModEntities.HAND_GRENADE_ENTITY.get(), HandGrenadeEntityRenderer::new); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModModels.java b/src/main/java/net/mcreator/superbwarfare/init/ModModels.java index cc9799686..4e7a40159 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModModels.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModModels.java @@ -10,12 +10,10 @@ import net.minecraftforge.fml.common.Mod; public class ModModels { @SubscribeEvent public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) { - event.registerLayerDefinition(ModelBullet.LAYER_LOCATION, ModelBullet::createBodyLayer); event.registerLayerDefinition(ModelMortarShell.LAYER_LOCATION, ModelMortarShell::createBodyLayer); event.registerLayerDefinition(ModelTaserRod.LAYER_LOCATION, ModelTaserRod::createBodyLayer); event.registerLayerDefinition(ModelGrenade.LAYER_LOCATION, ModelGrenade::createBodyLayer); event.registerLayerDefinition(ModelBocekArrow.LAYER_LOCATION, ModelBocekArrow::createBodyLayer); - event.registerLayerDefinition(ModelClaymore.LAYER_LOCATION, ModelClaymore::createBodyLayer); event.registerLayerDefinition(ModelHandGrenade.LAYER_LOCATION, ModelHandGrenade::createBodyLayer); } } diff --git a/src/main/java/net/mcreator/superbwarfare/item/ClaymoreMine.java b/src/main/java/net/mcreator/superbwarfare/item/ClaymoreMine.java index d6f65ac28..64861f7e6 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/ClaymoreMine.java +++ b/src/main/java/net/mcreator/superbwarfare/item/ClaymoreMine.java @@ -1,12 +1,8 @@ package net.mcreator.superbwarfare.item; import net.mcreator.superbwarfare.entity.ClaymoreEntity; -import net.mcreator.superbwarfare.init.ModEntities; -import net.minecraft.server.level.ServerLevel; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.MobSpawnType; -import net.minecraft.world.entity.TamableAnimal; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -21,16 +17,11 @@ public class ClaymoreMine extends Item { public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { ItemStack stack = player.getItemInHand(hand); - if (world instanceof ServerLevel serverLevel) { - TamableAnimal entityToSpawn = new ClaymoreEntity(ModEntities.CLAYMORE.get(), serverLevel); - entityToSpawn.moveTo(player.getX(), player.getY() + 1.1, player.getZ(), player.getYRot(), player.getXRot()); - entityToSpawn.setYBodyRot(player.getYRot()); - entityToSpawn.setYHeadRot(player.getYRot()); - entityToSpawn.setDeltaMovement((0.5 * player.getLookAngle().x), (0.5 * player.getLookAngle().y), (0.5 * player.getLookAngle().z)); - entityToSpawn.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(entityToSpawn.blockPosition()), MobSpawnType.MOB_SUMMONED, null, null); - entityToSpawn.tame(player); - serverLevel.addFreshEntity(entityToSpawn); - } + ClaymoreEntity claymore = new ClaymoreEntity(player, world); + claymore.setPos(player.getX(), player.getEyeY() - 0.3, player.getZ()); + claymore.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, 0.2f,0); + claymore.setRotY(player.getYRot()); + world.addFreshEntity(claymore); player.getCooldowns().addCooldown(this, 20); stack.shrink(1); diff --git a/src/main/java/net/mcreator/superbwarfare/tools/ParticleTool.java b/src/main/java/net/mcreator/superbwarfare/tools/ParticleTool.java index dcaa475dc..eb3f1b33d 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/ParticleTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/ParticleTool.java @@ -2,7 +2,6 @@ package net.mcreator.superbwarfare.tools; import net.mcreator.superbwarfare.init.ModParticleTypes; import net.mcreator.superbwarfare.init.ModSounds; -import net.minecraft.world.level.block.Blocks; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleTypes; @@ -10,6 +9,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; import net.minecraft.world.phys.Vec3; public class ParticleTool { @@ -48,16 +48,16 @@ public class ParticleTool { if (level instanceof ServerLevel serverLevel) { if ((level.getBlockState(BlockPos.containing(x, y, z))).getBlock() == Blocks.WATER) { - sendParticle(serverLevel, ParticleTypes.CLOUD, x, y + 3, z, 100, 1, 3, 1, 0.01, true); - sendParticle(serverLevel, ParticleTypes.CLOUD, x, y + 3, z, 150, 2, 1, 2, 0.01, true); - sendParticle(serverLevel, ParticleTypes.FALLING_WATER, x, y + 3, z, 400, 1.5, 4, 1.5, 1, true); - sendParticle(serverLevel, ParticleTypes.BUBBLE_COLUMN_UP, x, y, z, 300, 3, 0.5, 3, 0.1, true); + sendParticle(serverLevel, ParticleTypes.CLOUD, x, y + 3, z, 20, 1, 3, 1, 0.01, true); + sendParticle(serverLevel, ParticleTypes.CLOUD, x, y + 3, z, 30, 2, 1, 2, 0.01, true); + sendParticle(serverLevel, ParticleTypes.FALLING_WATER, x, y + 3, z, 50, 1.5, 4, 1.5, 1, true); + sendParticle(serverLevel, ParticleTypes.BUBBLE_COLUMN_UP, x, y, z, 60, 3, 0.5, 3, 0.1, true); } sendParticle(serverLevel, ParticleTypes.EXPLOSION, x, y + 1, z, 5, 0.7, 0.7, 0.7, 1, true); - sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, x, y, z, 80, 0.4, 1, 0.4, 0.02, true); - sendParticle(serverLevel, ParticleTypes.LARGE_SMOKE, x, y + 1, z, 80, 0.4, 1, 0.4, 0.02, true); - sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, x, y, z, 80, 2, 0.001, 2, 0.01, true); - sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), x, y, z, 80, 0, 0, 0, 0.2, true); + sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, x, y, z, 20, 0.2, 0.7, 0.2, 0.02, true); + sendParticle(serverLevel, ParticleTypes.LARGE_SMOKE, x, y + 1, z, 10, 0.4, 1, 0.4, 0.02, true); + sendParticle(serverLevel, ParticleTypes.CAMPFIRE_COSY_SMOKE, x, y, z, 20, 1, 0.001, 1, 0.01, true); + sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), x, y, z, 30, 0, 0, 0, 0.2, true); } } diff --git a/src/main/resources/assets/superbwarfare/textures/entity/bullet_tex.png b/src/main/resources/assets/superbwarfare/textures/entity/bullet_tex.png deleted file mode 100644 index 0aff417a6..000000000 Binary files a/src/main/resources/assets/superbwarfare/textures/entity/bullet_tex.png and /dev/null differ diff --git a/src/main/resources/assets/superbwarfare/textures/entity/trail.png b/src/main/resources/assets/superbwarfare/textures/entity/trail.png deleted file mode 100644 index 42d36b361..000000000 Binary files a/src/main/resources/assets/superbwarfare/textures/entity/trail.png and /dev/null differ diff --git a/src/main/resources/data/superbwarfare/recipes/high_energy_explosives_crafting.json b/src/main/resources/data/superbwarfare/recipes/high_energy_explosives_crafting.json index 2a2f96389..6128f293f 100644 --- a/src/main/resources/data/superbwarfare/recipes/high_energy_explosives_crafting.json +++ b/src/main/resources/data/superbwarfare/recipes/high_energy_explosives_crafting.json @@ -11,7 +11,7 @@ "item": "minecraft:gunpowder" }, "b": { - "item": "minecraft:netherrack" + "item": "minecraft:glowstone_dust" }, "c": { "item": "minecraft:blaze_powder"