优化自动换弹,添加无限插板

This commit is contained in:
17146 2024-10-20 00:10:25 +08:00
parent daf0ed0238
commit 632ba1ea46
12 changed files with 56 additions and 23 deletions

View file

@ -1,10 +1,9 @@
// 1.20.1 2024-10-13T21:19:13.9561013 Item Models: superbwarfare // 1.20.1 2024-10-20T00:05:58.4595202 Item Models: superbwarfare
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/aa_12_blueprint.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/aa_12_blueprint.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_12_blueprint.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_12_blueprint.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json
c993bddc0db9453ffbefa59f9ac9a74dba909038 assets/superbwarfare/models/item/ancient_cpu.json c993bddc0db9453ffbefa59f9ac9a74dba909038 assets/superbwarfare/models/item/ancient_cpu.json
4b8fe8fbe5e64c3449ad539317254e4ed7188411 assets/superbwarfare/models/item/ap_head.json 4b8fe8fbe5e64c3449ad539317254e4ed7188411 assets/superbwarfare/models/item/ap_head.json
9a20bdee844ad4f2556250e0eca7a2575cafd712 assets/superbwarfare/models/item/armor_plate.json
984c08ca6f6893a15721a85e30118f9e32c65c7f assets/superbwarfare/models/item/barbed_wire.json 984c08ca6f6893a15721a85e30118f9e32c65c7f assets/superbwarfare/models/item/barbed_wire.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/bocek_blueprint.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/bocek_blueprint.json
1e5b4637c3787516305dd3d1598f401a5e78a954 assets/superbwarfare/models/item/cemented_carbide_action.json 1e5b4637c3787516305dd3d1598f401a5e78a954 assets/superbwarfare/models/item/cemented_carbide_action.json

View file

@ -1,6 +0,0 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "superbwarfare:item/armor_plate"
}
}

View file

@ -85,8 +85,6 @@ public class ModItemModelProvider extends ItemModelProvider {
simpleItem(ModItems.EPIC_MATERIAL_PACK); simpleItem(ModItems.EPIC_MATERIAL_PACK);
simpleItem(ModItems.LEGENDARY_MATERIAL_PACK); simpleItem(ModItems.LEGENDARY_MATERIAL_PACK);
simpleItem(ModItems.ARMOR_PLATE);
// armor // armor
simpleItem(ModItems.RU_HELMET_6B47); simpleItem(ModItems.RU_HELMET_6B47);

View file

@ -299,16 +299,9 @@ public class PlayerEventHandler {
private static void handleRespawnReload(Player player) { private static void handleRespawnReload(Player player) {
if (!GameplayConfig.RESPAWN_RELOAD.get()) return; if (!GameplayConfig.RESPAWN_RELOAD.get()) return;
int count = 0;
for (var inv : player.getInventory().items) {
if (inv.is(ModItems.CREATIVE_AMMO_BOX.get())) {
count++;
}
}
for (ItemStack stack : player.getInventory().items) { for (ItemStack stack : player.getInventory().items) {
if (stack.is(ModTags.Items.GUN)) { if (stack.is(ModTags.Items.GUN)) {
if (count == 0) { if (!player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()))) {
var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()); var cap = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables());
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && cap.shotgunAmmo > 0) { if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && cap.shotgunAmmo > 0) {

View file

@ -1,18 +1,20 @@
package net.mcreator.superbwarfare.init; package net.mcreator.superbwarfare.init;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.tools.ItemNBTTool;
import net.minecraft.client.renderer.item.ItemProperties; import net.minecraft.client.renderer.item.ItemProperties;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.mcreator.superbwarfare.tools.ItemNBTTool;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class ModProperties { public class ModProperties {
@SubscribeEvent @SubscribeEvent
public static void propertyOverrideRegistry(FMLClientSetupEvent event) { public static void propertyOverrideRegistry(FMLClientSetupEvent event) {
event.enqueueWork(() -> ItemProperties.register(ModItems.MONITOR.get(), new ResourceLocation("superbwarfare", "monitor_linked"), event.enqueueWork(() -> ItemProperties.register(ModItems.MONITOR.get(), ModUtils.loc("monitor_linked"),
(itemStack, clientWorld, livingEntity, seed) -> ItemNBTTool.getBoolean(itemStack, "Linked", false) ? 1.0F : 0.0F)); (itemStack, clientWorld, livingEntity, seed) -> ItemNBTTool.getBoolean(itemStack, "Linked", false) ? 1.0F : 0.0F));
event.enqueueWork(() -> ItemProperties.register(ModItems.ARMOR_PLATE.get(), ModUtils.loc("armor_plate_infinite"),
(itemStack, clientWorld, livingEntity, seed) -> ItemNBTTool.getBoolean(itemStack, "Infinite", false) ? 1.0F : 0.0F));
} }
} }

View file

@ -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.item.ArmorPlate;
import net.mcreator.superbwarfare.item.gun.handgun.Glock17Item; import net.mcreator.superbwarfare.item.gun.handgun.Glock17Item;
import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item; import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item;
import net.mcreator.superbwarfare.item.gun.handgun.M1911Item; import net.mcreator.superbwarfare.item.gun.handgun.M1911Item;
@ -98,7 +99,12 @@ public class ModTabs {
.title(Component.translatable("item_group.superbwarfare.item")) .title(Component.translatable("item_group.superbwarfare.item"))
.icon(() -> new ItemStack(ModItems.TARGET_DEPLOYER.get())) .icon(() -> new ItemStack(ModItems.TARGET_DEPLOYER.get()))
.withTabsBefore(AMMO_TAB.getKey()) .withTabsBefore(AMMO_TAB.getKey())
.displayItems((param, output) -> ModItems.ITEMS.getEntries().forEach(registryObject -> output.accept(registryObject.get()))) .displayItems((param, output) -> ModItems.ITEMS.getEntries().forEach(registryObject -> {
output.accept(registryObject.get());
if (registryObject.get() == ModItems.ARMOR_PLATE.get()) {
output.accept(ArmorPlate.getInfiniteInstance());
}
}))
.build()); .build());
public static final RegistryObject<CreativeModeTab> BLOCK_TAB = TABS.register("block", public static final RegistryObject<CreativeModeTab> BLOCK_TAB = TABS.register("block",

View file

@ -1,6 +1,9 @@
package net.mcreator.superbwarfare.item; package net.mcreator.superbwarfare.item;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
@ -12,15 +15,26 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.UseAnim; import net.minecraft.world.item.UseAnim;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
public class ArmorPlate extends Item { public class ArmorPlate extends Item {
public ArmorPlate() { public ArmorPlate() {
super(new Item.Properties()); super(new Item.Properties());
} }
@Override
public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List<Component> pTooltipComponents, TooltipFlag pIsAdvanced) {
if (pStack.getOrCreateTag().getBoolean("Infinite")) {
pTooltipComponents.add(Component.translatable("des.superbwarfare.armor_plate.infinite").withStyle(ChatFormatting.GRAY));
}
}
@Override @Override
public @NotNull InteractionResultHolder<ItemStack> use(Level worldIn, Player playerIn, InteractionHand handIn) { public @NotNull InteractionResultHolder<ItemStack> use(Level worldIn, Player playerIn, InteractionHand handIn) {
ItemStack stack = playerIn.getItemInHand(handIn); ItemStack stack = playerIn.getItemInHand(handIn);
@ -65,7 +79,7 @@ public class ArmorPlate extends Item {
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), SoundEvents.ARMOR_EQUIP_IRON, SoundSource.PLAYERS, 0.5f, 1); serverPlayer.level().playSound(null, serverPlayer.getOnPos(), SoundEvents.ARMOR_EQUIP_IRON, SoundSource.PLAYERS, 0.5f, 1);
} }
if (pLivingEntity instanceof Player player && !player.isCreative()) { if (pLivingEntity instanceof Player player && !player.isCreative() && !pStack.getOrCreateTag().getBoolean("Infinite")) {
pStack.shrink(1); pStack.shrink(1);
} }
} }
@ -78,4 +92,9 @@ public class ArmorPlate extends Item {
return 30; return 30;
} }
public static ItemStack getInfiniteInstance() {
ItemStack stack = new ItemStack(ModItems.ARMOR_PLATE.get());
stack.getOrCreateTag().putBoolean("Infinite", true);
return stack;
}
} }

View file

@ -221,6 +221,7 @@
"item.superbwarfare.raw_silver": "Raw Silver", "item.superbwarfare.raw_silver": "Raw Silver",
"item.superbwarfare.armor_plate": "Armor Plate", "item.superbwarfare.armor_plate": "Armor Plate",
"des.superbwarfare.armor_plate.infinite": "Infinite",
"item.superbwarfare.ru_helmet_6b47": "Russia 6b47 Helmet", "item.superbwarfare.ru_helmet_6b47": "Russia 6b47 Helmet",
"item.superbwarfare.ru_chest_6b43": "Russia 6b43 Chest", "item.superbwarfare.ru_chest_6b43": "Russia 6b43 Chest",

View file

@ -221,6 +221,7 @@
"item.superbwarfare.raw_silver": "粗银", "item.superbwarfare.raw_silver": "粗银",
"item.superbwarfare.armor_plate": "防弹插板", "item.superbwarfare.armor_plate": "防弹插板",
"des.superbwarfare.armor_plate.infinite": "无限",
"item.superbwarfare.ru_helmet_6b47": "俄罗斯6B47头盔", "item.superbwarfare.ru_helmet_6b47": "俄罗斯6B47头盔",
"item.superbwarfare.ru_chest_6b43": "俄罗斯6B43防弹胸甲", "item.superbwarfare.ru_chest_6b43": "俄罗斯6B43防弹胸甲",

View file

@ -0,0 +1,14 @@
{
"parent": "item/generated",
"textures": {
"layer0": "superbwarfare:item/armor_plate"
},
"overrides": [
{
"predicate": {
"superbwarfare:armor_plate_infinite": 1
},
"model": "superbwarfare:item/armor_plate_infinite"
}
]
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "superbwarfare:item/armor_plate_infinite"
}
}