添加左轮扣扳机的过程
This commit is contained in:
parent
0c8dcba24f
commit
935d0c7e66
14 changed files with 183 additions and 10 deletions
|
@ -100,6 +100,9 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
private int jhpLevel = 0;
|
private int jhpLevel = 0;
|
||||||
private boolean heBullet = false;
|
private boolean heBullet = false;
|
||||||
private int heLevel = 0;
|
private int heLevel = 0;
|
||||||
|
private boolean fireBullet = false;
|
||||||
|
private int fireLevel = 0;
|
||||||
|
private boolean dragonBreath = false;
|
||||||
private Supplier<MobEffectInstance> mobEffect = () -> null;
|
private Supplier<MobEffectInstance> mobEffect = () -> null;
|
||||||
|
|
||||||
public ProjectileEntity(EntityType<? extends ProjectileEntity> p_i50159_1_, Level p_i50159_2_) {
|
public ProjectileEntity(EntityType<? extends ProjectileEntity> p_i50159_1_, Level p_i50159_2_) {
|
||||||
|
@ -294,9 +297,19 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
|
|
||||||
this.setDeltaMovement(vec.x, vec.y - 0.02, vec.z);
|
this.setDeltaMovement(vec.x, vec.y - 0.02, vec.z);
|
||||||
|
|
||||||
if (this.tickCount > 40) {
|
if (this.tickCount > (fireBullet ? 10 : 40)) {
|
||||||
this.discard();
|
this.discard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fireBullet && dragonBreath && this.level() instanceof ServerLevel serverLevel) {
|
||||||
|
for (int index0 = 0; index0 < 1; index0++) {
|
||||||
|
double randomPos = 2 * (Math.random() - 0.5);
|
||||||
|
ParticleTool.sendParticle(serverLevel, ParticleTypes.FLAME, this.getX(), this.getY(), this.getZ(),
|
||||||
|
1, randomPos, randomPos, randomPos, 0.001, true);
|
||||||
|
ParticleTool.sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.getX(), this.getY(), this.getZ(),
|
||||||
|
1, randomPos, randomPos, randomPos, 0.001, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -339,6 +352,10 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
if (heBullet) {
|
if (heBullet) {
|
||||||
explosionBulletBlock(this, this.damage, heLevel, monsterMultiple + 1, hitVec);
|
explosionBulletBlock(this, this.damage, heLevel, monsterMultiple + 1, hitVec);
|
||||||
}
|
}
|
||||||
|
if (fireBullet && this.level() instanceof ServerLevel serverLevel) {
|
||||||
|
ParticleTool.sendParticle(serverLevel, ParticleTypes.LAVA, hitVec.x, hitVec.y, hitVec.z,
|
||||||
|
3, 0, 0, 0, 0.5, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result instanceof ExtendedEntityRayTraceResult entityHitResult) {
|
if (result instanceof ExtendedEntityRayTraceResult entityHitResult) {
|
||||||
|
@ -502,6 +519,12 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
explosionBulletEntity(this, entity, this.damage, heLevel, mMultiple);
|
explosionBulletEntity(this, entity, this.damage, heLevel, mMultiple);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fireBullet) {
|
||||||
|
if (!entity.level().isClientSide() && entity instanceof LivingEntity living) {
|
||||||
|
living.addEffect(new MobEffectInstance(ModMobEffects.BURN.get(), 60 + fireLevel * 20, fireLevel, false , false), this.shooter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (headshot) {
|
if (headshot) {
|
||||||
if (!this.shooter.level().isClientSide() && this.shooter instanceof ServerPlayer player) {
|
if (!this.shooter.level().isClientSide() && this.shooter instanceof ServerPlayer player) {
|
||||||
var holder = Holder.direct(ModSounds.HEADSHOT.get());
|
var holder = Holder.direct(ModSounds.HEADSHOT.get());
|
||||||
|
@ -802,6 +825,13 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ProjectileEntity fireBullet(boolean fireBullet, int fireLevel, boolean dragonBreath) {
|
||||||
|
this.fireBullet = true;
|
||||||
|
this.fireLevel = fireLevel;
|
||||||
|
this.dragonBreath = dragonBreath;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public ProjectileEntity zoom(boolean zoom) {
|
public ProjectileEntity zoom(boolean zoom) {
|
||||||
this.zoom = zoom;
|
this.zoom = zoom;
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -219,6 +219,9 @@ public class GunEventHandler {
|
||||||
} else if (perk == ModPerks.HE_BULLET.get()) {
|
} else if (perk == ModPerks.HE_BULLET.get()) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, heldItem);
|
int level = PerkHelper.getItemPerkLevel(perk, heldItem);
|
||||||
projectile.heBullet(true, level);
|
projectile.heBullet(true, level);
|
||||||
|
} else if (perk == ModPerks.INCENDIARY_BULLET.get()) {
|
||||||
|
int level = PerkHelper.getItemPerkLevel(perk, heldItem);
|
||||||
|
projectile.fireBullet(true, level, heldItem.is(ModTags.Items.SHOTGUN));
|
||||||
}
|
}
|
||||||
|
|
||||||
var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE);
|
var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE);
|
||||||
|
@ -228,7 +231,7 @@ public class GunEventHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
|
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
|
||||||
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.001f, player.getLookAngle().z, velocity,
|
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.001f, player.getLookAngle().z, heldItem.is(ModTags.Items.SHOTGUN) && perk == ModPerks.INCENDIARY_BULLET.get() ? 4.5f : velocity,
|
||||||
(float) spared);
|
(float) spared);
|
||||||
player.level().addFreshEntity(projectile);
|
player.level().addFreshEntity(projectile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package net.mcreator.superbwarfare.init;
|
package net.mcreator.superbwarfare.init;
|
||||||
|
|
||||||
import net.mcreator.superbwarfare.ModUtils;
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.mcreator.superbwarfare.mobeffect.BurnMobEffect;
|
||||||
import net.mcreator.superbwarfare.mobeffect.ShockMobEffect;
|
import net.mcreator.superbwarfare.mobeffect.ShockMobEffect;
|
||||||
import net.minecraft.world.effect.MobEffect;
|
import net.minecraft.world.effect.MobEffect;
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
|
@ -11,4 +12,5 @@ public class ModMobEffects {
|
||||||
public static final DeferredRegister<MobEffect> REGISTRY = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, ModUtils.MODID);
|
public static final DeferredRegister<MobEffect> REGISTRY = DeferredRegister.create(ForgeRegistries.MOB_EFFECTS, ModUtils.MODID);
|
||||||
|
|
||||||
public static final RegistryObject<MobEffect> SHOCK = REGISTRY.register("shock", ShockMobEffect::new);
|
public static final RegistryObject<MobEffect> SHOCK = REGISTRY.register("shock", ShockMobEffect::new);
|
||||||
|
public static final RegistryObject<MobEffect> BURN = REGISTRY.register("burn", BurnMobEffect::new);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,9 @@ public class ModPerks {
|
||||||
public static final RegistryObject<Perk> AP_BULLET = AMMO_PERKS.register("ap_bullet",
|
public static final RegistryObject<Perk> AP_BULLET = AMMO_PERKS.register("ap_bullet",
|
||||||
() -> new AmmoPerk(new AmmoPerk.Builder("ap_bullet", Perk.Type.AMMO).bypassArmorRate(0.4f).damageRate(0.9f).speedRate(1.2f).slug(true).rgb(230, 70, 35)));
|
() -> new AmmoPerk(new AmmoPerk.Builder("ap_bullet", Perk.Type.AMMO).bypassArmorRate(0.4f).damageRate(0.9f).speedRate(1.2f).slug(true).rgb(230, 70, 35)));
|
||||||
public static final RegistryObject<Perk> JHP_BULLET = AMMO_PERKS.register("jhp_bullet",
|
public static final RegistryObject<Perk> JHP_BULLET = AMMO_PERKS.register("jhp_bullet",
|
||||||
() -> new AmmoPerk(new AmmoPerk.Builder("jhp_bullet", Perk.Type.AMMO).bypassArmorRate(-0.2f).damageRate(1.1f).speedRate(0.9f).slug(true).rgb(230, 131, 65)));
|
() -> new AmmoPerk(new AmmoPerk.Builder("jhp_bullet", Perk.Type.AMMO).bypassArmorRate(-0.2f).damageRate(1.1f).speedRate(0.95f).slug(true).rgb(230, 131, 65)));
|
||||||
public static final RegistryObject<Perk> HE_BULLET = AMMO_PERKS.register("he_bullet",
|
public static final RegistryObject<Perk> HE_BULLET = AMMO_PERKS.register("he_bullet",
|
||||||
() -> new AmmoPerk(new AmmoPerk.Builder("he_bullet", Perk.Type.AMMO).bypassArmorRate(-0.3f).damageRate(0.5f).speedRate(0.6f).slug(true).rgb(240, 20, 10)));
|
() -> new AmmoPerk(new AmmoPerk.Builder("he_bullet", Perk.Type.AMMO).bypassArmorRate(-0.3f).damageRate(0.5f).speedRate(0.85f).slug(true).rgb(240, 20, 10)));
|
||||||
public static final RegistryObject<Perk> SILVER_BULLET = AMMO_PERKS.register("silver_bullet",
|
public static final RegistryObject<Perk> SILVER_BULLET = AMMO_PERKS.register("silver_bullet",
|
||||||
() -> new AmmoPerk(new AmmoPerk.Builder("silver_bullet", Perk.Type.AMMO).bypassArmorRate(0.05f).damageRate(0.8f).speedRate(1.1f).rgb(87, 166, 219)));
|
() -> new AmmoPerk(new AmmoPerk.Builder("silver_bullet", Perk.Type.AMMO).bypassArmorRate(0.05f).damageRate(0.8f).speedRate(1.1f).rgb(87, 166, 219)));
|
||||||
public static final RegistryObject<Perk> POISONOUS_BULLET = AMMO_PERKS.register("poisonous_bullet",
|
public static final RegistryObject<Perk> POISONOUS_BULLET = AMMO_PERKS.register("poisonous_bullet",
|
||||||
|
@ -42,6 +42,8 @@ public class ModPerks {
|
||||||
public static final RegistryObject<Perk> BEAST_BULLET = AMMO_PERKS.register("beast_bullet",
|
public static final RegistryObject<Perk> BEAST_BULLET = AMMO_PERKS.register("beast_bullet",
|
||||||
() -> new AmmoPerk(new AmmoPerk.Builder("beast_bullet", Perk.Type.AMMO).bypassArmorRate(0.0f).rgb(134, 65, 14)));
|
() -> new AmmoPerk(new AmmoPerk.Builder("beast_bullet", Perk.Type.AMMO).bypassArmorRate(0.0f).rgb(134, 65, 14)));
|
||||||
public static final RegistryObject<Perk> LONGER_WIRE = AMMO_PERKS.register("longer_wire", () -> new Perk("longer_wire", Perk.Type.AMMO));
|
public static final RegistryObject<Perk> LONGER_WIRE = AMMO_PERKS.register("longer_wire", () -> new Perk("longer_wire", Perk.Type.AMMO));
|
||||||
|
public static final RegistryObject<Perk> INCENDIARY_BULLET = AMMO_PERKS.register("incendiary_bullet",
|
||||||
|
() -> new AmmoPerk(new AmmoPerk.Builder("incendiary_bullet", Perk.Type.AMMO).bypassArmorRate(-0.4f).damageRate(0.7f).speedRate(0.75f).slug(false).rgb(230, 131, 65)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functional Perks
|
* Functional Perks
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
package net.mcreator.superbwarfare.mobeffect;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.mcreator.superbwarfare.init.ModMobEffects;
|
||||||
|
import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
|
import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.damagesource.DamageTypes;
|
||||||
|
import net.minecraft.world.effect.MobEffect;
|
||||||
|
import net.minecraft.world.effect.MobEffectCategory;
|
||||||
|
import net.minecraft.world.effect.MobEffectInstance;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraftforge.event.entity.living.LivingEvent;
|
||||||
|
import net.minecraftforge.event.entity.living.MobEffectEvent;
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
|
|
||||||
|
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE)
|
||||||
|
public class BurnMobEffect extends MobEffect {
|
||||||
|
public BurnMobEffect() {
|
||||||
|
super(MobEffectCategory.HARMFUL, -12708330);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyEffectTick(LivingEntity entity, int amplifier) {
|
||||||
|
Entity attacker;
|
||||||
|
if (!entity.getPersistentData().contains("BurnAttacker")) {
|
||||||
|
attacker = null;
|
||||||
|
} else {
|
||||||
|
attacker = entity.level().getEntity(entity.getPersistentData().getInt("BurnAttacker"));
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.hurt(new DamageSource(entity.level().registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(DamageTypes.IN_FIRE), attacker), 0.6f + (0.3f * amplifier));
|
||||||
|
entity.invulnerableTime = 0;
|
||||||
|
|
||||||
|
if (attacker instanceof ServerPlayer player) {
|
||||||
|
player.level().playSound(null, player.blockPosition(), ModSounds.INDICATION.get(), SoundSource.VOICE, 1, 1);
|
||||||
|
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDurationEffectTick(int duration, int amplifier) {
|
||||||
|
return duration % 20 == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onEffectAdded(MobEffectEvent.Added event) {
|
||||||
|
LivingEntity living = event.getEntity();
|
||||||
|
|
||||||
|
MobEffectInstance instance = event.getEffectInstance();
|
||||||
|
if (!instance.getEffect().equals(ModMobEffects.BURN.get())) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
living.hurt(new DamageSource(living.level().registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(DamageTypes.IN_FIRE), event.getEffectSource()), 0.6f + (0.3f * instance.getAmplifier()));
|
||||||
|
living.invulnerableTime = 0;
|
||||||
|
|
||||||
|
if (event.getEffectSource() instanceof LivingEntity source) {
|
||||||
|
living.getPersistentData().putInt("BurnAttacker", source.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onEffectExpired(MobEffectEvent.Expired event) {
|
||||||
|
LivingEntity living = event.getEntity();
|
||||||
|
|
||||||
|
MobEffectInstance instance = event.getEffectInstance();
|
||||||
|
if (instance == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instance.getEffect().equals(ModMobEffects.BURN.get())) {
|
||||||
|
living.getPersistentData().remove("BurnAttacker");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onEffectRemoved(MobEffectEvent.Remove event) {
|
||||||
|
LivingEntity living = event.getEntity();
|
||||||
|
|
||||||
|
MobEffectInstance instance = event.getEffectInstance();
|
||||||
|
if (instance == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (instance.getEffect().equals(ModMobEffects.BURN.get())) {
|
||||||
|
living.getPersistentData().remove("BurnAttacker");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onLivingTick(LivingEvent.LivingTickEvent event) {
|
||||||
|
LivingEntity living = event.getEntity();
|
||||||
|
|
||||||
|
if (living.hasEffect(ModMobEffects.BURN.get())) {
|
||||||
|
living.setSecondsOnFire(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -247,6 +247,8 @@
|
||||||
"des.superbwarfare.jhp_bullet": "Increases damage against unarmored targets, but the damage decreases rapidly as the armor value rises",
|
"des.superbwarfare.jhp_bullet": "Increases damage against unarmored targets, but the damage decreases rapidly as the armor value rises",
|
||||||
"item.superbwarfare.he_bullet": "Explosion Bullet",
|
"item.superbwarfare.he_bullet": "Explosion Bullet",
|
||||||
"des.superbwarfare.he_bullet": "The bullet will explode after hitting the target",
|
"des.superbwarfare.he_bullet": "The bullet will explode after hitting the target",
|
||||||
|
"item.superbwarfare.incendiary_bullet": "Incendiary Bullet",
|
||||||
|
"des.superbwarfare.incendiary_bullet": "The bullet will ignites the target after hitting the target",
|
||||||
|
|
||||||
"item.superbwarfare.heal_clip": "Heal Clip",
|
"item.superbwarfare.heal_clip": "Heal Clip",
|
||||||
"des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies",
|
"des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies",
|
||||||
|
@ -340,6 +342,7 @@
|
||||||
"key.superbwarfare.edit_grip": "Switch Grip",
|
"key.superbwarfare.edit_grip": "Switch Grip",
|
||||||
|
|
||||||
"effect.superbwarfare.shock": "Shock",
|
"effect.superbwarfare.shock": "Shock",
|
||||||
|
"effect.superbwarfare.burn": "Burn",
|
||||||
"item.minecraft.potion.effect.superbwarfare_shock": "Potion of Shock",
|
"item.minecraft.potion.effect.superbwarfare_shock": "Potion of Shock",
|
||||||
"item.minecraft.splash_potion.effect.superbwarfare_shock": "Splash Potion of Shock",
|
"item.minecraft.splash_potion.effect.superbwarfare_shock": "Splash Potion of Shock",
|
||||||
"item.minecraft.lingering_potion.effect.superbwarfare_shock": "Lingering Potion of Shock",
|
"item.minecraft.lingering_potion.effect.superbwarfare_shock": "Lingering Potion of Shock",
|
||||||
|
|
|
@ -247,6 +247,8 @@
|
||||||
"des.superbwarfare.jhp_bullet": "增加对无护甲目标的伤害,但伤害会随着护甲值上升而迅速降低",
|
"des.superbwarfare.jhp_bullet": "增加对无护甲目标的伤害,但伤害会随着护甲值上升而迅速降低",
|
||||||
"item.superbwarfare.he_bullet": "爆炸子弹",
|
"item.superbwarfare.he_bullet": "爆炸子弹",
|
||||||
"des.superbwarfare.he_bullet": "子弹在命中后会爆炸",
|
"des.superbwarfare.he_bullet": "子弹在命中后会爆炸",
|
||||||
|
"item.superbwarfare.incendiary_bullet": "燃烧弹",
|
||||||
|
"des.superbwarfare.incendiary_bullet": "子弹在命中后点燃目标",
|
||||||
|
|
||||||
"item.superbwarfare.heal_clip": "治疗弹匣",
|
"item.superbwarfare.heal_clip": "治疗弹匣",
|
||||||
"des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友",
|
"des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友",
|
||||||
|
@ -340,6 +342,7 @@
|
||||||
"key.superbwarfare.edit_grip": "切换握把",
|
"key.superbwarfare.edit_grip": "切换握把",
|
||||||
|
|
||||||
"effect.superbwarfare.shock": "电击",
|
"effect.superbwarfare.shock": "电击",
|
||||||
|
"effect.superbwarfare.burn": "点燃",
|
||||||
"item.minecraft.potion.effect.superbwarfare_shock": "电击药水",
|
"item.minecraft.potion.effect.superbwarfare_shock": "电击药水",
|
||||||
"item.minecraft.splash_potion.effect.superbwarfare_shock": "喷溅型电击药水",
|
"item.minecraft.splash_potion.effect.superbwarfare_shock": "喷溅型电击药水",
|
||||||
"item.minecraft.lingering_potion.effect.superbwarfare_shock": "滞留型电击药水",
|
"item.minecraft.lingering_potion.effect.superbwarfare_shock": "滞留型电击药水",
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "item/generated",
|
|
||||||
"textures": {
|
|
||||||
"layer0": "superbwarfare:item/perk/dimension_magazine"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/perk/incendiary_bullet"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 706 B |
Binary file not shown.
After Width: | Height: | Size: 1 KiB |
Binary file not shown.
After Width: | Height: | Size: 232 B |
Binary file not shown.
Before Width: | Height: | Size: 158 B |
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "equipment",
|
||||||
|
"pattern": [
|
||||||
|
"bbb",
|
||||||
|
"cac",
|
||||||
|
"bbb"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"a": {
|
||||||
|
"item": "superbwarfare:empty_perk"
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"item":"minecraft:blaze_powder"
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"item":"minecraft:dragon_breath"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "superbwarfare:incendiary_bullet",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue