添加电击药水,电击伤害和泰瑟1木仓击杀图标
This commit is contained in:
parent
05b064d45c
commit
5f503a4e32
14 changed files with 70 additions and 8 deletions
|
@ -4,7 +4,15 @@ import net.mcreator.target.init.*;
|
|||
import net.mcreator.target.network.message.*;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.alchemy.PotionUtils;
|
||||
import net.minecraft.world.item.alchemy.Potions;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.FlowerPotBlock;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.brewing.BrewingRecipeRegistry;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
|
@ -41,6 +49,7 @@ public class TargetMod {
|
|||
TargetModTabs.TABS.register(bus);
|
||||
TargetModMobEffects.REGISTRY.register(bus);
|
||||
TargetModParticleTypes.REGISTRY.register(bus);
|
||||
TargetModPotion.POTIONS.register(bus);
|
||||
TargetModMenus.REGISTRY.register(bus);
|
||||
|
||||
bus.addListener(this::onCommonSetup);
|
||||
|
@ -94,5 +103,8 @@ public class TargetMod {
|
|||
addNetworkMessage(PlayerGunKillMessage.class, PlayerGunKillMessage::encode, PlayerGunKillMessage::decode, PlayerGunKillMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
addNetworkMessage(ClientIndicatorMessage.class, ClientIndicatorMessage::encode, ClientIndicatorMessage::decode, ClientIndicatorMessage::handler, Optional.of(NetworkDirection.PLAY_TO_CLIENT));
|
||||
addNetworkMessage(SensitivityMessage.class, SensitivityMessage::encode, SensitivityMessage::decode, SensitivityMessage::handler);
|
||||
|
||||
event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)),
|
||||
Ingredient.of(Items.LIGHTNING_ROD), PotionUtils.setPotion(new ItemStack(Items.POTION), TargetModPotion.SHOCK.get())));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ public class KillMessageOverlay {
|
|||
private static final ResourceLocation GENERIC = new ResourceLocation(TargetMod.MODID, "textures/screens/damage_types/generic.png");
|
||||
private static final ResourceLocation BEAST = new ResourceLocation(TargetMod.MODID, "textures/screens/damage_types/beast.png");
|
||||
private static final ResourceLocation BLEEDING = new ResourceLocation(TargetMod.MODID, "textures/screens/damage_types/bleeding.png");
|
||||
private static final ResourceLocation SHOCK = new ResourceLocation(TargetMod.MODID, "textures/screens/damage_types/shock.png");
|
||||
private static final ResourceLocation BLOOD_CRYSTAL = new ResourceLocation(TargetMod.MODID, "textures/screens/damage_types/blood_crystal.png");
|
||||
|
||||
private static final ResourceLocation WORLD_PEACE_STAFF = new ResourceLocation(TargetMod.MODID, "textures/gun_icon/compat/world_peace_staff.png");
|
||||
|
@ -247,7 +248,8 @@ public class KillMessageOverlay {
|
|||
icon = HEADSHOT;
|
||||
} else {
|
||||
if (record.damageType == TargetModDamageTypes.GUN_FIRE || record.damageType == TargetModDamageTypes.GUN_FIRE_HEADSHOT
|
||||
|| record.damageType == TargetModDamageTypes.ARROW_IN_KNEE || record.damageType == TargetModDamageTypes.ARROW_IN_BRAIN) {
|
||||
|| record.damageType == TargetModDamageTypes.ARROW_IN_KNEE || record.damageType == TargetModDamageTypes.ARROW_IN_BRAIN
|
||||
|| record.damageType == TargetModDamageTypes.SHOCK) {
|
||||
icon = null;
|
||||
} else {
|
||||
// 如果是其他伤害,则渲染对应图标
|
||||
|
@ -263,6 +265,8 @@ public class KillMessageOverlay {
|
|||
icon = BLEEDING;
|
||||
} else if (record.damageType == ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation("dreamaticvoyage", "blood_crystal"))) {
|
||||
icon = BLOOD_CRYSTAL;
|
||||
} else if (record.damageType == TargetModDamageTypes.SHOCK) {
|
||||
icon = SHOCK;
|
||||
} else {
|
||||
icon = GENERIC;
|
||||
}
|
||||
|
|
|
@ -113,9 +113,9 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile {
|
|||
}
|
||||
|
||||
if (headshot) {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 1.5f);
|
||||
entity.hurt(TargetModDamageTypes.causeShockDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 1.5f);
|
||||
} else {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
|
||||
entity.hurt(TargetModDamageTypes.causeShockDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
|
||||
}
|
||||
|
||||
this.discard();
|
||||
|
|
|
@ -22,6 +22,7 @@ public class TargetModDamageTypes {
|
|||
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 final ResourceKey<DamageType> BEAST = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "beast"));
|
||||
public static final ResourceKey<DamageType> SHOCK = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "shock"));
|
||||
|
||||
public static DamageSource causeGunFireDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUN_FIRE), directEntity, attacker);
|
||||
|
@ -43,6 +44,10 @@ public class TargetModDamageTypes {
|
|||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(MINE), entity);
|
||||
}
|
||||
|
||||
public static DamageSource causeShockDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(SHOCK), directEntity, attacker);
|
||||
}
|
||||
|
||||
private static class DamageMessages extends DamageSource {
|
||||
public DamageMessages(Holder.Reference<DamageType> typeReference) {
|
||||
super(typeReference);
|
||||
|
|
16
src/main/java/net/mcreator/target/init/TargetModPotion.java
Normal file
16
src/main/java/net/mcreator/target/init/TargetModPotion.java
Normal file
|
@ -0,0 +1,16 @@
|
|||
package net.mcreator.target.init;
|
||||
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.item.alchemy.Potion;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.mcreator.target.TargetMod;
|
||||
|
||||
public class TargetModPotion {
|
||||
public static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(ForgeRegistries.POTIONS, TargetMod.MODID);
|
||||
|
||||
public static final RegistryObject<Potion> SHOCK= POTIONS.register("target_shock",
|
||||
() -> new Potion(new MobEffectInstance(TargetModMobEffects.SHOCK.get(), 100, 0)));
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package net.mcreator.target.mobeffect;
|
||||
|
||||
import net.mcreator.target.init.TargetModDamageTypes;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
|
@ -29,6 +30,9 @@ public class ShockMobEffect extends MobEffect {
|
|||
|
||||
@Override
|
||||
public void applyEffectTick(LivingEntity entity, int amplifier) {
|
||||
if (!entity.level().isClientSide()) {
|
||||
entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 10, 10));
|
||||
}
|
||||
entity.setXRot((float) Mth.nextDouble(RandomSource.create(), -23, -36));
|
||||
entity.xRotO = entity.getXRot();
|
||||
}
|
||||
|
|
|
@ -164,6 +164,9 @@
|
|||
"death.attack.mine": "%1$s step on Claymore",
|
||||
"death.attack.mine.entity": "%1$s step on %2$s's Claymore",
|
||||
"death.attack.mine.item": "%1$s step on %2$s's Claymore",
|
||||
"death.attack.shock": "%1$s was shocked",
|
||||
"death.attack.shock.entity": "%1$s was shocked by %2$s",
|
||||
"death.attack.shock.item": "%1$s was shocked by %2$s",
|
||||
|
||||
"gui.target.mortar_gui.button_angle_add_05": "+0.5",
|
||||
"gui.target.mortar_gui.button_angle_reduce_05": "-0.5",
|
||||
|
@ -190,6 +193,9 @@
|
|||
"key.target.zoom": "Zoom",
|
||||
|
||||
"effect.target.shock": "Shock",
|
||||
"item.minecraft.potion.effect.target_shock": "Potion of Shock",
|
||||
"item.minecraft.splash_potion.effect.target_shock": "Splash Potion of Shock",
|
||||
"item.minecraft.lingering_potion.effect.target_shock": "Lingering Potion of Shock",
|
||||
|
||||
"des.target.sensitivity": "Current Sensitivity of This Gun: %1$s",
|
||||
|
||||
|
|
|
@ -164,6 +164,9 @@
|
|||
"death.attack.mine": "%1$s不慎踩到了阔剑地雷",
|
||||
"death.attack.mine.entity": "%1$s踩到了%2$s的阔剑地雷",
|
||||
"death.attack.mine.item": "%1$s踩到了%2$s的阔剑地雷",
|
||||
"death.attack.shock": "%1$s被电麻了",
|
||||
"death.attack.shock.entity": "%1$s被%2$s电麻了",
|
||||
"death.attack.shock.item": "%1$s被%2$s电麻了",
|
||||
|
||||
"gui.target.mortar_gui.button_angle_add_05": "+0.5",
|
||||
"gui.target.mortar_gui.button_angle_reduce_05": "-0.5",
|
||||
|
@ -189,7 +192,10 @@
|
|||
"key.target.fire_mode": "开火模式",
|
||||
"key.target.zoom": "缩放",
|
||||
|
||||
"effect.target.shock": "麻痹",
|
||||
"effect.target.shock": "电击",
|
||||
"item.minecraft.potion.effect.target_shock": "电击药水",
|
||||
"item.minecraft.splash_potion.effect.target_shock": "喷溅型电击药水",
|
||||
"item.minecraft.lingering_potion.effect.target_shock": "滞留型电击药水",
|
||||
|
||||
"des.target.sensitivity": "当前枪械的灵敏度为:%1$s",
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 179 B |
|
@ -2,6 +2,7 @@
|
|||
"replace": false,
|
||||
"values": [
|
||||
"target:gunfire",
|
||||
"target:gunfire_headshot"
|
||||
"target:gunfire_headshot",
|
||||
"target:shock"
|
||||
]
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
"replace": false,
|
||||
"values": [
|
||||
"target:gunfire",
|
||||
"target:gunfire_headshot"
|
||||
"target:gunfire_headshot",
|
||||
"target:shock"
|
||||
]
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
"replace": false,
|
||||
"values": [
|
||||
"target:gunfire",
|
||||
"target:gunfire_headshot"
|
||||
"target:gunfire_headshot",
|
||||
"target:shock"
|
||||
]
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
"replace": false,
|
||||
"values": [
|
||||
"target:gunfire",
|
||||
"target:gunfire_headshot"
|
||||
"target:gunfire_headshot",
|
||||
"target:shock"
|
||||
]
|
||||
}
|
5
src/main/resources/data/target/damage_type/shock.json
Normal file
5
src/main/resources/data/target/damage_type/shock.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"exhaustion": 0,
|
||||
"message_id": "shock",
|
||||
"scaling": "never"
|
||||
}
|
Loading…
Add table
Reference in a new issue