为新子弹添加爆头判定,伤害衰减,清理部分无用导包

This commit is contained in:
Atsuihsio 2024-05-04 17:51:38 +08:00
parent c7eb56e4bf
commit 9cc5b5a669
19 changed files with 165 additions and 522 deletions

View file

@ -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<BulletEntity> {
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;
}
}

View file

@ -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);

View file

@ -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<? extends BulletEntity> type, Level world) {
super(type, world);
}
public BulletEntity(EntityType<? extends BulletEntity> type, double x, double y, double z, Level world) {
super(type, x, y, z, world);
}
public BulletEntity(EntityType<? extends BulletEntity> type, LivingEntity entity, Level world) {
super(type, entity, world);
}
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this);
}
@Override
@OnlyIn(Dist.CLIENT)
public ItemStack getItem() {
return PROJECTILE_ITEM;
}
@Override
protected ItemStack getPickupItem() {
return PROJECTILE_ITEM;
}
@Override
protected void doPostHurtEffects(LivingEntity entity) {
super.doPostHurtEffects(entity);
entity.setArrowCount(entity.getArrowCount() - 1);
}
@Override
public void 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<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null)
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null)
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent())
{
box = box.inflate( 0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55))
{
hitPos = headshotHitPos.get();
headshot = true;
}
if(headshot){
if(this.getOwner() instanceof LivingEntity living){
setBaseDamage(getBaseDamage() * (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();
}
}

View file

@ -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;

View file

@ -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<LivingEntity> headshotBox = (IHeadshotBox<LivingEntity>) BoundingBoxManager.getHeadshotBoxes(entity.getType());
if(headshotBox != null)
{
AABB box = headshotBox.getHeadshotBox((LivingEntity) entity);
if(box != null)
{
box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z);
Optional<Vec3> headshotHitPos = box.clip(startVec, endVec);
if(!headshotHitPos.isPresent())
{
box = box.inflate( 0.2, 0.2, 0.2);
headshotHitPos = box.clip(startVec, endVec);
}
if(headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55))
{
hitPos = headshotHitPos.get();
headshot = true;
}
if(headshot){
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();
}
}
}
}
}

View file

@ -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;

View file

@ -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);

View file

@ -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;

View file

@ -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<EntityType<ProjectileEntity>> PROJECTILE =
ENTITY_TYPES.register("projectile",
() -> EntityType.Builder.<ProjectileEntity>of(ProjectileEntity::new, MobCategory.MISC).sized(1.0f, 1.0f).build("projectile"));
() -> EntityType.Builder.<ProjectileEntity>of(ProjectileEntity::new, MobCategory.MISC).sized(0.5f, 0.5f).build("projectile"));
}

View file

@ -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.<GunGrenadeEntity>of(GunGrenadeEntity::new, MobCategory.MISC).setCustomClientFactory(GunGrenadeEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<TargetEntity>> TARGET = register("target",
EntityType.Builder.<TargetEntity>of(TargetEntity::new, MobCategory.CREATURE).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TargetEntity::new).fireImmune().sized(0.875f, 2f));
public static final RegistryObject<EntityType<BulletEntity>> BULLET = register("projectile_bullet",
EntityType.Builder.<BulletEntity>of(BulletEntity::new, MobCategory.MISC).setCustomClientFactory(BulletEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<RpgRocketEntity>> RPG_ROCKET = register("projectile_rpg_rocket",
EntityType.Builder.<RpgRocketEntity>of(RpgRocketEntity::new, MobCategory.MISC).setCustomClientFactory(RpgRocketEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
public static final RegistryObject<EntityType<MortarShellEntity>> MORTAR_SHELL = register("projectile_mortar_shell",
@ -58,6 +55,7 @@ public class TargetModEntities {
public static final RegistryObject<EntityType<BocekarrowEntity>> BOCEKARROW = register("projectile_bocekarrow",
EntityType.Builder.<BocekarrowEntity>of(BocekarrowEntity::new, MobCategory.MISC).setCustomClientFactory(BocekarrowEntity::new).setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(1).sized(0.5f, 0.5f));
private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
return REGISTRY.register(registryname, () -> (EntityType<T>) entityTypeBuilder.build(registryname));
}

View file

@ -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);

View file

@ -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);
}
}
{

View file

@ -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());

View file

@ -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);
}
}
}

View file

@ -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);
}

View file

@ -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")) + " "

View file

@ -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();
}
}

View file

@ -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();
}
}

View file

@ -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);