继续内联部分过程

This commit is contained in:
Light_Quanta 2024-05-12 20:44:15 +08:00
parent bbe136e8a9
commit 220163f964
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
5 changed files with 161 additions and 226 deletions

View file

@ -1,11 +1,12 @@
package net.mcreator.target.entity; package net.mcreator.target.entity;
import net.mcreator.target.init.TargetModEntities; import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.procedures.MedexpProcedure;
import net.mcreator.target.procedures.MortarShellDanSheWuFeiXingShiMeiKeFaShengProcedure; import net.mcreator.target.procedures.MortarShellDanSheWuFeiXingShiMeiKeFaShengProcedure;
import net.mcreator.target.procedures.MortarShellDanSheWuJiZhongShiTiShiProcedure;
import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientGamePacketListener;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
import net.minecraft.util.RandomSource; import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
@ -68,13 +69,20 @@ public class MortarShellEntity extends AbstractArrow implements ItemSupplier {
@Override @Override
public void onHitEntity(EntityHitResult entityHitResult) { public void onHitEntity(EntityHitResult entityHitResult) {
super.onHitEntity(entityHitResult); super.onHitEntity(entityHitResult);
MortarShellDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this); onHit();
}
private void onHit() {
if (this.level() instanceof ServerLevel server) {
MedexpProcedure.execute(this.level(), this.getX(), getY(), getZ());
server.explode(this, (this.getX()), (this.getY()), (this.getZ()), 7.5f, Level.ExplosionInteraction.NONE);
}
} }
@Override @Override
public void onHitBlock(BlockHitResult blockHitResult) { public void onHitBlock(BlockHitResult blockHitResult) {
super.onHitBlock(blockHitResult); super.onHitBlock(blockHitResult);
MortarShellDanSheWuJiZhongShiTiShiProcedure.execute(this.level(), this); onHit();
} }
@Override @Override

View file

@ -4,7 +4,6 @@ import net.mcreator.target.init.TargetModEntities;
import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModSounds;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.mcreator.target.procedures.Target1DangShiTiGengXinKeShiProcedure;
import net.minecraft.commands.arguments.EntityAnchorArgument; import net.minecraft.commands.arguments.EntityAnchorArgument;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
@ -48,6 +47,7 @@ import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil; import software.bernie.geckolib.util.GeckoLibUtil;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.text.DecimalFormat;
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public class Target1Entity extends PathfinderMob implements GeoEntity, AnimatedEntity { public class Target1Entity extends PathfinderMob implements GeoEntity, AnimatedEntity {
@ -201,7 +201,52 @@ public class Target1Entity extends PathfinderMob implements GeoEntity, AnimatedE
@Override @Override
public void baseTick() { public void baseTick() {
super.baseTick(); super.baseTick();
Target1DangShiTiGengXinKeShiProcedure.execute(this);
this.setCustomName(Component.literal("HP:" + new DecimalFormat("##.##").format(this.getHealth()) + "/"
+ new DecimalFormat("##.##").format(this.getMaxHealth())));
double[] recoilTimer = {0};
double totalTime = 6;
int sleepTime = 2;
double recoilDuration = totalTime / sleepTime;
Runnable recoilRunnable = () -> {
while (recoilTimer[0] < recoilDuration) {
if (this.getPersistentData().getDouble("targetdown") > -1) {
this.getPersistentData().putDouble("targetdown", (this.getPersistentData().getDouble("targetdown") - 1));
}
if (this.getPersistentData().getDouble("targetdown") > 195) {
this.setYRot(this.getYRot());
this.setXRot((float) ((201 - this.getPersistentData().getDouble("targetdown")) * (-18)));
this.setYBodyRot(this.getYRot());
this.setYHeadRot(this.getYRot());
this.yRotO = this.getYRot();
this.xRotO = this.getXRot();
this.yBodyRotO = this.getYRot();
this.yHeadRotO = this.getYRot();
}
if (this.getPersistentData().getDouble("targetdown") < 20 && this.getPersistentData().getDouble("targetdown") > -1) {
this.setYRot(this.getYRot());
this.setXRot((float) (-90 + (20 - this.getPersistentData().getDouble("targetdown")) * 4.5f));
this.setYBodyRot(this.getYRot());
this.setYHeadRot(this.getYRot());
this.yRotO = this.getYRot();
this.xRotO = this.getXRot();
this.yBodyRotO = this.getYRot();
this.yHeadRotO = this.getYRot();
}
recoilTimer[0]++;
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread recoilThread = new Thread(recoilRunnable);
recoilThread.start();
this.refreshDimensions(); this.refreshDimensions();
} }

View file

@ -1,24 +0,0 @@
package net.mcreator.target.procedures;
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.Level;
import net.minecraft.world.level.LevelAccessor;
public class MortarShellDanSheWuJiZhongShiTiShiProcedure {
public static void execute(LevelAccessor world, Entity immediatesourceentity) {
if (immediatesourceentity == null)
return;
{
Entity _ent = immediatesourceentity;
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), "target:mediumexp");
}
}
if (world instanceof Level _level && !_level.isClientSide())
_level.explode(immediatesourceentity, (immediatesourceentity.getX()), (immediatesourceentity.getY()), (immediatesourceentity.getZ()), 7.5f, Level.ExplosionInteraction.NONE);
}
}

View file

@ -1,40 +1,28 @@
package net.mcreator.target.procedures; 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.TickEvent;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Entity;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.CommandSource;
import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModItems;
import net.minecraft.commands.CommandSource;
import javax.annotation.Nullable; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public class ReloadsoundstopProcedure { public class ReloadsoundstopProcedure {
@SubscribeEvent @SubscribeEvent
public static void onPlayerTick(TickEvent.PlayerTickEvent event) { public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
if (event.phase == TickEvent.Phase.END) { if (event.phase == TickEvent.Phase.END) {
execute(event, event.player); execute(event.player);
} }
} }
public static void execute(Entity entity) { private static void execute(Player entity) {
execute(null, entity); if (entity.level().isClientSide() || entity.getServer() == null) return;
} if (entity.getMainHandItem().getOrCreateTag().getDouble("id") != entity.getPersistentData().getDouble("id")) {
private static void execute(@Nullable Event event, Entity entity) {
if (entity == null)
return;
if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") != entity.getPersistentData().getDouble("id")) {
{
if (!entity.level().isClientSide() && entity.getServer() != null) {
entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:taser_reload"); entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:taser_reload");
@ -147,42 +135,28 @@ public class ReloadsoundstopProcedure {
entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:svd_reload_normal"); entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:svd_reload_normal");
entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4, entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:svd_reload_empty"); entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:svd_reload_empty");
}
}
} }
if (!((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.MARLIN.get())) { if (!(entity.getMainHandItem().getItem() == TargetModItems.MARLIN.get())) {
{ entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
Entity _ent = entity; entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:marlin_loop");
if (!_ent.level().isClientSide() && _ent.getServer() != null) { entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:marlin_start");
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "stopsound @s player target:marlin_loop"); entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:marlin_end");
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "stopsound @s player target:marlin_start");
_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), "stopsound @s player target:marlin_end"); if (!(entity.getMainHandItem().getItem() == TargetModItems.M_870.get())) {
} entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
} entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:m870_reloadloop");
} entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
if (!((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.M_870.get())) { entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:m870_preparealt");
{
Entity _ent = entity; }
if (!_ent.level().isClientSide() && _ent.getServer() != null) { if (entity.getMainHandItem().getOrCreateTag().getDouble("cid") != entity.getPersistentData().getDouble("cid")) {
_ent.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, _ent.position(), _ent.getRotationVector(), _ent.level() instanceof ServerLevel ? (ServerLevel) _ent.level() : null, 4, entity.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, entity.position(), entity.getRotationVector(), entity.level() instanceof ServerLevel ? (ServerLevel) entity.level() : null, 4,
_ent.getName().getString(), _ent.getDisplayName(), _ent.level().getServer(), _ent), "stopsound @s player target:m870_reloadloop"); entity.getName().getString(), entity.getDisplayName(), entity.level().getServer(), entity), "stopsound @s player target:sentinel_charge");
_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), "stopsound @s player target:m870_preparealt");
}
}
}
if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("cid") != entity.getPersistentData().getDouble("cid")) {
{
Entity _ent = entity;
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), "stopsound @s player target:sentinel_charge");
}
}
} }
} }
} }

View file

@ -1,68 +0,0 @@
package net.mcreator.target.procedures;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
public class Target1DangShiTiGengXinKeShiProcedure {
public static void execute(Entity entity) {
if (entity == null)
return;
entity.setCustomName(Component.literal(("HP:" + (new java.text.DecimalFormat("##.##").format(entity instanceof LivingEntity _livEnt ? _livEnt.getHealth() : -1)) + "/"
+ (new java.text.DecimalFormat("##.##").format(entity instanceof LivingEntity _livEnt ? _livEnt.getMaxHealth() : -1)))));
double[] recoilTimer = {0};
double totalTime = 6;
int sleepTime = 2;
double recoilDuration = totalTime / sleepTime;
Runnable recoilRunnable = () -> {
while (recoilTimer[0] < recoilDuration) {
if (entity.getPersistentData().getDouble("targetdown") > -1) {
entity.getPersistentData().putDouble("targetdown", (entity.getPersistentData().getDouble("targetdown") - 1));
}
if (entity.getPersistentData().getDouble("targetdown") > 195) {
{
Entity _ent = entity;
_ent.setYRot(entity.getYRot());
_ent.setXRot((float) ((201 - entity.getPersistentData().getDouble("targetdown")) * (-18)));
_ent.setYBodyRot(_ent.getYRot());
_ent.setYHeadRot(_ent.getYRot());
_ent.yRotO = _ent.getYRot();
_ent.xRotO = _ent.getXRot();
if (_ent instanceof LivingEntity _entity) {
_entity.yBodyRotO = _entity.getYRot();
_entity.yHeadRotO = _entity.getYRot();
}
}
}
if (entity.getPersistentData().getDouble("targetdown") < 20 && entity.getPersistentData().getDouble("targetdown") > -1) {
{
Entity _ent = entity;
_ent.setYRot(entity.getYRot());
_ent.setXRot((float) (-90 + (20 - entity.getPersistentData().getDouble("targetdown")) * 4.5f));
_ent.setYBodyRot(_ent.getYRot());
_ent.setYHeadRot(_ent.getYRot());
_ent.yRotO = _ent.getYRot();
_ent.xRotO = _ent.getXRot();
if (_ent instanceof LivingEntity _entity) {
_entity.yBodyRotO = _entity.getYRot();
_entity.yHeadRotO = _entity.getYRot();
}
}
}
recoilTimer[0]++;
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread recoilThread = new Thread(recoilRunnable);
recoilThread.start();
}
}