添加M35头盔,完善插板防弹机制
This commit is contained in:
parent
4e4be69dbc
commit
606904bdc8
16 changed files with 1312 additions and 23 deletions
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.1 2024-10-01T13:07:54.2773833 Item Models: superbwarfare
|
// 1.20.1 2024-10-01T17:58:21.3902677 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_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
|
||||||
|
@ -23,6 +23,7 @@ dd455cf29eed0ef5eb5e90ef3d7140cb8de61efe assets/superbwarfare/models/item/drone.
|
||||||
2419503d8b597c92684d1921895a12fca33fec69 assets/superbwarfare/models/item/epic_material_pack.json
|
2419503d8b597c92684d1921895a12fca33fec69 assets/superbwarfare/models/item/epic_material_pack.json
|
||||||
c102839d5f7d4bdc1c6cbfbf4c2c907b70f22052 assets/superbwarfare/models/item/fusee.json
|
c102839d5f7d4bdc1c6cbfbf4c2c907b70f22052 assets/superbwarfare/models/item/fusee.json
|
||||||
5326409e01ffd1f0a6330299799994e267db2b6b assets/superbwarfare/models/item/galena.json
|
5326409e01ffd1f0a6330299799994e267db2b6b assets/superbwarfare/models/item/galena.json
|
||||||
|
4bf506de247afbbec816f6637030f637e68ce0d4 assets/superbwarfare/models/item/ge_helmet_m_35.json
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/glock_17_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/glock_17_blueprint.json
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/glock_18_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/glock_18_blueprint.json
|
||||||
8752c2b2b648ff23d6b93eedcc6c0500c695afd7 assets/superbwarfare/models/item/grain.json
|
8752c2b2b648ff23d6b93eedcc6c0500c695afd7 assets/superbwarfare/models/item/grain.json
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/ge_helmet_m_35"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.mcreator.superbwarfare.client.model.armor;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.mcreator.superbwarfare.item.armor.GeHelmetM35;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
|
public class GeHelmetM35Model extends GeoModel<GeHelmetM35> {
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getAnimationResource(GeHelmetM35 object) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getModelResource(GeHelmetM35 object) {
|
||||||
|
return new ResourceLocation(ModUtils.MODID, "geo/ge_helmet_m_35.geo.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTextureResource(GeHelmetM35 object) {
|
||||||
|
return new ResourceLocation(ModUtils.MODID, "textures/armor/ge_helmet_m_35.png");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package net.mcreator.superbwarfare.client.renderer.armor;
|
||||||
|
|
||||||
|
import net.mcreator.superbwarfare.client.model.armor.GeHelmetM35Model;
|
||||||
|
import net.mcreator.superbwarfare.item.armor.GeHelmetM35;
|
||||||
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
|
import software.bernie.geckolib.renderer.GeoArmorRenderer;
|
||||||
|
|
||||||
|
public class GeHelmetM35ArmorRenderer extends GeoArmorRenderer<GeHelmetM35> {
|
||||||
|
public GeHelmetM35ArmorRenderer() {
|
||||||
|
super(new GeHelmetM35Model());
|
||||||
|
this.head = new GeoBone(null, "", false, (double) 0, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RenderType getRenderType(GeHelmetM35 animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||||
|
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||||
|
}
|
||||||
|
}
|
|
@ -93,6 +93,7 @@ public class ModItemModelProvider extends ItemModelProvider {
|
||||||
simpleItem(ModItems.RU_CHEST_6B43);
|
simpleItem(ModItems.RU_CHEST_6B43);
|
||||||
simpleItem(ModItems.US_HELMET_PASTG);
|
simpleItem(ModItems.US_HELMET_PASTG);
|
||||||
simpleItem(ModItems.US_CHEST_IOTV);
|
simpleItem(ModItems.US_CHEST_IOTV);
|
||||||
|
simpleItem(ModItems.GE_HELMET_M_35);
|
||||||
|
|
||||||
// blueprints
|
// blueprints
|
||||||
blueprintItem(ModItems.TRACHELIUM_BLUEPRINT);
|
blueprintItem(ModItems.TRACHELIUM_BLUEPRINT);
|
||||||
|
|
|
@ -68,7 +68,6 @@ public class LivingEventHandler {
|
||||||
*/
|
*/
|
||||||
private static void reduceBulletDamage(LivingHurtEvent event) {
|
private static void reduceBulletDamage(LivingHurtEvent event) {
|
||||||
DamageSource source = event.getSource();
|
DamageSource source = event.getSource();
|
||||||
if (source == null) return;
|
|
||||||
LivingEntity entity = event.getEntity();
|
LivingEntity entity = event.getEntity();
|
||||||
if (entity == null) return;
|
if (entity == null) return;
|
||||||
Entity sourceEntity = source.getEntity();
|
Entity sourceEntity = source.getEntity();
|
||||||
|
@ -79,6 +78,7 @@ public class LivingEventHandler {
|
||||||
|
|
||||||
ItemStack stack = sourceEntity instanceof LivingEntity living ? living.getMainHandItem() : ItemStack.EMPTY;
|
ItemStack stack = sourceEntity instanceof LivingEntity living ? living.getMainHandItem() : ItemStack.EMPTY;
|
||||||
|
|
||||||
|
//距离衰减
|
||||||
if (DamageTypeTool.isGunDamage(source)) {
|
if (DamageTypeTool.isGunDamage(source)) {
|
||||||
double distance = entity.position().distanceTo(sourceEntity.position());
|
double distance = entity.position().distanceTo(sourceEntity.position());
|
||||||
|
|
||||||
|
@ -95,24 +95,28 @@ public class LivingEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source.is(ModTags.DamageTypes.PROJECTILE)) {
|
//计算防弹插板减伤
|
||||||
damage *= 1 - Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
if (source.is(ModTags.DamageTypes.PROJECTILE) || source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) {
|
||||||
|
ItemStack armor = entity.getItemBySlot(EquipmentSlot.CHEST);
|
||||||
|
|
||||||
|
if (armor != ItemStack.EMPTY && armor.getTag() != null && armor.getTag().contains("ArmorPlate")) {
|
||||||
|
double armorValue;
|
||||||
|
armorValue = armor.getOrCreateTag().getDouble("ArmorPlate");
|
||||||
|
armor.getOrCreateTag().putDouble("ArmorPlate", Math.max(armor.getOrCreateTag().getDouble("ArmorPlate") - damage, 0));
|
||||||
|
damage = Math.max(damage - armorValue, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
//计算防弹护具减伤
|
||||||
|
if (source.is(ModTags.DamageTypes.PROJECTILE)) {
|
||||||
|
damage *= 1 - 0.8 * Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) {
|
||||||
|
damage *= 1 - 0.2 * Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) {
|
event.setAmount((float) damage);
|
||||||
damage *= 1 - 0.2 * Mth.clamp(entity.getAttributeValue(ModAttributes.BULLET_RESISTANCE.get()), 0, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack armor = entity.getItemBySlot(EquipmentSlot.CHEST);
|
|
||||||
|
|
||||||
double armorValue = 0;
|
|
||||||
|
|
||||||
if (armor != ItemStack.EMPTY) {
|
|
||||||
armorValue = armor.getOrCreateTag().getDouble("ArmorPlate");
|
|
||||||
armor.getOrCreateTag().putDouble("ArmorPlate", Math.max(armor.getOrCreateTag().getDouble("ArmorPlate") - damage, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
event.setAmount((float) (Math.max(damage - armorValue, 0)));
|
|
||||||
|
|
||||||
if (entity instanceof TargetEntity && sourceEntity instanceof Player player) {
|
if (entity instanceof TargetEntity && sourceEntity instanceof Player player) {
|
||||||
player.displayClientMessage(Component.literal("Damage:" + new DecimalFormat("##.#").format(damage) +
|
player.displayClientMessage(Component.literal("Damage:" + new DecimalFormat("##.#").format(damage) +
|
||||||
|
|
|
@ -2,10 +2,7 @@ package net.mcreator.superbwarfare.init;
|
||||||
|
|
||||||
import net.mcreator.superbwarfare.ModUtils;
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
import net.mcreator.superbwarfare.item.*;
|
import net.mcreator.superbwarfare.item.*;
|
||||||
import net.mcreator.superbwarfare.item.armor.RuChest6b43;
|
import net.mcreator.superbwarfare.item.armor.*;
|
||||||
import net.mcreator.superbwarfare.item.armor.RuHelmet6b47;
|
|
||||||
import net.mcreator.superbwarfare.item.armor.UsChestIotv;
|
|
||||||
import net.mcreator.superbwarfare.item.armor.UsHelmetPastg;
|
|
||||||
import net.mcreator.superbwarfare.item.common.BlueprintItem;
|
import net.mcreator.superbwarfare.item.common.BlueprintItem;
|
||||||
import net.mcreator.superbwarfare.item.common.MaterialPack;
|
import net.mcreator.superbwarfare.item.common.MaterialPack;
|
||||||
import net.mcreator.superbwarfare.item.common.ammo.*;
|
import net.mcreator.superbwarfare.item.common.ammo.*;
|
||||||
|
@ -130,6 +127,7 @@ public class ModItems {
|
||||||
public static final RegistryObject<Item> RU_CHEST_6B43 = ITEMS.register("ru_chest_6b43", RuChest6b43::new);
|
public static final RegistryObject<Item> RU_CHEST_6B43 = ITEMS.register("ru_chest_6b43", RuChest6b43::new);
|
||||||
public static final RegistryObject<Item> US_HELMET_PASTG = ITEMS.register("us_helmet_pastg", UsHelmetPastg::new);
|
public static final RegistryObject<Item> US_HELMET_PASTG = ITEMS.register("us_helmet_pastg", UsHelmetPastg::new);
|
||||||
public static final RegistryObject<Item> US_CHEST_IOTV = ITEMS.register("us_chest_iotv", UsChestIotv::new);
|
public static final RegistryObject<Item> US_CHEST_IOTV = ITEMS.register("us_chest_iotv", UsChestIotv::new);
|
||||||
|
public static final RegistryObject<Item> GE_HELMET_M_35 = ITEMS.register("ge_helmet_m_35", GeHelmetM35::new);
|
||||||
public static final RegistryObject<Item> MORTAR_DEPLOYER = ITEMS.register("mortar_deployer", MortarDeployer::new);
|
public static final RegistryObject<Item> MORTAR_DEPLOYER = ITEMS.register("mortar_deployer", MortarDeployer::new);
|
||||||
public static final RegistryObject<Item> MORTAR_BARREL = ITEMS.register("mortar_barrel", () -> new Item(new Item.Properties()));
|
public static final RegistryObject<Item> MORTAR_BARREL = ITEMS.register("mortar_barrel", () -> new Item(new Item.Properties()));
|
||||||
public static final RegistryObject<Item> MORTAR_BASE_PLATE = ITEMS.register("mortar_base_plate", () -> new Item(new Item.Properties()));
|
public static final RegistryObject<Item> MORTAR_BASE_PLATE = ITEMS.register("mortar_base_plate", () -> new Item(new Item.Properties()));
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
package net.mcreator.superbwarfare.item.armor;
|
||||||
|
|
||||||
|
import com.google.common.collect.HashMultimap;
|
||||||
|
import com.google.common.collect.Multimap;
|
||||||
|
import net.mcreator.superbwarfare.ModUtils;
|
||||||
|
import net.mcreator.superbwarfare.client.renderer.armor.GeHelmetM35ArmorRenderer;
|
||||||
|
import net.mcreator.superbwarfare.init.ModAttributes;
|
||||||
|
import net.mcreator.superbwarfare.tiers.ModArmorMaterial;
|
||||||
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.Attribute;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
|
||||||
|
import net.minecraft.world.item.ArmorItem;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||||
|
import software.bernie.geckolib.animatable.GeoItem;
|
||||||
|
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||||
|
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||||
|
import software.bernie.geckolib.renderer.GeoArmorRenderer;
|
||||||
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
public class GeHelmetM35 extends ArmorItem implements GeoItem {
|
||||||
|
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
|
||||||
|
public GeHelmetM35() {
|
||||||
|
super(ModArmorMaterial.STEEL, Type.HELMET, new Properties());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initializeClient(Consumer<IClientItemExtensions> consumer) {
|
||||||
|
consumer.accept(new IClientItemExtensions() {
|
||||||
|
private GeoArmorRenderer<?> renderer;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HumanoidModel<?> getHumanoidArmorModel(LivingEntity livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, HumanoidModel<?> original) {
|
||||||
|
if (this.renderer == null)
|
||||||
|
this.renderer = new GeHelmetM35ArmorRenderer();
|
||||||
|
this.renderer.prepForRender(livingEntity, itemStack, equipmentSlot, original);
|
||||||
|
return this.renderer;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
|
||||||
|
Multimap<Attribute, AttributeModifier> map = super.getDefaultAttributeModifiers(slot);
|
||||||
|
UUID uuid = new UUID(slot.toString().hashCode(), 0);
|
||||||
|
if (slot == EquipmentSlot.HEAD) {
|
||||||
|
map = HashMultimap.create(map);
|
||||||
|
map.put(ModAttributes.BULLET_RESISTANCE.get(), new AttributeModifier(uuid, ModUtils.ATTRIBUTE_MODIFIER,
|
||||||
|
0.1 * Math.max(0, 1 - (double) stack.getDamageValue() / stack.getMaxDamage()), AttributeModifier.Operation.ADDITION));
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||||
|
return this.cache;
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,7 +18,13 @@ public enum ModArmorMaterial implements ArmorMaterial {
|
||||||
p.put(ArmorItem.Type.LEGGINGS, 6);
|
p.put(ArmorItem.Type.LEGGINGS, 6);
|
||||||
p.put(ArmorItem.Type.CHESTPLATE, 8);
|
p.put(ArmorItem.Type.CHESTPLATE, 8);
|
||||||
p.put(ArmorItem.Type.HELMET, 3);
|
p.put(ArmorItem.Type.HELMET, 3);
|
||||||
}), 10, SoundEvents.ARMOR_EQUIP_IRON, 4.0F, 0.0F, () -> Ingredient.of(ModItems.CEMENTED_CARBIDE_INGOT.get()));
|
}), 10, SoundEvents.ARMOR_EQUIP_IRON, 4.0F, 0.05F, () -> Ingredient.of(ModItems.CEMENTED_CARBIDE_INGOT.get())),
|
||||||
|
STEEL("steel", 35, Util.make(new EnumMap<>(ArmorItem.Type.class), p -> {
|
||||||
|
p.put(ArmorItem.Type.BOOTS, 2);
|
||||||
|
p.put(ArmorItem.Type.LEGGINGS, 5);
|
||||||
|
p.put(ArmorItem.Type.CHESTPLATE, 7);
|
||||||
|
p.put(ArmorItem.Type.HELMET, 2);
|
||||||
|
}), 9, SoundEvents.ARMOR_EQUIP_IRON, 1.0F, 0.0F, () -> Ingredient.of(ModItems.STEEL_INGOT.get()));
|
||||||
|
|
||||||
private static final EnumMap<ArmorItem.Type, Integer> HEALTH_FUNCTION_FOR_TYPE = Util.make(new EnumMap<>(ArmorItem.Type.class), (p_266653_) -> {
|
private static final EnumMap<ArmorItem.Type, Integer> HEALTH_FUNCTION_FOR_TYPE = Util.make(new EnumMap<>(ArmorItem.Type.class), (p_266653_) -> {
|
||||||
p_266653_.put(ArmorItem.Type.BOOTS, 13);
|
p_266653_.put(ArmorItem.Type.BOOTS, 13);
|
||||||
|
|
1139
src/main/resources/assets/superbwarfare/geo/ge_helmet_m_35.geo.json
Normal file
1139
src/main/resources/assets/superbwarfare/geo/ge_helmet_m_35.geo.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -208,6 +208,7 @@
|
||||||
"item.superbwarfare.ru_chest_6b43": "Russia 6b43 Chest",
|
"item.superbwarfare.ru_chest_6b43": "Russia 6b43 Chest",
|
||||||
"item.superbwarfare.us_helmet_pastg": "US PASTG Helmet",
|
"item.superbwarfare.us_helmet_pastg": "US PASTG Helmet",
|
||||||
"item.superbwarfare.us_chest_iotv": "US IOTV Chest",
|
"item.superbwarfare.us_chest_iotv": "US IOTV Chest",
|
||||||
|
"item.superbwarfare.ge_helmet_m_35": "Germany M35 Helmet",
|
||||||
|
|
||||||
"item.superbwarfare.ap_bullet": "Ap Bullet",
|
"item.superbwarfare.ap_bullet": "Ap Bullet",
|
||||||
"des.superbwarfare.ap_bullet": "Increased the armor-piercing ratio of bullets",
|
"des.superbwarfare.ap_bullet": "Increased the armor-piercing ratio of bullets",
|
||||||
|
|
|
@ -208,6 +208,7 @@
|
||||||
"item.superbwarfare.ru_chest_6b43": "俄罗斯6B43防弹胸甲",
|
"item.superbwarfare.ru_chest_6b43": "俄罗斯6B43防弹胸甲",
|
||||||
"item.superbwarfare.us_helmet_pastg": "美制PASTG头盔",
|
"item.superbwarfare.us_helmet_pastg": "美制PASTG头盔",
|
||||||
"item.superbwarfare.us_chest_iotv": "美制IOTV防弹胸甲",
|
"item.superbwarfare.us_chest_iotv": "美制IOTV防弹胸甲",
|
||||||
|
"item.superbwarfare.ge_helmet_m_35": "德国M35头盔",
|
||||||
|
|
||||||
"item.superbwarfare.ap_bullet": "穿甲弹",
|
"item.superbwarfare.ap_bullet": "穿甲弹",
|
||||||
"des.superbwarfare.ap_bullet": "增加子弹的穿甲比例",
|
"des.superbwarfare.ap_bullet": "增加子弹的穿甲比例",
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 386 B |
Binary file not shown.
After Width: | Height: | Size: 342 B |
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"pattern": [
|
||||||
|
"aaa",
|
||||||
|
"aba"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"a": {
|
||||||
|
"tag":"forge:ingots/steel"
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"tag": "forge:dyes/black"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "superbwarfare:ge_helmet_m_35",
|
||||||
|
"count": 1
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue