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

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/ak_12_blueprint.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json
c993bddc0db9453ffbefa59f9ac9a74dba909038 assets/superbwarfare/models/item/ancient_cpu.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
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/bocek_blueprint.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.LEGENDARY_MATERIAL_PACK);
simpleItem(ModItems.ARMOR_PLATE);
// armor
simpleItem(ModItems.RU_HELMET_6B47);

View file

@ -299,16 +299,9 @@ public class PlayerEventHandler {
private static void handleRespawnReload(Player player) {
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) {
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());
if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && cap.shotgunAmmo > 0) {

View file

@ -1,18 +1,20 @@
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.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.mcreator.superbwarfare.tools.ItemNBTTool;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class ModProperties {
@SubscribeEvent
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));
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;
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.Glock18Item;
import net.mcreator.superbwarfare.item.gun.handgun.M1911Item;
@ -98,7 +99,12 @@ public class ModTabs {
.title(Component.translatable("item_group.superbwarfare.item"))
.icon(() -> new ItemStack(ModItems.TARGET_DEPLOYER.get()))
.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());
public static final RegistryObject<CreativeModeTab> BLOCK_TAB = TABS.register("block",

View file

@ -1,6 +1,9 @@
package net.mcreator.superbwarfare.item;
import net.mcreator.superbwarfare.init.ModItems;
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.sounds.SoundEvents;
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.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.UseAnim;
import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
public class ArmorPlate extends Item {
public ArmorPlate() {
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
public @NotNull InteractionResultHolder<ItemStack> use(Level worldIn, Player playerIn, InteractionHand 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);
}
if (pLivingEntity instanceof Player player && !player.isCreative()) {
if (pLivingEntity instanceof Player player && !player.isCreative() && !pStack.getOrCreateTag().getBoolean("Infinite")) {
pStack.shrink(1);
}
}
@ -78,4 +92,9 @@ public class ArmorPlate extends Item {
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.armor_plate": "Armor Plate",
"des.superbwarfare.armor_plate.infinite": "Infinite",
"item.superbwarfare.ru_helmet_6b47": "Russia 6b47 Helmet",
"item.superbwarfare.ru_chest_6b43": "Russia 6b43 Chest",

View file

@ -221,6 +221,7 @@
"item.superbwarfare.raw_silver": "粗银",
"item.superbwarfare.armor_plate": "防弹插板",
"des.superbwarfare.armor_plate.infinite": "无限",
"item.superbwarfare.ru_helmet_6b47": "俄罗斯6B47头盔",
"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"
}
}