添加未添加的伤害类型

This commit is contained in:
Light_Quanta 2024-05-12 22:01:16 +08:00
parent 129460f8a8
commit c5be3f7551
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 14 additions and 2 deletions

View file

@ -2,6 +2,7 @@ package net.mcreator.target.event;
import net.mcreator.target.entity.BocekarrowEntity; import net.mcreator.target.entity.BocekarrowEntity;
import net.mcreator.target.entity.Target1Entity; import net.mcreator.target.entity.Target1Entity;
import net.mcreator.target.init.TargetModDamageTypes;
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.commands.CommandSource; import net.minecraft.commands.CommandSource;
@ -59,7 +60,7 @@ public class LivingEntityEventHandler {
if (event != null && event.isCancelable()) { if (event != null && event.isCancelable()) {
event.setCanceled(true); event.setCanceled(true);
} }
entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:mine"))), sourceentity), (float) amount); entity.hurt(TargetModDamageTypes.causeMineDamage(world.registryAccess(), sourceentity), (float) amount);
} }
} }
@ -68,7 +69,7 @@ public class LivingEntityEventHandler {
if (damagesource == null || entity == null || immediatesourceentity == null || sourceentity == null) return; if (damagesource == null || entity == null || immediatesourceentity == null || sourceentity == null) return;
if (damagesource.is(DamageTypes.ARROW) && immediatesourceentity instanceof BocekarrowEntity) { if (damagesource.is(DamageTypes.ARROW) && immediatesourceentity instanceof BocekarrowEntity) {
event.setCanceled(true); event.setCanceled(true);
entity.hurt(new DamageSource(world.registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("target:arrow_in_brain"))), sourceentity), (float) amount); entity.hurt(TargetModDamageTypes.causeArrowInBrainDamage(world.registryAccess(), sourceentity), (float) amount);
} }
} }

View file

@ -17,11 +17,22 @@ import javax.annotation.Nullable;
@SuppressWarnings("OptionalGetWithoutIsPresent") @SuppressWarnings("OptionalGetWithoutIsPresent")
public class TargetModDamageTypes { public class TargetModDamageTypes {
public static final ResourceKey<DamageType> GUNFIRE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "gunfire")); public static final ResourceKey<DamageType> GUNFIRE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "gunfire"));
public static final ResourceKey<DamageType> ARROW_IN_BRAIN = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "arrow_in_brain"));
public static final ResourceKey<DamageType> MINE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "mine"));
public static DamageSource causeGunFireDamage(RegistryAccess registryAccess, @Nullable Entity entity) { public static DamageSource causeGunFireDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUNFIRE), entity); return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUNFIRE), entity);
} }
public static DamageSource causeArrowInBrainDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(ARROW_IN_BRAIN), entity);
}
public static DamageSource causeMineDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(MINE), entity);
}
private static class DamageMessages extends DamageSource { private static class DamageMessages extends DamageSource {
public DamageMessages(Holder.Reference<DamageType> typeReference) { public DamageMessages(Holder.Reference<DamageType> typeReference) {
super(typeReference); super(typeReference);