优化gunitem方法

This commit is contained in:
17146 2024-10-21 02:56:14 +08:00
parent 8446dc0365
commit f552437d24
4 changed files with 39 additions and 17 deletions

View file

@ -3,7 +3,6 @@ package net.mcreator.superbwarfare.item.gun;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.network.ModVariables;
@ -64,16 +63,6 @@ public abstract class GunItem extends Item {
if (itemstack.getOrCreateTag().getBoolean("draw")) {
itemstack.getOrCreateTag().putBoolean("draw", false);
if (itemstack.getItem() == ModItems.RPG.get() && itemstack.getOrCreateTag().getInt("ammo") == 0) {
itemstack.getOrCreateTag().putDouble("empty", 1);
}
if (itemstack.getItem() == ModItems.SKS.get() && itemstack.getOrCreateTag().getInt("ammo") == 0) {
itemstack.getOrCreateTag().putBoolean("HoldOpen", true);
}
if (itemstack.getItem() == ModItems.M_60.get() && itemstack.getOrCreateTag().getInt("ammo") <= 5) {
itemstack.getOrCreateTag().putBoolean("bullet_chain", true);
}
}
if (itemstack.getOrCreateTag().getInt("fire_animation") > 0) {
@ -144,7 +133,7 @@ public abstract class GunItem extends Item {
}
public ResourceLocation getGunIcon() {
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/default_icon.png");
return ModUtils.loc("textures/gun_icon/default_icon.png");
}
public String getGunDisplayName() {

View file

@ -137,13 +137,20 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
@Override
public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemStack, world, entity, slot, selected);
if (itemStack.getOrCreateTag().getBoolean("draw")) {
itemStack.getOrCreateTag().putBoolean("draw", false);
if (itemStack.getOrCreateTag().getInt("ammo") == 0) {
itemStack.getOrCreateTag().putDouble("empty", 1);
}
}
if (entity instanceof Player player) {
var tag = itemStack.getOrCreateTag();
tag.putInt("max_ammo", getAmmoCount(player));
}
super.inventoryTick(itemStack, world, entity, slot, selected);
}
protected static boolean check(ItemStack stack) {

View file

@ -21,11 +21,13 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@ -88,8 +90,6 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m60.reload"));
}
@ -133,13 +133,25 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
return stack;
}
@Override
public void inventoryTick(ItemStack itemstack, Level level, Entity entity, int slot, boolean selected) {
if (itemstack.getOrCreateTag().getBoolean("draw")) {
itemstack.getOrCreateTag().putBoolean("draw", false);
if (itemstack.getOrCreateTag().getInt("ammo") <= 5) {
itemstack.getOrCreateTag().putBoolean("bullet_chain", true);
}
}
super.inventoryTick(itemstack, level, entity, slot, selected);
}
@Override
public void setAnimationProcedure(String procedure) {
}
@Override
public ResourceLocation getGunIcon() {
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/m60_icon.png");
return ModUtils.loc("textures/gun_icon/m60_icon.png");
}
@Override

View file

@ -20,11 +20,13 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@ -115,6 +117,18 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem {
return stack;
}
@Override
public void inventoryTick(ItemStack itemstack, Level level, Entity entity, int slot, boolean selected) {
if (itemstack.getOrCreateTag().getBoolean("draw")) {
itemstack.getOrCreateTag().putBoolean("draw", false);
if (itemstack.getOrCreateTag().getInt("ammo") == 0) {
itemstack.getOrCreateTag().putBoolean("HoldOpen", true);
}
}
super.inventoryTick(itemstack, level, entity, slot, selected);
}
@Override
public void setAnimationProcedure(String procedure) {
}