添加新材料,修改部分配方,添加LAV150的配方,添加二次灾变近战功能

This commit is contained in:
Atsuihsio 2025-01-18 11:27:01 +08:00
parent cda8be8b26
commit b7f9ebce65
25 changed files with 418 additions and 10 deletions

View file

@ -1,4 +1,4 @@
// 1.20.1 2025-01-17T20:28:44.4663695 Item Models: superbwarfare
// 1.20.1 2025-01-18T09:52:20.4788146 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
@ -50,6 +50,7 @@ e04bbd61e716fc5d53c9425aba508fc3287bfd57 assets/superbwarfare/models/item/iron_p
95c0f92c4a4b3adff9c95878540071b04a921792 assets/superbwarfare/models/item/large_propeller.json
ce9e4fd8ea92cfdbdda158776c1b6e1b482a3f2a assets/superbwarfare/models/item/lead_ingot.json
f66c351b4843ad4d4e086ccfb7d4d0221227d196 assets/superbwarfare/models/item/legendary_material_pack.json
ec76dc1a79f4c0e502fee53be8aa8e04420845fc assets/superbwarfare/models/item/light_armament_module.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/m2hb_blueprint.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/marlin_blueprint.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/minigun_blueprint.json
@ -111,3 +112,4 @@ b4e6c184478f8dc764fb7071ac5e30939cd01d9d assets/superbwarfare/models/item/tungst
fe78719387b06e37de4abe02c808a8f2dba179f8 assets/superbwarfare/models/item/us_chest_iotv.json
01dabedc256e53d58a14f4ba9ce83b839f3a7bdb assets/superbwarfare/models/item/us_helmet_pastg.json
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/vector_blueprint.json
7e4ba98653b69bcdc7e9bdbd05d2e8b8b20df293 assets/superbwarfare/models/item/wheel.json

View file

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

View file

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

View file

@ -167,6 +167,7 @@ public class ModUtils {
addNetworkMessage(PlayerStopRidingMessage.class, PlayerStopRidingMessage::encode, PlayerStopRidingMessage::decode, PlayerStopRidingMessage::handler);
addNetworkMessage(AimVillagerMessage.class, AimVillagerMessage::encode, AimVillagerMessage::decode, AimVillagerMessage::handler);
addNetworkMessage(ShowChargingRangeMessage.class, ShowChargingRangeMessage::encode, ShowChargingRangeMessage::decode, ShowChargingRangeMessage::handler);
addNetworkMessage(MeleeAttackMessage.class, MeleeAttackMessage::encode, MeleeAttackMessage::decode, MeleeAttackMessage::handler);
event.enqueueWork(() -> BrewingRecipeRegistry.addRecipe(Ingredient.of(PotionUtils.setPotion(new ItemStack(Items.POTION), Potions.WATER)),
Ingredient.of(Items.LIGHTNING_ROD), PotionUtils.setPotion(new ItemStack(Items.POTION), ModPotion.SHOCK.get())));

View file

@ -31,7 +31,9 @@ public class ModItemModelProvider extends ItemModelProvider {
simpleItem(ModItems.LARGE_PROPELLER);
simpleItem(ModItems.MOTOR);
simpleItem(ModItems.LARGE_MOTOR);
simpleItem(ModItems.WHEEL);
simpleItem(ModItems.DRONE);
simpleItem(ModItems.LIGHT_ARMAMENT_MODULE);
simpleItem(ModItems.TARGET_DEPLOYER);
simpleItem(ModItems.MORTAR_DEPLOYER);

View file

@ -301,8 +301,6 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, ICannonEntit
this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -3f, 3f), -85, 16.3f));
}
}
}
public boolean setTarget(ItemStack stack) {

View file

@ -146,6 +146,7 @@ public class ClientEventHandler {
public static double shakeType = 0;
public static int lungeAttack;
public static int lungeDraw;
public static int gunMelee;
public static int lungeSprint;
public static Entity entity;
@ -220,6 +221,7 @@ public class ClientEventHandler {
isProne(player);
beamShoot(player, stack);
handleLungeAttack(player, stack);
handleGunMelee(player, stack);
if (event.phase == TickEvent.Phase.END) {
handleVariableDecrease();
@ -249,6 +251,43 @@ public class ClientEventHandler {
&& !level.getBlockState(BlockPos.containing(player.getX() + 0.7 * player.getLookAngle().x, player.getY() + 1.5, player.getZ() + 0.7 * player.getLookAngle().z)).canOcclude();
}
public static void handleGunMelee(Player player, ItemStack stack) {
if (stack.getItem() instanceof GunItem gunItem) {
if (gunItem.canUseMelee(stack) && gunMelee == 0 && drawTime < 0.01
&& ModKeyMappings.MELEE.isDown()
&& !(player.getVehicle() instanceof IArmedVehicleEntity iArmedVehicle && iArmedVehicle.isDriver(player) && iArmedVehicle.banHand())
&& !holdFireVehicle
&& !notInGame()
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))
&& !GunsTool.getGunBooleanTag(stack, "Reloading")
&& !player.getCooldowns().isOnCooldown(stack.getItem())
&& !GunsTool.getGunBooleanTag(stack, "Charging")) {
gunMelee = 36;
cantFireTime = 40;
player.playSound(SoundEvents.PLAYER_ATTACK_SWEEP, 1f, 1);
}
if (gunMelee == 22) {
boolean lookAtEntity = false;
Entity lookingEntity = TraceTool.findMeleeEntity(player, player.getEntityReach());
if (lookingEntity != null) {
lookAtEntity = true;
}
if (lookAtEntity) {
ModUtils.PACKET_HANDLER.sendToServer(new MeleeAttackMessage(lookingEntity.getUUID()));
}
}
}
if (gunMelee > 0) {
gunMelee--;
}
}
public static void handleLungeAttack(Player player, ItemStack stack) {
if (stack.is(ModItems.LUNGE_MINE.get()) && lungeAttack == 0 && lungeDraw == 0 && holdFire) {
lungeAttack = 36;
@ -260,12 +299,12 @@ public class ClientEventHandler {
boolean lookAtEntity = false;
Entity lookingEntity = TraceTool.findLookingEntity(player, player.getEntityReach() + 2);
Entity lookingEntity = TraceTool.findLookingEntity(player, player.getEntityReach() + 2.5);
BlockHitResult result = player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 2)),
BlockHitResult result = player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 2.5)),
ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player));
Vec3 looking = Vec3.atLowerCornerOf(player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 2)), ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos());
Vec3 looking = Vec3.atLowerCornerOf(player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 2.5)), ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos());
BlockState blockState = player.level().getBlockState(BlockPos.containing(looking.x(), looking.y(), looking.z()));
if (lookingEntity != null) {

View file

@ -123,6 +123,7 @@ public class ModItems {
public static final RegistryObject<Item> LARGE_PROPELLER = ITEMS.register("large_propeller", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> MOTOR = ITEMS.register("motor", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> LARGE_MOTOR = ITEMS.register("large_motor", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> WHEEL = ITEMS.register("wheel", () -> new Item(new Item.Properties()));
public static final RegistryObject<Item> DRONE = ITEMS.register("drone", Drone::new);
public static final RegistryObject<Item> MONITOR = ITEMS.register("monitor", Monitor::new);
@ -229,6 +230,7 @@ public class ModItems {
public static final RegistryObject<Item> MK_42_BLUEPRINT = ITEMS.register("mk_42_blueprint", () -> new BlueprintItem(RarityTool.LEGENDARY));
public static final RegistryObject<Item> MLE_1934_BLUEPRINT = ITEMS.register("mle_1934_blueprint", () -> new BlueprintItem(RarityTool.LEGENDARY));
public static final RegistryObject<Item> ANNIHILATOR_BLUEPRINT = ITEMS.register("annihilator_blueprint", () -> new BlueprintItem(RarityTool.LEGENDARY));
public static final RegistryObject<Item> LIGHT_ARMAMENT_MODULE = ITEMS.register("light_armament_module", () -> new BlueprintItem(Rarity.RARE));
/**
* Block

View file

@ -54,6 +54,7 @@ public class ModKeyMappings {
public static final KeyMapping HOLD_ZOOM = new KeyMapping("key.superbwarfare.hold_zoom", InputConstants.Type.MOUSE, GLFW.GLFW_MOUSE_BUTTON_RIGHT, "key.categories.superbwarfare");
public static final KeyMapping SWITCH_ZOOM = new KeyMapping("key.superbwarfare.switch_zoom", GLFW.GLFW_KEY_UNKNOWN, "key.categories.superbwarfare");
public static final KeyMapping RELEASE_DECOY = new KeyMapping("key.superbwarfare.release_decoy", GLFW.GLFW_KEY_X, "key.categories.superbwarfare");
public static final KeyMapping MELEE = new KeyMapping("key.superbwarfare.melee", GLFW.GLFW_KEY_V, "key.categories.superbwarfare");
@SubscribeEvent
public static void registerKeyMappings(RegisterKeyMappingsEvent event) {
@ -75,6 +76,7 @@ public class ModKeyMappings {
event.register(HOLD_ZOOM);
event.register(SWITCH_ZOOM);
event.register(RELEASE_DECOY);
event.register(MELEE);
}
@Mod.EventBusSubscriber(value = Dist.CLIENT)

View file

@ -295,6 +295,9 @@ public abstract class GunItem extends Item {
public boolean ejectShell(ItemStack stack) {
return false;
}
public boolean canUseMelee(ItemStack stack) {
return false;
}
public int getFireMode() {
return 0;

View file

@ -14,6 +14,8 @@ import com.atsuishio.superbwarfare.perk.Perk;
import com.atsuishio.superbwarfare.perk.PerkHelper;
import com.atsuishio.superbwarfare.tools.GunsTool;
import com.atsuishio.superbwarfare.tools.RarityTool;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
@ -23,7 +25,11 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.Entity;
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.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.tooltip.TooltipComponent;
import net.minecraft.world.item.ItemDisplayContext;
@ -43,6 +49,7 @@ import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
import java.util.function.Supplier;
@ -131,6 +138,10 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, AnimatedItem
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.iterativeload2"));
}
if (ClientEventHandler.gunMelee > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.hit"));
}
if (stack.getOrCreateTag().getInt("reload_stage") == 3) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sc.finish"));
}
@ -151,6 +162,7 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, AnimatedItem
&& stack.getOrCreateTag().getInt("reload_stage") != 2
&& stack.getOrCreateTag().getInt("reload_stage") != 3
&& ClientEventHandler.drawTime < 0.01
&& ClientEventHandler.gunMelee == 0
&& !GunsTool.getGunBooleanTag(stack, "Reloading")) {
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sc.run_fast"));
@ -264,11 +276,28 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, AnimatedItem
return Optional.of(new SecondaryCataclysmImageComponent(pStack));
}
@Override
public Multimap<Attribute, AttributeModifier> getAttributeModifiers(EquipmentSlot slot, ItemStack stack) {
Multimap<Attribute, AttributeModifier> map = super.getAttributeModifiers(slot, stack);
UUID uuid = new UUID(slot.toString().hashCode(), 0);
if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map);
map.put(Attributes.ATTACK_DAMAGE,
new AttributeModifier(uuid, ModUtils.ATTRIBUTE_MODIFIER,19, AttributeModifier.Operation.ADDITION));
}
return map;
}
@Override
public boolean isIterativeReload(ItemStack stack) {
return true;
}
@Override
public boolean canUseMelee(ItemStack stack) {
return true;
}
@Override
public int getFireMode() {
return FireMode.SEMI.flag;

View file

@ -0,0 +1,45 @@
package com.atsuishio.superbwarfare.network.message;
import com.atsuishio.superbwarfare.tools.EntityFindUtil;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.network.NetworkEvent;
import java.util.UUID;
import java.util.function.Supplier;
public class MeleeAttackMessage {
private final UUID uuid;
public MeleeAttackMessage(UUID uuid) {
this.uuid = uuid;
}
public static MeleeAttackMessage decode(FriendlyByteBuf buffer) {
return new MeleeAttackMessage(buffer.readUUID());
}
public static void encode(MeleeAttackMessage message, FriendlyByteBuf buffer) {
buffer.writeUUID(message.uuid);
}
public static void handler(MeleeAttackMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
NetworkEvent.Context context = contextSupplier.get();
context.enqueueWork(() -> {
if (context.getSender() != null) {
Player player = context.getSender();
Entity lookingEntity = EntityFindUtil.findEntity(player.level(), String.valueOf(message.uuid));
if (lookingEntity != null) {
player.attack(lookingEntity);
}
}
});
context.setPacketHandled(true);
}
}

View file

@ -44,6 +44,25 @@ public class TraceTool {
return null;
}
public static Entity findMeleeEntity(Entity entity, double entityReach) {
double distance = entityReach * entityReach;
Vec3 eyePos = entity.getEyePosition(1.0f);
HitResult hitResult = entity.pick(entityReach, 1.0f, false);
Vec3 viewVec = entity.getViewVector(1.0F);
Vec3 toVec = eyePos.add(viewVec.x * entityReach, viewVec.y * entityReach, viewVec.z * entityReach);
AABB aabb = entity.getBoundingBox().expandTowards(viewVec.scale(entityReach)).inflate(1.0D, 1.0D, 1.0D);
EntityHitResult entityhitresult = ProjectileUtil.getEntityHitResult(entity, eyePos, toVec, aabb, p -> !p.isSpectator() && entity.getVehicle() != p && p.isAlive(), distance);
if (entityhitresult != null) {
hitResult = entityhitresult;
}
if (hitResult.getType() == HitResult.Type.ENTITY) {
return ((EntityHitResult) hitResult).getEntity();
}
return null;
}
public static Entity laserfindLookingEntity(Entity player, double entityReach) {
BlockHitResult blockResult = player.level().clip(

View file

@ -358,7 +358,7 @@
"0.975": [0, 0, 45],
"1.1333": [0, 0, 45],
"1.4833": [0, 0, 45],
"1.4834": [0, 0, 0],
"1.4834": [0, 0, 0],
"1.5167": [0, 0, 0]
},
"position": [0, 0, 0]
@ -1039,6 +1039,169 @@
}
}
}
},
"animation.sc.hit": {
"animation_length": 1,
"bones": {
"0": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0917": {
"post": [-5.94963, -8.76229, -6.05976],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [14.48058, -6.87966, -12.98807],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-2.38602, -3.01888, -5.49135],
"lerp_mode": "catmullrom"
},
"0.3": {
"post": [-2.38602, -3.01888, 7.65865],
"lerp_mode": "catmullrom"
},
"0.4": {
"post": [2.08183, 1.5984, -4.23932],
"lerp_mode": "catmullrom"
},
"0.5167": {
"post": [-2.07662, -0.86851, 1.03602],
"lerp_mode": "catmullrom"
},
"0.6333": {
"post": [1.13, 0.68, -0.56],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
},
"position": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0667": {
"post": [-1.34989, -2.53343, -0.04567],
"lerp_mode": "catmullrom"
},
"0.1667": {
"post": [-4.3, -5, 9.45],
"lerp_mode": "catmullrom"
},
"0.25": {
"post": [-1.3, -2.8, -1.25],
"lerp_mode": "catmullrom"
},
"0.3": {
"post": [-0.05, -2.65, -7.45],
"lerp_mode": "catmullrom"
},
"0.4": {
"post": [0.09403, 0.11922, -1.00188],
"lerp_mode": "catmullrom"
},
"0.475": {
"post": [-0.1, 0.02, 1.05],
"lerp_mode": "catmullrom"
},
"0.5833": {
"post": [-0.09328, 0.05092, -0.10899],
"lerp_mode": "catmullrom"
},
"0.675": {
"post": [-0.01, 0.01, 0.24],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"camera": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.1": {
"post": [1.25, -1, -2],
"lerp_mode": "catmullrom"
},
"0.2083": {
"post": [1.25, -0.75, 1.05],
"lerp_mode": "catmullrom"
},
"0.3": {
"post": [1.91, -1.57, -3.13],
"lerp_mode": "catmullrom"
},
"0.3333": {
"post": [-2.08, 0.85, 3.57],
"lerp_mode": "catmullrom"
},
"0.4417": {
"post": [1.04, -1.31, -0.57],
"lerp_mode": "catmullrom"
},
"0.5667": {
"post": [-0.13, 0.13, 0.22],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
},
"tiba": {
"rotation": {
"0.0": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
},
"0.0667": {
"post": [0, 0, -12],
"lerp_mode": "catmullrom"
},
"0.15": {
"post": [0, 0, 2.15],
"lerp_mode": "catmullrom"
},
"0.2417": {
"post": [0, 0, 19.73],
"lerp_mode": "catmullrom"
},
"0.3083": {
"post": [0, 0, -7.5],
"lerp_mode": "catmullrom"
},
"0.4": {
"post": [0, 0, 12.77],
"lerp_mode": "catmullrom"
},
"0.4833": {
"post": [0, 0, -2.77],
"lerp_mode": "catmullrom"
},
"0.6": {
"post": [0, 0, 1.57],
"lerp_mode": "catmullrom"
},
"0.75": {
"post": [0, 0, 0],
"lerp_mode": "catmullrom"
}
}
}
}
}
}
}

View file

@ -191,6 +191,7 @@
"item.superbwarfare.large_propeller": "Large Propeller",
"item.superbwarfare.motor": "Motor",
"item.superbwarfare.large_motor": "Large Motor",
"item.superbwarfare.wheel": "Wheel",
"item.superbwarfare.hand_grenade": "Hand Grenade",
"item.superbwarfare.rgo_grenade": "RGO Grenade",
"item.superbwarfare.transcript": "Transcript",
@ -199,6 +200,7 @@
"des.superbwarfare.transcript.distance": "Distance: ",
"des.superbwarfare.transcript.total": "Total: ",
"item.superbwarfare.beam_test": "[ZzzzBoom!]",
"item.superbwarfare.light_armament_module": "Light Armament Module",
"attribute.superbwarfare.bullet_resistance": "Bullet Resistance",
@ -414,6 +416,7 @@
"key.superbwarfare.edit_stock": "Switch Stock",
"key.superbwarfare.edit_grip": "Switch Grip",
"key.superbwarfare.release_decoy": "Release Decoy",
"key.superbwarfare.melee": "Melee",
"effect.superbwarfare.shock": "Shock",
"effect.superbwarfare.burn": "Burn",

View file

@ -191,6 +191,7 @@
"item.superbwarfare.large_propeller": "大型螺旋桨",
"item.superbwarfare.motor": "马达",
"item.superbwarfare.large_motor": "大型电动机",
"item.superbwarfare.wheel": "车轮",
"item.superbwarfare.hand_grenade": "M67手榴弹",
"item.superbwarfare.rgo_grenade": "RGO手榴弹",
"item.superbwarfare.transcript": "成绩单",
@ -199,6 +200,7 @@
"des.superbwarfare.transcript.distance": "距离:",
"des.superbwarfare.transcript.total": "总环数:",
"item.superbwarfare.beam_test": "[滋崩]",
"item.superbwarfare.light_armament_module": "轻型武装模块",
"attribute.superbwarfare.bullet_resistance": "子弹防护",
@ -412,6 +414,7 @@
"key.superbwarfare.edit_stock": "切换枪托",
"key.superbwarfare.edit_grip": "切换握把",
"key.superbwarfare.release_decoy": "释放诱饵",
"key.superbwarfare.melee": "枪械近战",
"effect.superbwarfare.shock": "电击",
"effect.superbwarfare.burn": "点燃",

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

View file

@ -29,7 +29,7 @@
"item": "superbwarfare:cell"
},
"h": {
"item": "minecraft:dispenser"
"item": "superbwarfare:light_armament_module"
}
},
"result": {

View file

@ -14,7 +14,7 @@
"item": "minecraft:dispenser"
},
"c": {
"item": "minecraft:nether_star"
"item": "superbwarfare:cemented_carbide_action"
},
"d": {
"item": "minecraft:piston"

View file

@ -0,0 +1,37 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"pattern": [
"dbf",
"eee",
"hgh"
],
"key": {
"b": {
"item": "superbwarfare:light_armament_module"
},
"d": {
"item": "superbwarfare:cell"
},
"e": {
"item":"superbwarfare:steel_block"
},
"f": {
"item": "minecraft:chest"
},
"g": {
"item": "superbwarfare:large_motor"
},
"h": {
"item": "superbwarfare:wheel"
}
},
"result": {
"item": "superbwarfare:container",
"nbt": {
"BlockEntityTag": {
"EntityType": "superbwarfare:lav_150"
}
}
}
}

View file

@ -0,0 +1,27 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"pattern": [
"ddd",
"abc",
"ddd"
],
"key": {
"a": {
"item": "superbwarfare:steel_barrel"
},
"b": {
"item": "superbwarfare:rare_material_pack"
},
"c": {
"item": "minecraft:dispenser"
},
"d": {
"tag":"forge:ingots/steel"
}
},
"result": {
"item": "superbwarfare:light_armament_module",
"count": 1
}
}

View file

@ -13,7 +13,7 @@
"item": "superbwarfare:cell"
},
"c": {
"item": "minecraft:black_wool"
"item": "superbwarfare:wheel"
},
"d": {
"item": "superbwarfare:motor"

View file

@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"category": "equipment",
"pattern": [
" a ",
"aba",
" a "
],
"key": {
"a": {
"item": "minecraft:black_wool"
},
"b": {
"tag":"forge:ingots/iron"
}
},
"result": {
"item": "superbwarfare:wheel",
"count": 1
}
}