移除渲染相关procedure
This commit is contained in:
parent
64de84a32b
commit
5d90c40dc9
9 changed files with 57 additions and 165 deletions
|
@ -1,23 +1,24 @@
|
||||||
package net.mcreator.target.client.screens;
|
package net.mcreator.target.client.screens;
|
||||||
|
|
||||||
import net.mcreator.target.procedures.EntityRangeProcedure;
|
import net.mcreator.target.procedures.EntityRangeProcedure;
|
||||||
import net.mcreator.target.procedures.SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.client.event.RenderGuiEvent;
|
import net.minecraftforge.client.event.RenderGuiEvent;
|
||||||
import net.minecraftforge.eventbus.api.EventPriority;
|
import net.minecraftforge.eventbus.api.EventPriority;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
|
||||||
@Mod.EventBusSubscriber({Dist.CLIENT})
|
@Mod.EventBusSubscriber(value = Dist.CLIENT)
|
||||||
public class SpyglassRangeOverlay {
|
public class SpyglassRangeOverlay {
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.NORMAL)
|
@SubscribeEvent(priority = EventPriority.NORMAL)
|
||||||
public static void eventHandler(RenderGuiEvent.Pre event) {
|
public static void eventHandler(RenderGuiEvent.Pre event) {
|
||||||
int w = event.getWindow().getGuiScaledWidth();
|
int w = event.getWindow().getGuiScaledWidth();
|
||||||
int h = event.getWindow().getGuiScaledHeight();
|
int h = event.getWindow().getGuiScaledHeight();
|
||||||
Player entity = Minecraft.getInstance().player;
|
Player entity = Minecraft.getInstance().player;
|
||||||
if (SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure.execute(entity)) {
|
if (entity != null && entity.getMainHandItem().getItem() == Items.SPYGLASS) {
|
||||||
event.getGuiGraphics().drawString(
|
event.getGuiGraphics().drawString(
|
||||||
Minecraft.getInstance().font,
|
Minecraft.getInstance().font,
|
||||||
EntityRangeProcedure.execute(entity),
|
EntityRangeProcedure.execute(entity),
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
package net.mcreator.target.event;
|
package net.mcreator.target.event;
|
||||||
|
|
||||||
|
import net.mcreator.target.init.TargetModMobEffects;
|
||||||
import net.mcreator.target.init.TargetModTags;
|
import net.mcreator.target.init.TargetModTags;
|
||||||
import net.mcreator.target.network.TargetModVariables;
|
import net.mcreator.target.network.TargetModVariables;
|
||||||
|
import net.minecraft.client.CameraType;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.multiplayer.ClientLevel;
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
@ -23,6 +27,7 @@ public class ClientEventHandler {
|
||||||
handleWeaponMove(living);
|
handleWeaponMove(living);
|
||||||
handleWeaponZoom(living);
|
handleWeaponZoom(living);
|
||||||
handleWeaponFire(event, living);
|
handleWeaponFire(event, living);
|
||||||
|
handleShockCamera(event, living);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,4 +316,12 @@ public class ClientEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void handleShockCamera(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) {
|
||||||
|
if (entity.hasEffect(TargetModMobEffects.SHOCK.get()) && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) {
|
||||||
|
event.setYaw(Minecraft.getInstance().gameRenderer.getMainCamera().getYRot());
|
||||||
|
event.setPitch(Minecraft.getInstance().gameRenderer.getMainCamera().getXRot());
|
||||||
|
event.setRoll((float) Mth.nextDouble(RandomSource.create(), 8, 12));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ public class PlayerEventHandler {
|
||||||
handleFireTime(player);
|
handleFireTime(player);
|
||||||
handleGround(player);
|
handleGround(player);
|
||||||
handlePrepareZoom(player);
|
handlePrepareZoom(player);
|
||||||
|
handleSpecialWeaponAmmo(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,4 +257,15 @@ public class PlayerEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void handleSpecialWeaponAmmo(Player player) {
|
||||||
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
|
||||||
|
if (stack.getItem() == TargetModItems.RPG.get() && stack.getOrCreateTag().getDouble("ammo") == 1) {
|
||||||
|
stack.getOrCreateTag().putDouble("empty", 0);
|
||||||
|
}
|
||||||
|
if (stack.getItem() == TargetModItems.BOCEK.get() && stack.getOrCreateTag().getDouble("ammo") == 1) {
|
||||||
|
stack.getOrCreateTag().putDouble("empty", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
package net.mcreator.target.mobeffect;
|
package net.mcreator.target.mobeffect;
|
||||||
|
|
||||||
import net.mcreator.target.procedures.ShockDangYaoShuiXiaoGuoKaiShiYingYongShiProcedure;
|
import net.mcreator.target.init.TargetModSounds;
|
||||||
import net.mcreator.target.procedures.ShockZaiXiaoGuoChiXuShiMeiKeFaShengProcedure;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.effect.MobEffect;
|
import net.minecraft.world.effect.MobEffect;
|
||||||
import net.minecraft.world.effect.MobEffectCategory;
|
import net.minecraft.world.effect.MobEffectCategory;
|
||||||
|
import net.minecraft.world.effect.MobEffectInstance;
|
||||||
|
import net.minecraft.world.effect.MobEffects;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.ai.attributes.AttributeMap;
|
import net.minecraft.world.entity.ai.attributes.AttributeMap;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
public class ShockMobEffect extends MobEffect {
|
public class ShockMobEffect extends MobEffect {
|
||||||
public ShockMobEffect() {
|
public ShockMobEffect() {
|
||||||
|
@ -19,12 +25,30 @@ public class ShockMobEffect extends MobEffect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addAttributeModifiers(LivingEntity entity, AttributeMap attributeMap, int amplifier) {
|
public void addAttributeModifiers(LivingEntity entity, AttributeMap attributeMap, int amplifier) {
|
||||||
ShockDangYaoShuiXiaoGuoKaiShiYingYongShiProcedure.execute(entity.level(), entity.getX(), entity.getY(), entity.getZ());
|
if (!entity.level().isClientSide()) {
|
||||||
|
entity.level().playSound(null, BlockPos.containing(entity.getX(), entity.getY(), entity.getZ()), TargetModSounds.SHOCK.get(), SoundSource.HOSTILE, 1, 1);
|
||||||
|
} else {
|
||||||
|
entity.level().playLocalSound(entity.getX(), entity.getY(), entity.getZ(), TargetModSounds.SHOCK.get(), SoundSource.HOSTILE, 1, 1, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void applyEffectTick(LivingEntity entity, int amplifier) {
|
public void applyEffectTick(LivingEntity entity, int amplifier) {
|
||||||
ShockZaiXiaoGuoChiXuShiMeiKeFaShengProcedure.execute(entity);
|
entity.setDeltaMovement(new Vec3(0, (entity.getDeltaMovement().y()), 0));
|
||||||
|
|
||||||
|
if (!entity.level().isClientSide()) {
|
||||||
|
entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 10, 10));
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.setShiftKeyDown(true);
|
||||||
|
entity.setYRot((float) (entity.getYRot() + Mth.nextDouble(RandomSource.create(), -15, 15)));
|
||||||
|
entity.setXRot((float) Mth.nextDouble(RandomSource.create(), -20, -23));
|
||||||
|
entity.setYBodyRot(entity.getYRot());
|
||||||
|
entity.setYHeadRot(entity.getYRot());
|
||||||
|
entity.yRotO = entity.getYRot();
|
||||||
|
entity.xRotO = entity.getXRot();
|
||||||
|
entity.yBodyRotO = entity.getYRot();
|
||||||
|
entity.yHeadRotO = entity.getYRot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
package net.mcreator.target.procedures;
|
|
||||||
|
|
||||||
import net.mcreator.target.init.TargetModItems;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
import net.minecraftforge.event.TickEvent;
|
|
||||||
import net.minecraftforge.eventbus.api.Event;
|
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
||||||
import net.minecraftforge.fml.common.Mod;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
@Mod.EventBusSubscriber
|
|
||||||
public class RpgemptyProcedure {
|
|
||||||
@SubscribeEvent
|
|
||||||
public static void onPlayerTick(TickEvent.PlayerTickEvent event) {
|
|
||||||
if (event.phase == TickEvent.Phase.END) {
|
|
||||||
execute(event, event.player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void execute(Entity entity) {
|
|
||||||
execute(null, entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void execute(@Nullable Event event, Entity entity) {
|
|
||||||
if (entity == null)
|
|
||||||
return;
|
|
||||||
if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.RPG.get()
|
|
||||||
&& (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("ammo") == 1) {
|
|
||||||
(entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().putDouble("empty", 0);
|
|
||||||
}
|
|
||||||
if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem() == TargetModItems.BOCEK.get()
|
|
||||||
&& (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("ammo") == 1) {
|
|
||||||
(entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().putDouble("empty", 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
package net.mcreator.target.procedures;
|
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.sounds.SoundSource;
|
|
||||||
import net.minecraft.world.level.Level;
|
|
||||||
import net.minecraft.world.level.LevelAccessor;
|
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
|
||||||
|
|
||||||
public class ShockDangYaoShuiXiaoGuoKaiShiYingYongShiProcedure {
|
|
||||||
public static void execute(LevelAccessor world, double x, double y, double z) {
|
|
||||||
if (world instanceof Level _level) {
|
|
||||||
if (!_level.isClientSide()) {
|
|
||||||
_level.playSound(null, BlockPos.containing(x, y, z), ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:shock")), SoundSource.HOSTILE, 1, 1);
|
|
||||||
} else {
|
|
||||||
_level.playLocalSound(x, y, z, ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("target:shock")), SoundSource.HOSTILE, 1, 1, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
package net.mcreator.target.procedures;
|
|
||||||
|
|
||||||
import net.minecraft.util.Mth;
|
|
||||||
import net.minecraft.util.RandomSource;
|
|
||||||
import net.minecraft.world.effect.MobEffectInstance;
|
|
||||||
import net.minecraft.world.effect.MobEffects;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.phys.Vec3;
|
|
||||||
|
|
||||||
public class ShockZaiXiaoGuoChiXuShiMeiKeFaShengProcedure {
|
|
||||||
public static void execute(Entity entity) {
|
|
||||||
if (entity == null)
|
|
||||||
return;
|
|
||||||
entity.setDeltaMovement(new Vec3(0, (entity.getDeltaMovement().y()), 0));
|
|
||||||
if (entity instanceof LivingEntity _entity && !_entity.level().isClientSide())
|
|
||||||
_entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 10, 10));
|
|
||||||
entity.setShiftKeyDown(true);
|
|
||||||
{
|
|
||||||
Entity _ent = entity;
|
|
||||||
_ent.setYRot((float) (entity.getYRot() + Mth.nextDouble(RandomSource.create(), -15, 15)));
|
|
||||||
_ent.setXRot((float) Mth.nextDouble(RandomSource.create(), -20, -23));
|
|
||||||
_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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,52 +0,0 @@
|
||||||
package net.mcreator.target.procedures;
|
|
||||||
|
|
||||||
import net.mcreator.target.init.TargetModMobEffects;
|
|
||||||
import net.minecraft.client.CameraType;
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.multiplayer.ClientLevel;
|
|
||||||
import net.minecraft.util.Mth;
|
|
||||||
import net.minecraft.util.RandomSource;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.phys.Vec3;
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
|
||||||
import net.minecraftforge.client.event.ViewportEvent;
|
|
||||||
import net.minecraftforge.eventbus.api.Event;
|
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
||||||
import net.minecraftforge.fml.common.Mod;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
@Mod.EventBusSubscriber(value = Dist.CLIENT)
|
|
||||||
public class ShockcameraProcedure {
|
|
||||||
private static ViewportEvent.ComputeCameraAngles _provider = null;
|
|
||||||
|
|
||||||
private static void setAngles(float yaw, float pitch, float roll) {
|
|
||||||
_provider.setYaw(yaw);
|
|
||||||
_provider.setPitch(pitch);
|
|
||||||
_provider.setRoll(roll);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
public static void computeCameraangles(ViewportEvent.ComputeCameraAngles event) {
|
|
||||||
_provider = event;
|
|
||||||
ClientLevel level = Minecraft.getInstance().level;
|
|
||||||
Entity entity = _provider.getCamera().getEntity();
|
|
||||||
if (level != null && entity != null) {
|
|
||||||
Vec3 entPos = entity.getPosition((float) _provider.getPartialTick());
|
|
||||||
execute(_provider, entity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void execute(Entity entity) {
|
|
||||||
execute(null, entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void execute(@Nullable Event event, Entity entity) {
|
|
||||||
if (entity == null)
|
|
||||||
return;
|
|
||||||
if (entity instanceof LivingEntity _livEnt0 && _livEnt0.hasEffect(TargetModMobEffects.SHOCK.get()) && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) {
|
|
||||||
setAngles(Minecraft.getInstance().gameRenderer.getMainCamera().getYRot(), Minecraft.getInstance().gameRenderer.getMainCamera().getXRot(), (float) Mth.nextDouble(RandomSource.create(), 8, 12));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
package net.mcreator.target.procedures;
|
|
||||||
|
|
||||||
import net.minecraft.world.entity.Entity;
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
import net.minecraft.world.item.Items;
|
|
||||||
|
|
||||||
public class SpyglassRangeXianShiYouXiNeiDieJiaCengProcedure {
|
|
||||||
public static boolean execute(Entity entity) {
|
|
||||||
if (entity == null)
|
|
||||||
return false;
|
|
||||||
return (entity instanceof LivingEntity _entUseItem0 ? _entUseItem0.getUseItem() : ItemStack.EMPTY).getItem() == Items.SPYGLASS;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue