为新子弹添加爆头判定,伤害衰减,清理部分无用导包
This commit is contained in:
parent
c7eb56e4bf
commit
9cc5b5a669
19 changed files with 165 additions and 522 deletions
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,20 +2,11 @@
|
||||||
package net.mcreator.target.entity;
|
package net.mcreator.target.entity;
|
||||||
|
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
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.CommandSource;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
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.resources.ResourceLocation;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
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.minecraft.world.phys.*;
|
||||||
import net.mcreator.target.headshot.BoundingBoxManager;
|
import net.mcreator.target.headshot.BoundingBoxManager;
|
||||||
import net.mcreator.target.headshot.IHeadshotBox;
|
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.EntityHitResult;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
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.level.Level;
|
||||||
import net.minecraft.world.item.Items;
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraft.world.entity.projectile.ItemSupplier;
|
import net.minecraft.world.entity.projectile.ItemSupplier;
|
||||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
|
|
||||||
import net.mcreator.target.network.TargetModVariables;
|
import net.mcreator.target.network.TargetModVariables;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import net.mcreator.target.init.TargetModEntities;
|
|
||||||
|
|
||||||
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
|
@OnlyIn(value = Dist.CLIENT, _interface = ItemSupplier.class)
|
||||||
public class BocekarrowEntity extends AbstractArrow implements ItemSupplier {
|
public class BocekarrowEntity extends AbstractArrow implements ItemSupplier {
|
||||||
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW);
|
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW);
|
||||||
|
|
|
@ -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();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,20 +1,10 @@
|
||||||
|
|
||||||
package net.mcreator.target.entity;
|
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.CommandSource;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
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.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
import net.minecraft.world.level.block.*;
|
import net.minecraft.world.level.block.*;
|
||||||
import net.minecraft.world.phys.*;
|
import net.minecraft.world.phys.*;
|
||||||
import net.mcreator.target.headshot.BoundingBoxManager;
|
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.OnlyIn;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
|
||||||
import net.minecraft.sounds.SoundEvents;
|
|
||||||
import net.minecraft.world.level.Level;
|
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.ItemSupplier;
|
||||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.sounds.SoundSource;
|
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
|
|
||||||
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongShiTiShiProcedure;
|
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongShiTiShiProcedure;
|
||||||
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure;
|
import net.mcreator.target.procedures.GunGrenadeDanSheWuJiZhongFangKuaiShiProcedure;
|
||||||
import net.mcreator.target.procedures.GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure;
|
import net.mcreator.target.procedures.GunGrenadeDanSheWuFeiXingShiMeiKeFaShengProcedure;
|
||||||
import net.mcreator.target.init.TargetModEntities;
|
|
||||||
|
|
||||||
import net.mcreator.target.network.TargetModVariables;
|
import net.mcreator.target.network.TargetModVariables;
|
||||||
|
|
||||||
|
|
|
@ -1,57 +1,24 @@
|
||||||
package net.mcreator.target.entity;
|
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.entity.Entity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
|
||||||
import net.minecraft.world.phys.EntityHitResult;
|
import net.minecraft.world.phys.EntityHitResult;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
|
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
|
||||||
import net.minecraft.world.item.Item;
|
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.*;
|
||||||
|
|
||||||
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.BoundingBoxManager;
|
||||||
import net.mcreator.target.headshot.IHeadshotBox;
|
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;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class ProjectileEntity extends ThrowableItemProjectile {
|
public class ProjectileEntity extends ThrowableItemProjectile {
|
||||||
|
@ -78,14 +45,46 @@ public class ProjectileEntity extends ThrowableItemProjectile {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onHitEntity(EntityHitResult pResult) {
|
protected void onHitEntity(EntityHitResult pResult) {
|
||||||
super.onHitEntity(pResult);
|
|
||||||
|
final Vec3 position = this.position();
|
||||||
Entity entity = pResult.getEntity();
|
Entity entity = pResult.getEntity();
|
||||||
if (entity instanceof LivingEntity livingEntity) {
|
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();
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,10 @@
|
||||||
|
|
||||||
package net.mcreator.target.entity;
|
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.CommandSource;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
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.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
import net.minecraft.world.level.block.*;
|
import net.minecraft.world.level.block.*;
|
||||||
import net.minecraft.world.phys.*;
|
import net.minecraft.world.phys.*;
|
||||||
import net.mcreator.target.headshot.BoundingBoxManager;
|
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.OnlyIn;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
|
||||||
import net.minecraft.sounds.SoundEvents;
|
|
||||||
import net.minecraft.world.level.Level;
|
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.ItemSupplier;
|
||||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.sounds.SoundSource;
|
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
|
|
||||||
import net.mcreator.target.procedures.RpgRocketDanSheWuJiZhongFangKuaiShiProcedure;
|
import net.mcreator.target.procedures.RpgRocketDanSheWuJiZhongFangKuaiShiProcedure;
|
||||||
import net.mcreator.target.procedures.RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure;
|
import net.mcreator.target.procedures.RpgRocketDanSheWuFeiXingShiMeiKeFaShengProcedure;
|
||||||
import net.mcreator.target.procedures.RocketHitProcedure;
|
import net.mcreator.target.procedures.RocketHitProcedure;
|
||||||
import net.mcreator.target.init.TargetModEntities;
|
|
||||||
|
|
||||||
import net.mcreator.target.network.TargetModVariables;
|
import net.mcreator.target.network.TargetModVariables;
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ public class Target1Entity extends PathfinderMob implements GeoEntity {
|
||||||
public static AttributeSupplier.Builder createAttributes() {
|
public static AttributeSupplier.Builder createAttributes() {
|
||||||
AttributeSupplier.Builder builder = Mob.createMobAttributes();
|
AttributeSupplier.Builder builder = Mob.createMobAttributes();
|
||||||
builder = builder.add(Attributes.MOVEMENT_SPEED, 0);
|
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.ARMOR, 0);
|
||||||
builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
|
builder = builder.add(Attributes.ATTACK_DAMAGE, 0);
|
||||||
builder = builder.add(Attributes.FOLLOW_RANGE, 16);
|
builder = builder.add(Attributes.FOLLOW_RANGE, 16);
|
||||||
|
|
|
@ -1,20 +1,10 @@
|
||||||
|
|
||||||
package net.mcreator.target.entity;
|
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.CommandSource;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
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.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
import net.minecraft.world.level.block.*;
|
import net.minecraft.world.level.block.*;
|
||||||
import net.minecraft.world.phys.*;
|
import net.minecraft.world.phys.*;
|
||||||
import net.mcreator.target.headshot.BoundingBoxManager;
|
import net.mcreator.target.headshot.BoundingBoxManager;
|
||||||
|
@ -27,28 +17,19 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
|
||||||
import net.minecraft.world.phys.EntityHitResult;
|
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.level.Level;
|
||||||
import net.minecraft.world.item.Items;
|
|
||||||
import net.minecraft.world.entity.projectile.ItemSupplier;
|
import net.minecraft.world.entity.projectile.ItemSupplier;
|
||||||
import net.minecraft.world.entity.projectile.AbstractArrow;
|
import net.minecraft.world.entity.projectile.AbstractArrow;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.sounds.SoundSource;
|
|
||||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
import net.minecraft.network.protocol.Packet;
|
import net.minecraft.network.protocol.Packet;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
|
|
||||||
import net.mcreator.target.procedures.TaserBulletTouZhiWuFeiXingKeProcedure;
|
import net.mcreator.target.procedures.TaserBulletTouZhiWuFeiXingKeProcedure;
|
||||||
import net.mcreator.target.procedures.TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure;
|
import net.mcreator.target.procedures.TaserBulletDangTouZhiWuJiZhongShiTiShiProcedure;
|
||||||
import net.mcreator.target.init.TargetModEntities;
|
|
||||||
|
|
||||||
import net.mcreator.target.network.TargetModVariables;
|
import net.mcreator.target.network.TargetModVariables;
|
||||||
|
|
||||||
|
|
|
@ -7,14 +7,10 @@ package net.mcreator.target.init;
|
||||||
import net.minecraftforge.registries.RegistryObject;
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
|
||||||
import net.minecraftforge.fml.common.Mod;
|
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.MobCategory;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.Entity;
|
|
||||||
|
|
||||||
import net.mcreator.target.entity.ProjectileEntity;
|
import net.mcreator.target.entity.ProjectileEntity;
|
||||||
|
|
||||||
|
@ -26,6 +22,6 @@ public class TargetCustomModEntities {
|
||||||
|
|
||||||
public static final RegistryObject<EntityType<ProjectileEntity>> PROJECTILE =
|
public static final RegistryObject<EntityType<ProjectileEntity>> PROJECTILE =
|
||||||
ENTITY_TYPES.register("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"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@ import net.mcreator.target.entity.MortarShellEntity;
|
||||||
import net.mcreator.target.entity.MortarEntity;
|
import net.mcreator.target.entity.MortarEntity;
|
||||||
import net.mcreator.target.entity.GunGrenadeEntity;
|
import net.mcreator.target.entity.GunGrenadeEntity;
|
||||||
import net.mcreator.target.entity.ClaymoreEntity;
|
import net.mcreator.target.entity.ClaymoreEntity;
|
||||||
import net.mcreator.target.entity.BulletEntity;
|
|
||||||
import net.mcreator.target.entity.BocekarrowEntity;
|
import net.mcreator.target.entity.BocekarrowEntity;
|
||||||
import net.mcreator.target.TargetMod;
|
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));
|
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",
|
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));
|
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",
|
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));
|
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",
|
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",
|
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));
|
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) {
|
private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
|
||||||
return REGISTRY.register(registryname, () -> (EntityType<T>) entityTypeBuilder.build(registryname));
|
return REGISTRY.register(registryname, () -> (EntityType<T>) entityTypeBuilder.build(registryname));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
|
|
||||||
/*
|
|
||||||
* MCreator note: This file will be REGENERATED on each build.
|
|
||||||
*/
|
|
||||||
package net.mcreator.target.init;
|
package net.mcreator.target.init;
|
||||||
|
|
||||||
import net.minecraftforge.fml.common.Mod;
|
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.MortarRenderer;
|
||||||
import net.mcreator.target.client.renderer.GunGrenadeRenderer;
|
import net.mcreator.target.client.renderer.GunGrenadeRenderer;
|
||||||
import net.mcreator.target.client.renderer.ClaymoreRenderer;
|
import net.mcreator.target.client.renderer.ClaymoreRenderer;
|
||||||
import net.mcreator.target.client.renderer.BulletRenderer;
|
|
||||||
import net.mcreator.target.client.renderer.BocekarrowRenderer;
|
import net.mcreator.target.client.renderer.BocekarrowRenderer;
|
||||||
|
|
||||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
|
@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.TASER_BULLET_PROJECTILE.get(), TaserBulletProjectileRenderer::new);
|
||||||
event.registerEntityRenderer(TargetModEntities.GUN_GRENADE.get(), GunGrenadeRenderer::new);
|
event.registerEntityRenderer(TargetModEntities.GUN_GRENADE.get(), GunGrenadeRenderer::new);
|
||||||
event.registerEntityRenderer(TargetModEntities.TARGET.get(), TargetRenderer::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.RPG_ROCKET.get(), RpgRocketRenderer::new);
|
||||||
event.registerEntityRenderer(TargetModEntities.MORTAR_SHELL.get(), MortarShellRenderer::new);
|
event.registerEntityRenderer(TargetModEntities.MORTAR_SHELL.get(), MortarShellRenderer::new);
|
||||||
event.registerEntityRenderer(TargetModEntities.BOCEKARROW.get(), BocekarrowRenderer::new);
|
event.registerEntityRenderer(TargetModEntities.BOCEKARROW.get(), BocekarrowRenderer::new);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package net.mcreator.target.procedures;
|
package net.mcreator.target.procedures;
|
||||||
|
|
||||||
|
import net.mcreator.target.entity.ProjectileEntity;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.GameType;
|
import net.minecraft.world.level.GameType;
|
||||||
import net.minecraft.world.item.Items;
|
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.network.TargetModVariables;
|
||||||
import net.mcreator.target.init.TargetModItems;
|
import net.mcreator.target.init.TargetModItems;
|
||||||
import net.mcreator.target.init.TargetModEntities;
|
import net.mcreator.target.init.TargetModEntities;
|
||||||
import net.mcreator.target.entity.BulletEntity;
|
|
||||||
import net.mcreator.target.entity.BocekarrowEntity;
|
import net.mcreator.target.entity.BocekarrowEntity;
|
||||||
|
|
||||||
public class BowlooseProcedure {
|
public class BowlooseProcedure {
|
||||||
|
@ -44,6 +44,8 @@ public class BowlooseProcedure {
|
||||||
}
|
}
|
||||||
if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get()
|
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().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) {
|
if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming == true) {
|
||||||
{
|
{
|
||||||
Entity _shootFrom = entity;
|
Entity _shootFrom = entity;
|
||||||
|
@ -89,24 +91,12 @@ public class BowlooseProcedure {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int index0 = 0; index0 < 10; index0++) {
|
for (int index0 = 0; index0 < 10; index0++) {
|
||||||
{
|
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
|
||||||
Entity _shootFrom = entity;
|
ProjectileEntity projectile = new ProjectileEntity(entity.level(), living);
|
||||||
Level projectileLevel = _shootFrom.level();
|
projectile.setOwner(living);
|
||||||
if (!projectileLevel.isClientSide()) {
|
projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ());
|
||||||
Projectile _entityToSpawn = new Object() {
|
projectile.shoot(living.getLookAngle().x, living.getLookAngle().y, living.getLookAngle().z, (float) (4 * power),2);
|
||||||
public Projectile getArrow(Level level, Entity shooter, float damage, int knockback) {
|
entity.level().addFreshEntity(projectile);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,14 +40,8 @@ public class BulletfireNormalProcedure {
|
||||||
capability.syncPlayerVariables(entity);
|
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) {
|
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.setOwner(living);
|
||||||
|
|
||||||
projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ());
|
projectile.setPos(living.getX(), living.getEyeY() - 0.1, living.getZ());
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -43,7 +43,11 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
|
itemstackiterator = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
|
||||||
|
|
||||||
if (itemstackiterator.is(ItemTags.create(new ResourceLocation("target:gun")))) {
|
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()) {
|
if (itemstackiterator.getItem() == TargetModItems.SKS.get()) {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1);
|
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25);
|
itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25);
|
||||||
|
@ -52,8 +56,7 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.004);
|
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.004);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.015);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.015);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 9.5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 9.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.75);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 20);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 20);
|
||||||
|
|
||||||
|
@ -67,8 +70,7 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.0025);
|
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.0025);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.012);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.012);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 8.5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 8.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.75);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 30);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 30);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 30);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 30);
|
||||||
}
|
}
|
||||||
|
@ -84,7 +86,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.01);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.01);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 7);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 7);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 55);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 55);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
|
itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
|
||||||
|
@ -98,7 +99,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.022);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.022);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 18);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 18);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 10);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 60);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 60);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 8);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 8);
|
||||||
|
|
||||||
|
@ -112,7 +112,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.03);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.03);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 40);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 40);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 50);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 50);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 1);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 1);
|
||||||
}
|
}
|
||||||
|
@ -145,7 +144,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.026);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.026);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 2.5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 2.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 5);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 15);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 15);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 2);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 2);
|
||||||
}
|
}
|
||||||
|
@ -158,7 +156,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.013);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.013);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 28);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 28);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 55);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 55);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 5);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 5);
|
||||||
}
|
}
|
||||||
|
@ -182,7 +179,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.011);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.011);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 7);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 7);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 45);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 45);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 30);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 30);
|
||||||
}
|
}
|
||||||
|
@ -196,7 +192,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.007);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.007);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 5);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 16);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 16);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 25);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 25);
|
||||||
}
|
}
|
||||||
|
@ -208,8 +203,7 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005);
|
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.003);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.003);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 2.4);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 9.5);
|
|
||||||
}
|
}
|
||||||
if (itemstackiterator.getItem() == TargetModItems.HK_416.get()) {
|
if (itemstackiterator.getItem() == TargetModItems.HK_416.get()) {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.3);
|
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.3);
|
||||||
|
@ -221,7 +215,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.009);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.009);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 7.5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 7.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 45);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 45);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 30);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 30);
|
||||||
}
|
}
|
||||||
|
@ -237,7 +230,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.012);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.012);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 8.75);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 8.75);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 35);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 35);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 50);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 50);
|
||||||
}
|
}
|
||||||
|
@ -252,7 +244,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.018);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.018);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 70);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 70);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 4);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 4);
|
||||||
}
|
}
|
||||||
|
@ -266,7 +257,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.004);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.004);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 4.5);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 4.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 10);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 22);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 22);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 33);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 33);
|
||||||
}
|
}
|
||||||
|
@ -280,7 +270,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.005);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.005);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 8);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 8);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
|
itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
|
||||||
}
|
}
|
||||||
|
@ -295,7 +284,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.014);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.014);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 12);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 12);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 45);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 45);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 20);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 20);
|
||||||
}
|
}
|
||||||
|
@ -308,8 +296,7 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.018);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.018);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 25);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 25);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 5);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 3);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 50);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 50);
|
||||||
}
|
}
|
||||||
if (itemstackiterator.getItem() == TargetModItems.M_60.get()) {
|
if (itemstackiterator.getItem() == TargetModItems.M_60.get()) {
|
||||||
|
@ -324,7 +311,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.014);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.014);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 9);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 9);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 100);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 100);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
|
itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
|
||||||
|
@ -338,7 +324,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.015);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.015);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 18);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 18);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 50);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 50);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 10);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 10);
|
||||||
}
|
}
|
||||||
|
@ -351,7 +336,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.011);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.011);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 16);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 16);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 2.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 27);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 27);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 8);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 8);
|
||||||
}
|
}
|
||||||
|
@ -364,7 +348,6 @@ public class GunsDataProcedure {
|
||||||
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.03);
|
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.03);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("damage", 2);
|
itemstackiterator.getOrCreateTag().putDouble("damage", 2);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("bulletlife", 20);
|
|
||||||
itemstackiterator.getOrCreateTag().putDouble("velocity", 20);
|
itemstackiterator.getOrCreateTag().putDouble("velocity", 20);
|
||||||
itemstackiterator.getOrCreateTag().putDouble("mag", 8);
|
itemstackiterator.getOrCreateTag().putDouble("mag", 8);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,20 +36,12 @@ public class GunsTipsProcedure {
|
||||||
String firemode = "";
|
String firemode = "";
|
||||||
ItemStack usehand = ItemStack.EMPTY;
|
ItemStack usehand = ItemStack.EMPTY;
|
||||||
if (itemstack.is(ItemTags.create(new ResourceLocation("target:gun")))) {
|
if (itemstack.is(ItemTags.create(new ResourceLocation("target:gun")))) {
|
||||||
if (itemstack.getOrCreateTag().getDouble("level") <= 10) {
|
|
||||||
if (itemstack.getItem() == TargetModItems.BOCEK.get()) {
|
if (itemstack.getItem() == TargetModItems.BOCEK.get()) {
|
||||||
tooltip.add(Component.literal("\u00A7l\u00A77Damage:2.4*10/24"));
|
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 {
|
} else {
|
||||||
tooltip.add(Component.literal(("\u00A7l\u00A77Damage:" + new java.text.DecimalFormat("##.##").format(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")))));
|
||||||
} 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"))))));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (itemstack.getOrCreateTag().getDouble("level") < 4) {
|
if (itemstack.getOrCreateTag().getDouble("level") < 4) {
|
||||||
tooltip.add(Component.literal(("\u00A7f\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " "
|
tooltip.add(Component.literal(("\u00A7f\u00A7lLevel:" + new java.text.DecimalFormat("##").format(itemstack.getOrCreateTag().getDouble("level")) + " "
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
package net.mcreator.target.procedures;
|
package net.mcreator.target.procedures;
|
||||||
|
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.level.GameType;
|
import net.minecraft.world.level.GameType;
|
||||||
import net.minecraft.world.item.ItemStack;
|
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.player.Player;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.Entity;
|
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.network.TargetModVariables;
|
||||||
import net.mcreator.target.init.TargetModItems;
|
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 class SentinelFireProcedure {
|
||||||
public static void execute(Entity entity) {
|
public static void execute(Entity entity) {
|
||||||
|
@ -38,37 +32,6 @@ public class SentinelFireProcedure {
|
||||||
usehand = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY);
|
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()))
|
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) {
|
&& 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 (usehand.getOrCreateTag().getDouble("power") > 0) {
|
||||||
if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming == true) {
|
if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming == true) {
|
||||||
usehand.getOrCreateTag().putDouble("zoomfiring", 24);
|
usehand.getOrCreateTag().putDouble("zoomfiring", 24);
|
||||||
|
@ -115,25 +78,7 @@ public class SentinelFireProcedure {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
BulletfireNormalProcedure.execute(entity);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
usehand.getOrCreateTag().putDouble("crot", 20);
|
usehand.getOrCreateTag().putDouble("crot", 20);
|
||||||
if (entity instanceof Player _player)
|
if (entity instanceof Player _player)
|
||||||
_player.getCooldowns().addCooldown(usehand.getItem(), 23);
|
_player.getCooldowns().addCooldown(usehand.getItem(), 23);
|
||||||
|
|
Loading…
Add table
Reference in a new issue