diff --git a/src/main/java/net/mcreator/target/client/renderer/BulletRenderer.java b/src/main/java/net/mcreator/target/client/renderer/BulletRenderer.java deleted file mode 100644 index 2fa8f12e3..000000000 --- a/src/main/java/net/mcreator/target/client/renderer/BulletRenderer.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.mcreator.target.client.renderer; - -import net.minecraft.util.Mth; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.client.renderer.entity.EntityRenderer; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.MultiBufferSource; - -import net.minecraft.client.renderer.entity.layers.RenderLayer; -import net.minecraft.client.renderer.entity.MobRenderer; -import net.minecraft.client.renderer.entity.LivingEntityRenderer; -import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.client.renderer.RenderType; - -import net.mcreator.target.entity.BulletEntity; -import net.mcreator.target.client.model.Modelbullet; - -import net.minecraft.core.BlockPos; - -import com.mojang.math.Axis; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.blaze3d.vertex.PoseStack; - -public class BulletRenderer extends EntityRenderer { - private static final ResourceLocation texture = new ResourceLocation("target:textures/entities/bullet_tex.png"); - private final Modelbullet model; - - public BulletRenderer(EntityRendererProvider.Context context) { - super(context); - model = new Modelbullet(context.bakeLayer(Modelbullet.LAYER_LOCATION)); - } - - protected int getBlockLightLevel(BulletEntity pEntity, BlockPos pPos) { - return 15; - } - - @Override - public void render(BulletEntity 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(BulletEntity entity) { - return texture; - } -} diff --git a/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java b/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java index 8a8e3c723..7d9aa078a 100644 --- a/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java +++ b/src/main/java/net/mcreator/target/entity/BocekarrowEntity.java @@ -2,20 +2,11 @@ package net.mcreator.target.entity; import net.minecraftforge.registries.ForgeRegistries; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementProgress; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.contents.TranslatableContents; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.block.*; import net.minecraft.world.phys.*; import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.IHeadshotBox; @@ -29,29 +20,22 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.BlockHitResult; - -import net.minecraft.sounds.SoundEvents; import net.minecraft.world.level.Level; import net.minecraft.world.item.Items; import net.minecraft.world.entity.projectile.ItemSupplier; import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.level.Level; import net.minecraft.world.item.ItemStack; import net.minecraft.util.RandomSource; import net.minecraft.sounds.SoundSource; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.Packet; -import net.minecraft.world.entity.player.Player; import net.mcreator.target.network.TargetModVariables; import java.util.Optional; -import net.mcreator.target.init.TargetModEntities; - @OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) public class BocekarrowEntity extends AbstractArrow implements ItemSupplier { public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW); diff --git a/src/main/java/net/mcreator/target/entity/BulletEntity.java b/src/main/java/net/mcreator/target/entity/BulletEntity.java deleted file mode 100644 index 067878e23..000000000 --- a/src/main/java/net/mcreator/target/entity/BulletEntity.java +++ /dev/null @@ -1,180 +0,0 @@ -package net.mcreator.target.entity; - -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementProgress; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.contents.TranslatableContents; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.block.*; -import net.minecraft.world.phys.*; -import net.mcreator.target.headshot.BoundingBoxManager; -import net.mcreator.target.headshot.IHeadshotBox; -import net.mcreator.target.init.TargetModEntities; - -import net.minecraftforge.network.PlayMessages; -import net.minecraftforge.network.NetworkHooks; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.api.distmarker.Dist; - -import net.minecraft.world.phys.EntityHitResult; -import net.minecraft.world.phys.BlockHitResult; - -import net.minecraft.world.phys.BlockHitResult; - -import net.minecraft.sounds.SoundEvents; -import net.minecraft.world.level.Level; -import net.minecraft.world.item.Items; -import net.minecraft.world.entity.projectile.ItemSupplier; -import net.minecraft.world.entity.projectile.AbstractArrow; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.level.Level; -import net.minecraft.world.item.ItemStack; -import net.minecraft.util.RandomSource; -import net.minecraft.sounds.SoundSource; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.network.protocol.Packet; -import net.minecraft.world.entity.player.Player; - -import net.mcreator.target.procedures.BullettestDanSheWuJiZhongFangKuaiShiProcedure; - -import net.mcreator.target.network.TargetModVariables; - -import java.util.Optional; - -@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class) -public class BulletEntity extends AbstractArrow implements ItemSupplier { - public static final ItemStack PROJECTILE_ITEM = new ItemStack(Blocks.AIR); - - public BulletEntity(PlayMessages.SpawnEntity packet, Level world) { - super(TargetModEntities.BULLET.get(), world); - } - - public BulletEntity(EntityType type, Level world) { - super(type, world); - } - - public BulletEntity(EntityType type, double x, double y, double z, Level world) { - super(type, x, y, z, world); - } - - public BulletEntity(EntityType type, LivingEntity entity, Level world) { - super(type, entity, world); - } - - @Override - public Packet getAddEntityPacket() { - return NetworkHooks.getEntitySpawningPacket(this); - } - - @Override - @OnlyIn(Dist.CLIENT) - public ItemStack getItem() { - return PROJECTILE_ITEM; - } - - @Override - protected ItemStack getPickupItem() { - return PROJECTILE_ITEM; - } - - @Override - protected void doPostHurtEffects(LivingEntity entity) { - super.doPostHurtEffects(entity); - entity.setArrowCount(entity.getArrowCount() - 1); - } - - @Override - public void tick() { - super.tick(); - if (this.inGround) - BullettestDanSheWuJiZhongFangKuaiShiProcedure.execute(this); - if(this.getOwner() instanceof LivingEntity living){ - if(this.tickCount >= (int)living.getMainHandItem().getOrCreateTag().getDouble("bulletlife")){ - this.discard(); - } - } - } - - @Override - public void onHitBlock(BlockHitResult blockHitResult) { - super.onHitBlock(blockHitResult); - } - - @Override - protected void onHitEntity(EntityHitResult result) { - final Vec3 position = this.position(); - Entity entity = result.getEntity(); - if(this.getOwner() instanceof LivingEntity living){ - double _setval = 25; - living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.hitind = _setval; - capability.syncPlayerVariables(living); - }); - Entity _ent = living; - if (!_ent.level().isClientSide() && _ent.getServer() != null) { - _ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, - _ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:indication voice @a ~ ~ ~ 1 1"); - } - } - if (entity instanceof LivingEntity livingEntity) { - entity.invulnerableTime = 0; - } - AABB boundingBox = entity.getBoundingBox(); - Vec3 startVec = this.position(); - Vec3 endVec = startVec.add(this.getDeltaMovement()); - Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null); - /* Check for headshot */ - boolean headshot = false; - if(entity instanceof LivingEntity) - { - IHeadshotBox headshotBox = (IHeadshotBox) BoundingBoxManager.getHeadshotBoxes(entity.getType()); - if(headshotBox != null) - { - AABB box = headshotBox.getHeadshotBox((LivingEntity) entity); - if(box != null) - { - box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z); - Optional headshotHitPos = box.clip(startVec, endVec); - if(!headshotHitPos.isPresent()) - { - box = box.inflate( 0.2, 0.2, 0.2); - headshotHitPos = box.clip(startVec, endVec); - } - if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) - { - hitPos = headshotHitPos.get(); - headshot = true; - } - if(headshot){ - if(this.getOwner() instanceof LivingEntity living){ - setBaseDamage(getBaseDamage() * (float)living.getMainHandItem().getOrCreateTag().getDouble("headshot")); - double _setval = 25; - living.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.headind = _setval; - capability.syncPlayerVariables(living); - }); - Entity _ent = living; - if (!_ent.level().isClientSide() && _ent.getServer() != null) { - _ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, - _ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @a ~ ~ ~ 1 1"); - } - } - } - } - } - } - super.onHitEntity(result); - this.discard(); - - } -} diff --git a/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java b/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java index 287bdc0ff..767455e2d 100644 --- a/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java +++ b/src/main/java/net/mcreator/target/entity/GunGrenadeEntity.java @@ -1,20 +1,10 @@ package net.mcreator.target.entity; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementProgress; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.contents.TranslatableContents; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.*; import net.minecraft.world.phys.*; import net.mcreator.target.headshot.BoundingBoxManager; @@ -26,25 +16,19 @@ import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.Dist; -import net.minecraft.sounds.SoundEvents; import net.minecraft.world.level.Level; -import net.minecraft.world.item.Items; import net.minecraft.world.entity.projectile.ItemSupplier; import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.level.Level; import net.minecraft.world.item.ItemStack; import net.minecraft.util.RandomSource; -import net.minecraft.sounds.SoundSource; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.Packet; -import net.minecraft.world.entity.player.Player; import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongShiTiShiProcedure; import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure; import net.mcreator.target.procedures.GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure; -import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.network.TargetModVariables; diff --git a/src/main/java/net/mcreator/target/entity/ProjectileEntity.java b/src/main/java/net/mcreator/target/entity/ProjectileEntity.java index 7518a3425..d4dd1301f 100644 --- a/src/main/java/net/mcreator/target/entity/ProjectileEntity.java +++ b/src/main/java/net/mcreator/target/entity/ProjectileEntity.java @@ -1,57 +1,24 @@ package net.mcreator.target.entity; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.util.Mth; + import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.BlockHitResult; - import net.minecraft.world.level.Level; - import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.mcreator.target.init.TargetCustomModEntities; -import net.mcreator.target.init.TargetModItems; - -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.block.*; import net.minecraft.world.phys.*; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.network.PlayMessages; -import net.minecraftforge.network.NetworkHooks; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.api.distmarker.Dist; - -import net.minecraft.world.phys.EntityHitResult; -import net.minecraft.world.phys.BlockHitResult; - -import net.minecraft.world.level.Level; -import net.minecraft.world.entity.projectile.ItemSupplier; -import net.minecraft.world.entity.projectile.AbstractArrow; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.item.ItemStack; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.network.protocol.Packet; - import net.mcreator.target.headshot.BoundingBoxManager; import net.mcreator.target.headshot.IHeadshotBox; -import net.mcreator.target.init.TargetModEntities; +import net.mcreator.target.init.TargetCustomModEntities; +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.procedures.ProjectileHitEntity; +import net.mcreator.target.procedures.ProjectileHeadshotEntity; -import net.mcreator.target.procedures.BullettestDanSheWuJiZhongFangKuaiShiProcedure; -import net.mcreator.target.network.TargetModVariables; - -import java.util.Iterator; import java.util.Optional; public class ProjectileEntity extends ThrowableItemProjectile { @@ -78,14 +45,46 @@ public class ProjectileEntity extends ThrowableItemProjectile { @Override protected void onHitEntity(EntityHitResult pResult) { - super.onHitEntity(pResult); + + final Vec3 position = this.position(); Entity entity = pResult.getEntity(); if (entity instanceof LivingEntity livingEntity) { - livingEntity.hurt(this.damageSources().thrown(this, this.getOwner() instanceof LivingEntity living ? living : null), this.damage); + entity.invulnerableTime = 0; } + AABB boundingBox = entity.getBoundingBox(); + Vec3 startVec = this.position(); + Vec3 endVec = startVec.add(this.getDeltaMovement()); + Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null); + /* Check for headshot */ + boolean headshot = false; + if(entity instanceof LivingEntity) + { + IHeadshotBox headshotBox = (IHeadshotBox) BoundingBoxManager.getHeadshotBoxes(entity.getType()); + if(headshotBox != null) + { + AABB box = headshotBox.getHeadshotBox((LivingEntity) entity); + if(box != null) + { + box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z); + Optional headshotHitPos = box.clip(startVec, endVec); + if(!headshotHitPos.isPresent()) + { + box = box.inflate( 0.2, 0.2, 0.2); + headshotHitPos = box.clip(startVec, endVec); + } + if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) + { + hitPos = headshotHitPos.get(); + headshot = true; + } + if(headshot){ + ProjectileHeadshotEntity.execute(this.level(), pResult.getEntity(), this, this.getOwner()); + } else { + ProjectileHitEntity.execute(this.level(), pResult.getEntity(), this, this.getOwner()); - if (!this.level().isClientSide) { - this.discard(); + } + } + } } } diff --git a/src/main/java/net/mcreator/target/entity/RpgRocketEntity.java b/src/main/java/net/mcreator/target/entity/RpgRocketEntity.java index 43cdf2a05..b1c6f4ac6 100644 --- a/src/main/java/net/mcreator/target/entity/RpgRocketEntity.java +++ b/src/main/java/net/mcreator/target/entity/RpgRocketEntity.java @@ -1,20 +1,10 @@ package net.mcreator.target.entity; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementProgress; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.contents.TranslatableContents; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.*; import net.minecraft.world.phys.*; import net.mcreator.target.headshot.BoundingBoxManager; @@ -26,25 +16,19 @@ import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.Dist; -import net.minecraft.sounds.SoundEvents; import net.minecraft.world.level.Level; -import net.minecraft.world.item.Items; import net.minecraft.world.entity.projectile.ItemSupplier; import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.level.Level; import net.minecraft.world.item.ItemStack; import net.minecraft.util.RandomSource; -import net.minecraft.sounds.SoundSource; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.Packet; -import net.minecraft.world.entity.player.Player; import net.mcreator.target.procedures.RpgRocketDanSheWuJiZhongFangKuaiShiProcedure; import net.mcreator.target.procedures.RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure; import net.mcreator.target.procedures.RocketHitProcedure; -import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.network.TargetModVariables; diff --git a/src/main/java/net/mcreator/target/entity/Target1Entity.java b/src/main/java/net/mcreator/target/entity/Target1Entity.java index d2e8c0628..1e007faaa 100644 --- a/src/main/java/net/mcreator/target/entity/Target1Entity.java +++ b/src/main/java/net/mcreator/target/entity/Target1Entity.java @@ -233,7 +233,7 @@ public class Target1Entity extends PathfinderMob implements GeoEntity { public static AttributeSupplier.Builder createAttributes() { AttributeSupplier.Builder builder = Mob.createMobAttributes(); builder = builder.add(Attributes.MOVEMENT_SPEED, 0); - builder = builder.add(Attributes.MAX_HEALTH, 20); + builder = builder.add(Attributes.MAX_HEALTH, 100); builder = builder.add(Attributes.ARMOR, 0); builder = builder.add(Attributes.ATTACK_DAMAGE, 0); builder = builder.add(Attributes.FOLLOW_RANGE, 16); diff --git a/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java b/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java index 9de7e443e..9125a0bb0 100644 --- a/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java +++ b/src/main/java/net/mcreator/target/entity/TaserBulletProjectileEntity.java @@ -1,20 +1,10 @@ package net.mcreator.target.entity; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementProgress; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.language.I18n; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.contents.TranslatableContents; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.*; import net.minecraft.world.phys.*; import net.mcreator.target.headshot.BoundingBoxManager; @@ -27,28 +17,19 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.Dist; import net.minecraft.world.phys.EntityHitResult; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.BlockHitResult; - -import net.minecraft.sounds.SoundEvents; import net.minecraft.world.level.Level; -import net.minecraft.world.item.Items; import net.minecraft.world.entity.projectile.ItemSupplier; import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.level.Level; import net.minecraft.world.item.ItemStack; import net.minecraft.util.RandomSource; -import net.minecraft.sounds.SoundSource; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.Packet; -import net.minecraft.world.entity.player.Player; import net.mcreator.target.procedures.TaserBulletTouZhiWuFeiXingKeProcedure; import net.mcreator.target.procedures.TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure; -import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.network.TargetModVariables; diff --git a/src/main/java/net/mcreator/target/init/TargetCustomModEntities.java b/src/main/java/net/mcreator/target/init/TargetCustomModEntities.java index bf86b1eeb..3a937039b 100644 --- a/src/main/java/net/mcreator/target/init/TargetCustomModEntities.java +++ b/src/main/java/net/mcreator/target/init/TargetCustomModEntities.java @@ -7,14 +7,10 @@ package net.mcreator.target.init; import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.event.entity.EntityAttributeCreationEvent; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.Entity; import net.mcreator.target.entity.ProjectileEntity; @@ -26,6 +22,6 @@ public class TargetCustomModEntities { public static final RegistryObject> PROJECTILE = ENTITY_TYPES.register("projectile", - () -> EntityType.Builder.of(ProjectileEntity::new, MobCategory.MISC).sized(1.0f, 1.0f).build("projectile")); + () -> EntityType.Builder.of(ProjectileEntity::new, MobCategory.MISC).sized(0.5f, 0.5f).build("projectile")); } diff --git a/src/main/java/net/mcreator/target/init/TargetModEntities.java b/src/main/java/net/mcreator/target/init/TargetModEntities.java index 6468cf06c..e6a50b904 100644 --- a/src/main/java/net/mcreator/target/init/TargetModEntities.java +++ b/src/main/java/net/mcreator/target/init/TargetModEntities.java @@ -25,7 +25,6 @@ import net.mcreator.target.entity.MortarShellEntity; import net.mcreator.target.entity.MortarEntity; import net.mcreator.target.entity.GunGrenadeEntity; import net.mcreator.target.entity.ClaymoreEntity; -import net.mcreator.target.entity.BulletEntity; import net.mcreator.target.entity.BocekarrowEntity; import net.mcreator.target.TargetMod; @@ -49,8 +48,6 @@ public class TargetModEntities { EntityType.Builder.of(GunGrenadeEntity::new, MobCategory.MISC).setCustomClientFactory(GunGrenadeEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> TARGET = register("target", EntityType.Builder.of(TargetEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f)); - public static final RegistryObject> BULLET = register("projectile_bullet", - EntityType.Builder.of(BulletEntity::new, MobCategory.MISC).setCustomClientFactory(BulletEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> RPG_ROCKET = register("projectile_rpg_rocket", EntityType.Builder.of(RpgRocketEntity::new, MobCategory.MISC).setCustomClientFactory(RpgRocketEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); public static final RegistryObject> MORTAR_SHELL = register("projectile_mortar_shell", @@ -58,6 +55,7 @@ public class TargetModEntities { public static final RegistryObject> BOCEKARROW = register("projectile_bocekarrow", EntityType.Builder.of(BocekarrowEntity::new, MobCategory.MISC).setCustomClientFactory(BocekarrowEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f)); + private static RegistryObject> register(String registryname, EntityType.Builder entityTypeBuilder) { return REGISTRY.register(registryname, () -> (EntityType) entityTypeBuilder.build(registryname)); } diff --git a/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java b/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java index c7e6283e3..1a444baf0 100644 --- a/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java +++ b/src/main/java/net/mcreator/target/init/TargetModEntityRenderers.java @@ -1,7 +1,3 @@ - -/* - * MCreator note: This file will be REGENERATED on each build. - */ package net.mcreator.target.init; import net.minecraftforge.fml.common.Mod; @@ -18,7 +14,6 @@ import net.mcreator.target.client.renderer.MortarShellRenderer; import net.mcreator.target.client.renderer.MortarRenderer; import net.mcreator.target.client.renderer.GunGrenadeRenderer; import net.mcreator.target.client.renderer.ClaymoreRenderer; -import net.mcreator.target.client.renderer.BulletRenderer; import net.mcreator.target.client.renderer.BocekarrowRenderer; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) @@ -32,7 +27,6 @@ public class TargetModEntityRenderers { event.registerEntityRenderer(TargetModEntities.TASER_BULLET_PROJECTILE.get(), TaserBulletProjectileRenderer::new); event.registerEntityRenderer(TargetModEntities.GUN_GRENADE.get(), GunGrenadeRenderer::new); event.registerEntityRenderer(TargetModEntities.TARGET.get(), TargetRenderer::new); - event.registerEntityRenderer(TargetModEntities.BULLET.get(), BulletRenderer::new); event.registerEntityRenderer(TargetModEntities.RPG_ROCKET.get(), RpgRocketRenderer::new); event.registerEntityRenderer(TargetModEntities.MORTAR_SHELL.get(), MortarShellRenderer::new); event.registerEntityRenderer(TargetModEntities.BOCEKARROW.get(), BocekarrowRenderer::new); diff --git a/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java b/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java index 805800f27..63927c1d1 100644 --- a/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/BowlooseProcedure.java @@ -1,5 +1,6 @@ package net.mcreator.target.procedures; +import net.mcreator.target.entity.ProjectileEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.GameType; import net.minecraft.world.item.Items; @@ -18,7 +19,6 @@ import net.minecraft.client.Minecraft; import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModEntities; -import net.mcreator.target.entity.BulletEntity; import net.mcreator.target.entity.BocekarrowEntity; public class BowlooseProcedure { @@ -44,6 +44,8 @@ public class BowlooseProcedure { } if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get() && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("power") >= 6) { + (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().putDouble("speed", + ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("power"))); if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming == true) { { Entity _shootFrom = entity; @@ -89,24 +91,12 @@ public class BowlooseProcedure { } } else { for (int index0 = 0; index0 < 10; index0++) { - { - Entity _shootFrom = entity; - Level projectileLevel = _shootFrom.level(); - if (!projectileLevel.isClientSide()) { - Projectile _entityToSpawn = new Object() { - public Projectile getArrow(Level level, Entity shooter, float damage, int knockback) { - AbstractArrow entityToSpawn = new BulletEntity(TargetModEntities.BULLET.get(), level); - entityToSpawn.setOwner(shooter); - entityToSpawn.setBaseDamage(damage); - entityToSpawn.setKnockback(knockback); - entityToSpawn.setSilent(true); - return entityToSpawn; - } - }.getArrow(projectileLevel, entity, (float) (0.05 * (1 + 0.05 * usehand.getOrCreateTag().getDouble("level"))), 0); - _entityToSpawn.setPos(_shootFrom.getX(), _shootFrom.getEyeY() - 0.1, _shootFrom.getZ()); - _entityToSpawn.shoot(_shootFrom.getLookAngle().x, _shootFrom.getLookAngle().y, _shootFrom.getLookAngle().z, (float) (4 * power), 2); - projectileLevel.addFreshEntity(_entityToSpawn); - } + if (!entity.level().isClientSide() && entity instanceof LivingEntity living) { + ProjectileEntity projectile = new ProjectileEntity(entity.level(), living); + projectile.setOwner(living); + projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ()); + projectile.shoot(living.getLookAngle().x, living.getLookAngle().y, living.getLookAngle().z, (float) (4 * power),2); + entity.level().addFreshEntity(projectile); } } { diff --git a/src/main/java/net/mcreator/target/procedures/BulletfireNormalProcedure.java b/src/main/java/net/mcreator/target/procedures/BulletfireNormalProcedure.java index 04237151d..8a57e82f4 100644 --- a/src/main/java/net/mcreator/target/procedures/BulletfireNormalProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/BulletfireNormalProcedure.java @@ -40,14 +40,8 @@ public class BulletfireNormalProcedure { capability.syncPlayerVariables(entity); }); - if (usehand.getOrCreateTag().getDouble("level") >= 10) { - dam = usehand.getOrCreateTag().getDouble("damage") * (1 + 0.05 * (usehand.getOrCreateTag().getDouble("level") - 10)); - } else { - dam = usehand.getOrCreateTag().getDouble("damage"); - } - if (!entity.level().isClientSide() && entity instanceof LivingEntity living) { - ProjectileEntity projectile = new ProjectileEntity(entity.level(), living, (float) dam); + ProjectileEntity projectile = new ProjectileEntity(entity.level(), living); projectile.setOwner(living); projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ()); diff --git a/src/main/java/net/mcreator/target/procedures/DamageReplaceProcedure.java b/src/main/java/net/mcreator/target/procedures/DamageReplaceProcedure.java deleted file mode 100644 index 023a6da0b..000000000 --- a/src/main/java/net/mcreator/target/procedures/DamageReplaceProcedure.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.mcreator.target.procedures; - -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.event.entity.living.LivingAttackEvent; - -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.resources.ResourceKey; -import net.minecraft.core.registries.Registries; - -import net.mcreator.target.entity.BulletEntity; - -import javax.annotation.Nullable; - -@Mod.EventBusSubscriber -public class DamageReplaceProcedure { - @SubscribeEvent - public static void onEntityAttacked(LivingAttackEvent event) { - if (event != null && event.getEntity() != null) { - execute(event, event.getEntity().level(), event.getEntity(), event.getSource().getDirectEntity(), event.getSource().getEntity(), event.getAmount()); - } - } - - public static void execute(LevelAccessor world, Entity entity, Entity immediatesourceentity, Entity sourceentity, double amount) { - execute(null, world, entity, immediatesourceentity, sourceentity, amount); - } - - private static void execute(@Nullable Event event, LevelAccessor world, Entity entity, Entity immediatesourceentity, Entity sourceentity, double amount) { - if (entity == null || immediatesourceentity == null || sourceentity == null) - return; - if (immediatesourceentity instanceof BulletEntity && sourceentity instanceof Player) { - if (event != null && event.isCancelable()) { - event.setCanceled(true); - } - entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire"))), sourceentity), (float) amount); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/GunsDataProcedure.java b/src/main/java/net/mcreator/target/procedures/GunsDataProcedure.java index 7fbbed02d..2dcc29068 100644 --- a/src/main/java/net/mcreator/target/procedures/GunsDataProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/GunsDataProcedure.java @@ -43,7 +43,11 @@ public class GunsDataProcedure { itemstackiterator = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); if (itemstackiterator.is(ItemTags.create(new ResourceLocation("target:gun")))) { - + if (itemstackiterator.getOrCreateTag().getDouble("level") >= 10) { + itemstackiterator.getOrCreateTag().putDouble("damageadd", 1 + 0.05 * (itemstackiterator.getOrCreateTag().getDouble("level") - 10)); + } else { + itemstackiterator.getOrCreateTag().putDouble("damageadd", 1); + } if (itemstackiterator.getItem() == TargetModItems.SKS.get()) { itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1); itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25); @@ -52,8 +56,7 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.004); itemstackiterator.getOrCreateTag().putDouble("recoily", 0.015); itemstackiterator.getOrCreateTag().putDouble("damage", 9.5); - itemstackiterator.getOrCreateTag().putDouble("headshot", 1.75); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); + itemstackiterator.getOrCreateTag().putDouble("headshot", 2); itemstackiterator.getOrCreateTag().putDouble("velocity", 40); itemstackiterator.getOrCreateTag().putDouble("mag", 20); @@ -67,8 +70,7 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.0025); itemstackiterator.getOrCreateTag().putDouble("recoily", 0.012); itemstackiterator.getOrCreateTag().putDouble("damage", 8.5); - itemstackiterator.getOrCreateTag().putDouble("headshot", 1.75); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); + itemstackiterator.getOrCreateTag().putDouble("headshot", 2); itemstackiterator.getOrCreateTag().putDouble("velocity", 30); itemstackiterator.getOrCreateTag().putDouble("mag", 30); } @@ -84,7 +86,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.01); itemstackiterator.getOrCreateTag().putDouble("damage", 7); itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 40); itemstackiterator.getOrCreateTag().putDouble("mag", 55); itemstackiterator.getOrCreateTag().putDouble("firemode", 2); @@ -98,7 +99,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.022); itemstackiterator.getOrCreateTag().putDouble("damage", 18); itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 10); itemstackiterator.getOrCreateTag().putDouble("velocity", 60); itemstackiterator.getOrCreateTag().putDouble("mag", 8); @@ -112,7 +112,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.03); itemstackiterator.getOrCreateTag().putDouble("damage", 40); itemstackiterator.getOrCreateTag().putDouble("headshot", 3); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 50); itemstackiterator.getOrCreateTag().putDouble("mag", 1); } @@ -145,7 +144,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.026); itemstackiterator.getOrCreateTag().putDouble("damage", 2.5); itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 5); itemstackiterator.getOrCreateTag().putDouble("velocity", 15); itemstackiterator.getOrCreateTag().putDouble("mag", 2); } @@ -158,7 +156,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.013); itemstackiterator.getOrCreateTag().putDouble("damage", 28); itemstackiterator.getOrCreateTag().putDouble("headshot", 3); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 55); itemstackiterator.getOrCreateTag().putDouble("mag", 5); } @@ -182,7 +179,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.011); itemstackiterator.getOrCreateTag().putDouble("damage", 7); itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 45); itemstackiterator.getOrCreateTag().putDouble("mag", 30); } @@ -196,7 +192,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.007); itemstackiterator.getOrCreateTag().putDouble("damage", 1.5); itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 5); itemstackiterator.getOrCreateTag().putDouble("velocity", 16); itemstackiterator.getOrCreateTag().putDouble("mag", 25); } @@ -208,8 +203,7 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005); itemstackiterator.getOrCreateTag().putDouble("recoily", 0.003); itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 5); - itemstackiterator.getOrCreateTag().putDouble("damage", 9.5); + itemstackiterator.getOrCreateTag().putDouble("damage", 2.4); } if (itemstackiterator.getItem() == TargetModItems.HK_416.get()) { itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.3); @@ -221,7 +215,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.009); itemstackiterator.getOrCreateTag().putDouble("damage", 7.5); itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 45); itemstackiterator.getOrCreateTag().putDouble("mag", 30); } @@ -237,7 +230,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.012); itemstackiterator.getOrCreateTag().putDouble("damage", 8.75); itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 35); itemstackiterator.getOrCreateTag().putDouble("mag", 50); } @@ -252,7 +244,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.018); itemstackiterator.getOrCreateTag().putDouble("damage", 70); itemstackiterator.getOrCreateTag().putDouble("headshot", 3); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 40); itemstackiterator.getOrCreateTag().putDouble("mag", 4); } @@ -266,7 +257,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.004); itemstackiterator.getOrCreateTag().putDouble("damage", 4.5); itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 10); itemstackiterator.getOrCreateTag().putDouble("velocity", 22); itemstackiterator.getOrCreateTag().putDouble("mag", 33); } @@ -280,7 +270,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.005); itemstackiterator.getOrCreateTag().putDouble("damage", 8); itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 40); itemstackiterator.getOrCreateTag().putDouble("firemode", 2); } @@ -295,7 +284,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.014); itemstackiterator.getOrCreateTag().putDouble("damage", 12); itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 45); itemstackiterator.getOrCreateTag().putDouble("mag", 20); } @@ -308,8 +296,7 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.018); itemstackiterator.getOrCreateTag().putDouble("damage", 25); itemstackiterator.getOrCreateTag().putDouble("mag", 5); - itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); + itemstackiterator.getOrCreateTag().putDouble("headshot", 3); itemstackiterator.getOrCreateTag().putDouble("velocity", 50); } if (itemstackiterator.getItem() == TargetModItems.M_60.get()) { @@ -324,7 +311,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.014); itemstackiterator.getOrCreateTag().putDouble("damage", 9); itemstackiterator.getOrCreateTag().putDouble("headshot", 2); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 40); itemstackiterator.getOrCreateTag().putDouble("mag", 100); itemstackiterator.getOrCreateTag().putDouble("firemode", 2); @@ -338,7 +324,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.015); itemstackiterator.getOrCreateTag().putDouble("damage", 18); itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 50); itemstackiterator.getOrCreateTag().putDouble("mag", 10); } @@ -351,7 +336,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.011); itemstackiterator.getOrCreateTag().putDouble("damage", 16); itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 27); itemstackiterator.getOrCreateTag().putDouble("mag", 8); } @@ -364,7 +348,6 @@ public class GunsDataProcedure { itemstackiterator.getOrCreateTag().putDouble("recoily", 0.03); itemstackiterator.getOrCreateTag().putDouble("damage", 2); itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); - itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20); itemstackiterator.getOrCreateTag().putDouble("velocity", 20); itemstackiterator.getOrCreateTag().putDouble("mag", 8); } diff --git a/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java b/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java index cb16a7c6b..0ba770ea8 100644 --- a/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/GunsTipsProcedure.java @@ -36,20 +36,12 @@ public class GunsTipsProcedure { String firemode = ""; ItemStack usehand = ItemStack.EMPTY; if (itemstack.is(ItemTags.create(new ResourceLocation("target:gun")))) { - if (itemstack.getOrCreateTag().getDouble("level") <= 10) { - if (itemstack.getItem() == TargetModItems.BOCEK.get()) { - tooltip.add(Component.literal("\u00A7l\u00A77Damage:2.4*10/24")); - } else { - tooltip.add(Component.literal(("\u00A7l\u00A77Damage:" + new java.text.DecimalFormat("##.##").format(itemstack.getOrCreateTag().getDouble("damage") + itemstack.getOrCreateTag().getDouble("adddamage"))))); - } + if (itemstack.getItem() == TargetModItems.BOCEK.get()) { + tooltip.add(Component.literal(("\u00A7l\u00A77Damage:(" + new java.text.DecimalFormat("##.##").format(2.4 * itemstack.getOrCreateTag().getDouble("damageadd")) + ")*10/" + + new java.text.DecimalFormat("##.##").format(24 * itemstack.getOrCreateTag().getDouble("damageadd"))))); } else { - if (itemstack.getItem() == TargetModItems.BOCEK.get()) { - tooltip.add(Component.literal(("\u00A7l\u00A77Damage:(2.4" + " + " + new java.text.DecimalFormat("##.##").format(((itemstack.getOrCreateTag().getDouble("level") - 10) / 20) * 10) + ")*10/24" + " + " - + new java.text.DecimalFormat("##.##").format(((itemstack.getOrCreateTag().getDouble("level") - 10) / 20) * 24)))); - } else { - tooltip.add(Component.literal(("\u00A7l\u00A77Damage:" + new java.text.DecimalFormat("##.##").format(itemstack.getOrCreateTag().getDouble("damage") + itemstack.getOrCreateTag().getDouble("adddamage")) + " + " - + new java.text.DecimalFormat("##.##").format(((itemstack.getOrCreateTag().getDouble("level") - 10) / 20) * (itemstack.getOrCreateTag().getDouble("damage") + itemstack.getOrCreateTag().getDouble("adddamage")))))); - } + tooltip.add(Component.literal(("\u00A7l\u00A77Damage:" + + new java.text.DecimalFormat("##.##").format((itemstack.getOrCreateTag().getDouble("damage") + itemstack.getOrCreateTag().getDouble("adddamage")) * itemstack.getOrCreateTag().getDouble("damageadd"))))); } if (itemstack.getOrCreateTag().getDouble("level") < 4) { tooltip.add(Component.literal(("\u00A7f\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " " diff --git a/src/main/java/net/mcreator/target/procedures/ProjectileHeadshotEntity.java b/src/main/java/net/mcreator/target/procedures/ProjectileHeadshotEntity.java new file mode 100644 index 000000000..9f998d2b0 --- /dev/null +++ b/src/main/java/net/mcreator/target/procedures/ProjectileHeadshotEntity.java @@ -0,0 +1,50 @@ + +package net.mcreator.target.procedures; + +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.network.TargetModVariables; +import net.minecraft.commands.CommandSource; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.LevelAccessor; + +public class ProjectileHeadshotEntity { + public static void execute(LevelAccessor world, Entity entity, Entity immediatesourceentity, Entity sourceentity) { + if (entity == null || sourceentity == null) + return; + + ItemStack usehand = ItemStack.EMPTY; + double dam = 0; + usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); + { + Entity _ent = sourceentity; + if (!_ent.level().isClientSide() && _ent.getServer() != null) { + _ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, + _ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:headshot voice @s ~ ~ ~ 1 1"); + } + } + double _setval = 25; + sourceentity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.headind = _setval; + capability.syncPlayerVariables(sourceentity); + }); + + if ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get()) { + entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire"))), sourceentity), + (0.2f * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("speed"))) * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damageadd")) * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("headshot"))); + } else { + entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire"))), sourceentity), + ((float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("adddamage")) + (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damage"))) * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("headshot")) * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damageadd"))); + } + immediatesourceentity.discard(); + + } +} + diff --git a/src/main/java/net/mcreator/target/procedures/ProjectileHitEntity.java b/src/main/java/net/mcreator/target/procedures/ProjectileHitEntity.java new file mode 100644 index 000000000..09ec12fa6 --- /dev/null +++ b/src/main/java/net/mcreator/target/procedures/ProjectileHitEntity.java @@ -0,0 +1,46 @@ + +package net.mcreator.target.procedures; + +import net.mcreator.target.init.TargetModItems; +import net.mcreator.target.network.TargetModVariables; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.ResourceKey; +import net.minecraft.core.registries.Registries; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.CommandSource; + +public class ProjectileHitEntity { + public static void execute(LevelAccessor world, Entity entity, Entity immediatesourceentity, Entity sourceentity) { + if (entity == null || sourceentity == null) + return; + { + Entity _ent = sourceentity; + if (!_ent.level().isClientSide() && _ent.getServer() != null) { + _ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, + _ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "playsound target:indication voice @s ~ ~ ~ 1 1"); + } + } + double _setval = 25; + sourceentity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.hitind = _setval; + capability.syncPlayerVariables(sourceentity); + }); + + if ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get()) { + entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire"))), sourceentity), + (0.2f * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("speed"))) * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damageadd"))); + } else { + entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:gunfire"))), sourceentity), + ((float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("adddamage")) + (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damage"))) * (float) ((sourceentity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("damageadd"))); + } + immediatesourceentity.discard(); + + } +} + diff --git a/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java b/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java index da6fa5f63..e7a19c9f1 100644 --- a/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java @@ -1,10 +1,7 @@ package net.mcreator.target.procedures; -import net.minecraft.world.level.Level; import net.minecraft.world.level.GameType; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.entity.projectile.Projectile; -import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Entity; @@ -16,9 +13,6 @@ import net.minecraft.client.Minecraft; import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.init.TargetModEntities; -import net.mcreator.target.init.TargetModAttributes; -import net.mcreator.target.entity.BulletEntity; public class SentinelFireProcedure { public static void execute(Entity entity) { @@ -38,37 +32,6 @@ public class SentinelFireProcedure { usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY); if (usehand.getItem() == TargetModItems.SENTINEL.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(entity instanceof Player _plrCldCheck4 && _plrCldCheck4.getCooldowns().isOnCooldown(usehand.getItem())) && usehand.getOrCreateTag().getDouble("ammo") > 0) { - if (Math.random() < 0.5) { - { - double _setval = -1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.recoilhorizon = _setval; - capability.syncPlayerVariables(entity); - }); - } - } else { - { - double _setval = 1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.recoilhorizon = _setval; - capability.syncPlayerVariables(entity); - }); - } - } - { - double _setval = 0.1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.recoil = _setval; - capability.syncPlayerVariables(entity); - }); - } - { - double _setval = 1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.firing = _setval; - capability.syncPlayerVariables(entity); - }); - } if (usehand.getOrCreateTag().getDouble("power") > 0) { if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming == true) { usehand.getOrCreateTag().putDouble("zoomfiring", 24); @@ -115,25 +78,7 @@ public class SentinelFireProcedure { } } } - { - Entity _shootFrom = entity; - Level projectileLevel = _shootFrom.level(); - if (!projectileLevel.isClientSide()) { - Projectile _entityToSpawn = new Object() { - public Projectile getArrow(Level level, Entity shooter, float damage, int knockback) { - AbstractArrow entityToSpawn = new BulletEntity(TargetModEntities.BULLET.get(), level); - entityToSpawn.setOwner(shooter); - entityToSpawn.setBaseDamage(damage); - entityToSpawn.setKnockback(knockback); - entityToSpawn.setSilent(true); - return entityToSpawn; - } - }.getArrow(projectileLevel, entity, (float) ((usehand.getOrCreateTag().getDouble("damage") + usehand.getOrCreateTag().getDouble("adddamage")) / usehand.getOrCreateTag().getDouble("velocity")), 0); - _entityToSpawn.setPos(_shootFrom.getX(), _shootFrom.getEyeY() - 0.1, _shootFrom.getZ()); - _entityToSpawn.shoot(_shootFrom.getLookAngle().x, _shootFrom.getLookAngle().y, _shootFrom.getLookAngle().z, 50, (float) ((LivingEntity) entity).getAttribute(TargetModAttributes.SPREAD.get()).getBaseValue()); - projectileLevel.addFreshEntity(_entityToSpawn); - } - } + BulletfireNormalProcedure.execute(entity); usehand.getOrCreateTag().putDouble("crot", 20); if (entity instanceof Player _player) _player.getCooldowns().addCooldown(usehand.getItem(), 23);