优化gunitem方法
This commit is contained in:
parent
8446dc0365
commit
f552437d24
4 changed files with 39 additions and 17 deletions
|
@ -3,7 +3,6 @@ package net.mcreator.superbwarfare.item.gun;
|
||||||
import com.google.common.collect.HashMultimap;
|
import com.google.common.collect.HashMultimap;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
import net.mcreator.superbwarfare.ModUtils;
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
import net.mcreator.superbwarfare.init.ModItems;
|
|
||||||
import net.mcreator.superbwarfare.init.ModPerks;
|
import net.mcreator.superbwarfare.init.ModPerks;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.network.ModVariables;
|
import net.mcreator.superbwarfare.network.ModVariables;
|
||||||
|
@ -64,16 +63,6 @@ public abstract class GunItem extends Item {
|
||||||
|
|
||||||
if (itemstack.getOrCreateTag().getBoolean("draw")) {
|
if (itemstack.getOrCreateTag().getBoolean("draw")) {
|
||||||
itemstack.getOrCreateTag().putBoolean("draw", false);
|
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) {
|
if (itemstack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||||
|
@ -144,7 +133,7 @@ public abstract class GunItem extends Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceLocation getGunIcon() {
|
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() {
|
public String getGunDisplayName() {
|
||||||
|
|
|
@ -137,13 +137,20 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) {
|
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) {
|
if (entity instanceof Player player) {
|
||||||
var tag = itemStack.getOrCreateTag();
|
var tag = itemStack.getOrCreateTag();
|
||||||
tag.putInt("max_ammo", getAmmoCount(player));
|
tag.putInt("max_ammo", getAmmoCount(player));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
super.inventoryTick(itemStack, world, entity, slot, selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static boolean check(ItemStack stack) {
|
protected static boolean check(ItemStack stack) {
|
||||||
|
|
|
@ -21,11 +21,13 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.effect.MobEffects;
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemDisplayContext;
|
import net.minecraft.world.item.ItemDisplayContext;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Rarity;
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||||
import software.bernie.geckolib.animatable.GeoItem;
|
import software.bernie.geckolib.animatable.GeoItem;
|
||||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||||
|
@ -88,8 +90,6 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m60.reload"));
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m60.reload"));
|
||||||
}
|
}
|
||||||
|
@ -133,13 +133,25 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return stack;
|
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
|
@Override
|
||||||
public void setAnimationProcedure(String procedure) {
|
public void setAnimationProcedure(String procedure) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getGunIcon() {
|
public ResourceLocation getGunIcon() {
|
||||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/m60_icon.png");
|
return ModUtils.loc("textures/gun_icon/m60_icon.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,11 +20,13 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.effect.MobEffects;
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemDisplayContext;
|
import net.minecraft.world.item.ItemDisplayContext;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.Rarity;
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||||
import software.bernie.geckolib.animatable.GeoItem;
|
import software.bernie.geckolib.animatable.GeoItem;
|
||||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||||
|
@ -115,6 +117,18 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
return stack;
|
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
|
@Override
|
||||||
public void setAnimationProcedure(String procedure) {
|
public void setAnimationProcedure(String procedure) {
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue