Bugs, Recipes and Storage Blocks
- Added Zinc and Brass Block - Added compat for mechanical Saw with BoP's logs - Fixed Crafters and Mixers not handling container items properly - Fixed Shafts not dropping when breaking a belt segment with pulley - Added missing loot table for copper blocks and shingles
This commit is contained in:
parent
1dd68bf427
commit
f9b9659bc6
80 changed files with 845 additions and 109 deletions
|
@ -13,7 +13,7 @@ apply plugin: 'net.minecraftforge.gradle'
|
|||
apply plugin: 'eclipse'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
version = 'mc1.14.4_v0.2.1'
|
||||
version = 'mc1.14.4_v0.2.2'
|
||||
group = 'com.simibubi.create'
|
||||
archivesBaseName = 'create'
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ public enum AllBlocks {
|
|||
FLYWHEEL(new FlywheelBlock()),
|
||||
FURNACE_ENGINE(new FurnaceEngineBlock()),
|
||||
ROTATION_SPEED_CONTROLLER(new SpeedControllerBlock()),
|
||||
|
||||
|
||||
__LOGISTICS__(),
|
||||
CONTACT(new ContactBlock()),
|
||||
REDSTONE_BRIDGE(new RedstoneLinkBlock()),
|
||||
|
@ -280,8 +280,10 @@ public enum AllBlocks {
|
|||
__MATERIALS__(),
|
||||
COPPER_ORE(new OxidizingBlock(Properties.from(Blocks.IRON_ORE), 1)),
|
||||
ZINC_ORE(new Block(Properties.from(Blocks.GOLD_ORE).harvestLevel(2).harvestTool(ToolType.PICKAXE))),
|
||||
COPPER_BLOCK(new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1/32f)),
|
||||
COPPER_SHINGLES(new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1/32f)),
|
||||
COPPER_BLOCK(new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1 / 32f)),
|
||||
COPPER_SHINGLES(new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1 / 32f)),
|
||||
ZINC_BLOCK(new Block(Properties.from(Blocks.IRON_BLOCK))),
|
||||
BRASS_BLOCK(new Block(Properties.from(Blocks.IRON_BLOCK))),
|
||||
|
||||
;
|
||||
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.data.ICanGenerateJson;
|
||||
|
||||
import net.minecraft.data.DirectoryCache;
|
||||
import net.minecraft.data.IDataProvider;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
@ -14,9 +18,6 @@ import net.minecraft.util.SoundEvents;
|
|||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
|
||||
public enum AllSoundEvents implements ICanGenerateJson {
|
||||
|
||||
CUCKOO_PIG("creeperclock"),
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import com.simibubi.create.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.foundation.command.CreateCommand;
|
||||
import com.simibubi.create.foundation.command.ServerLagger;
|
||||
import com.simibubi.create.foundation.world.AllWorldFeatures;
|
||||
|
@ -22,6 +21,7 @@ import net.minecraft.item.ItemGroup;
|
|||
import net.minecraft.item.crafting.IRecipeSerializer;
|
||||
import net.minecraft.particles.ParticleType;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.crafting.CraftingHelper;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
|
|
|
@ -1,16 +1,21 @@
|
|||
package com.simibubi.create.foundation.advancement;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.simibubi.create.Create;
|
||||
|
||||
import net.minecraft.advancements.ICriterionTrigger;
|
||||
import net.minecraft.advancements.PlayerAdvancements;
|
||||
import net.minecraft.advancements.criterion.CriterionInstance;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public abstract class CriterionTriggerBase<T extends CriterionTriggerBase.Instance> implements ICriterionTrigger<T> {
|
||||
|
||||
public CriterionTriggerBase(String id) {
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
package com.simibubi.create.foundation.advancement;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonObject;
|
||||
import net.minecraft.advancements.criterion.ItemPredicate;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import net.minecraft.advancements.criterion.ItemPredicate;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class SandpaperUseTrigger extends CriterionTriggerBase<SandpaperUseTrigger.Instance> {
|
||||
|
||||
public SandpaperUseTrigger(String id) {
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
package com.simibubi.create.foundation.advancement;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonObject;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.google.gson.JsonDeserializationContext;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class SimpleTrigger extends CriterionTriggerBase<SimpleTrigger.Instance> {
|
||||
|
||||
public SimpleTrigger(String id) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.mojang.brigadier.arguments.BoolArgumentType;
|
|||
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||
import com.simibubi.create.AllPackets;
|
||||
import com.simibubi.create.config.AllConfigs;
|
||||
|
||||
import net.minecraft.command.CommandSource;
|
||||
import net.minecraft.command.Commands;
|
||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
package com.simibubi.create.foundation.item;
|
||||
|
||||
import static com.simibubi.create.foundation.item.TooltipHelper.cutString;
|
||||
import static net.minecraft.util.text.TextFormatting.AQUA;
|
||||
import static net.minecraft.util.text.TextFormatting.BLUE;
|
||||
import static net.minecraft.util.text.TextFormatting.DARK_GRAY;
|
||||
import static net.minecraft.util.text.TextFormatting.DARK_GREEN;
|
||||
import static net.minecraft.util.text.TextFormatting.DARK_PURPLE;
|
||||
import static net.minecraft.util.text.TextFormatting.DARK_RED;
|
||||
import static net.minecraft.util.text.TextFormatting.GOLD;
|
||||
import static net.minecraft.util.text.TextFormatting.GRAY;
|
||||
import static net.minecraft.util.text.TextFormatting.GREEN;
|
||||
import static net.minecraft.util.text.TextFormatting.LIGHT_PURPLE;
|
||||
import static net.minecraft.util.text.TextFormatting.RED;
|
||||
import static net.minecraft.util.text.TextFormatting.STRIKETHROUGH;
|
||||
import static net.minecraft.util.text.TextFormatting.WHITE;
|
||||
import static net.minecraft.util.text.TextFormatting.YELLOW;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.config.AllConfigs;
|
||||
import com.simibubi.create.config.CKinetics;
|
||||
|
@ -11,6 +32,7 @@ import com.simibubi.create.modules.contraptions.components.fan.EncasedFanBlock;
|
|||
import com.simibubi.create.modules.contraptions.components.flywheel.engine.EngineBlock;
|
||||
import com.simibubi.create.modules.contraptions.components.flywheel.engine.FurnaceEngineBlock;
|
||||
import com.simibubi.create.modules.contraptions.components.waterwheel.WaterWheelBlock;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
@ -21,14 +43,6 @@ import net.minecraft.util.text.StringTextComponent;
|
|||
import net.minecraft.util.text.TextFormatting;
|
||||
import net.minecraftforge.common.ForgeConfigSpec.ConfigValue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.simibubi.create.foundation.item.TooltipHelper.cutString;
|
||||
import static net.minecraft.util.text.TextFormatting.*;
|
||||
|
||||
public class ItemDescription {
|
||||
|
||||
public static final ItemDescription MISSING = new ItemDescription(null);
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
package com.simibubi.create.foundation.utility.data;
|
||||
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
import net.minecraft.data.DirectoryCache;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
|
||||
import net.minecraft.data.DirectoryCache;
|
||||
|
||||
public class Generator {
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package com.simibubi.create.foundation.utility.data;
|
||||
|
||||
import net.minecraft.data.DirectoryCache;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
import net.minecraft.data.DirectoryCache;
|
||||
|
||||
public interface ICanGenerateJson {
|
||||
|
||||
//path points to the resource1s base folder
|
||||
|
|
|
@ -19,9 +19,9 @@ public enum AllWorldFeatures {
|
|||
COPPER_ORE_OCEAN(
|
||||
new CountedOreFeature(AllBlocks.COPPER_ORE.get(), 15, 4).between(20, 55).inBiomes(Biome.Category.OCEAN)),
|
||||
|
||||
ZINC_ORE(new CountedOreFeature(AllBlocks.ZINC_ORE.get(), 17, 1).between(55, 80)),
|
||||
ZINC_ORE(new CountedOreFeature(AllBlocks.ZINC_ORE.get(), 8, 1).between(55, 80)),
|
||||
ZINC_ORE_DESERT(
|
||||
new CountedOreFeature(AllBlocks.ZINC_ORE.get(), 17, 5).between(50, 85).inBiomes(Biome.Category.DESERT)),
|
||||
new CountedOreFeature(AllBlocks.ZINC_ORE.get(), 10, 5).between(50, 85).inBiomes(Biome.Category.DESERT)),
|
||||
|
||||
LIMESTONE(new ChanceOreFeature(AllBlocks.LIMESTONE.get(), 128, 1 / 32f).between(30, 70)),
|
||||
WEATHERED_LIMESTONE(new ChanceOreFeature(AllBlocks.WEATHERED_LIMESTONE.get(), 128, 1 / 32f).between(10, 30)),
|
||||
|
|
|
@ -39,9 +39,10 @@ public class WrenchItem extends Item implements IHaveCustomItemModel {
|
|||
if (player.isSneaking()) {
|
||||
if (world instanceof ServerWorld) {
|
||||
if (!player.isCreative())
|
||||
Block.getDrops(state, (ServerWorld) world, pos, world.getTileEntity(pos)).forEach(itemStack -> {
|
||||
player.inventory.placeItemBackInInventory(world, itemStack);
|
||||
});
|
||||
Block.getDrops(state, (ServerWorld) world, pos, world.getTileEntity(pos), player, context.getItem())
|
||||
.forEach(itemStack -> {
|
||||
player.inventory.placeItemBackInInventory(world, itemStack);
|
||||
});
|
||||
state.spawnAdditionalDrops(world, pos, ItemStack.EMPTY);
|
||||
world.destroyBlock(pos, false);
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ import net.minecraft.state.BooleanProperty;
|
|||
import net.minecraft.state.StateContainer.Builder;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Rotation;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.Rotation;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IWorldReader;
|
||||
import net.minecraft.world.World;
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package com.simibubi.create.modules.contraptions.base;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.modules.contraptions.KineticNetwork;
|
||||
import com.simibubi.create.modules.contraptions.base.IRotate.SpeedLevel;
|
||||
|
||||
import com.simibubi.create.modules.contraptions.goggle.IHaveGoggleInformation;
|
||||
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class GeneratingKineticTileEntity extends KineticTileEntity {
|
||||
|
||||
public boolean reActivateSource;
|
||||
|
|
|
@ -4,8 +4,8 @@ import com.simibubi.create.config.AllConfigs;
|
|||
import com.simibubi.create.foundation.item.ItemDescription;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.modules.contraptions.IWrenchable;
|
||||
|
||||
import com.simibubi.create.modules.contraptions.goggle.IHaveGoggleInformation;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simibubi.create.modules.contraptions.base;
|
||||
|
||||
import static net.minecraft.util.text.TextFormatting.GRAY;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -16,8 +18,8 @@ import com.simibubi.create.modules.contraptions.KineticNetwork;
|
|||
import com.simibubi.create.modules.contraptions.RotationPropagator;
|
||||
import com.simibubi.create.modules.contraptions.base.IRotate.SpeedLevel;
|
||||
import com.simibubi.create.modules.contraptions.base.IRotate.StressImpact;
|
||||
|
||||
import com.simibubi.create.modules.contraptions.goggle.IHaveGoggleInformation;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
|
@ -31,8 +33,6 @@ import net.minecraft.util.text.TextFormatting;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeConfigSpec.ConfigValue;
|
||||
|
||||
import static net.minecraft.util.text.TextFormatting.GRAY;
|
||||
|
||||
public abstract class KineticTileEntity extends SmartTileEntity implements ITickableTileEntity, IHaveGoggleInformation {
|
||||
|
||||
public @Nullable Long network;
|
||||
|
|
|
@ -12,8 +12,8 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.IWorldReader;
|
||||
|
|
|
@ -14,8 +14,8 @@ import com.simibubi.create.CreateClient;
|
|||
import com.simibubi.create.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.utility.PlacementSimulationWorld;
|
||||
import com.simibubi.create.foundation.utility.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.SuperByteBufferCache.Compartment;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.WrappedWorld;
|
||||
|
||||
import net.minecraft.block.BlockRenderType;
|
||||
|
|
|
@ -14,8 +14,8 @@ import net.minecraft.state.EnumProperty;
|
|||
import net.minecraft.state.properties.BlockStateProperties;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.BlockRayTraceResult;
|
||||
import net.minecraft.util.math.shapes.ISelectionContext;
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.modules.contraptions.components.crafter;
|
|||
|
||||
import static com.simibubi.create.modules.contraptions.base.HorizontalKineticBlock.HORIZONTAL_FACING;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -207,7 +208,19 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
}
|
||||
ItemStack result = RecipeGridHandler.tryToApplyRecipe(world, groupedItems);
|
||||
if (result != null) {
|
||||
|
||||
List<ItemStack> containers = new ArrayList<>();
|
||||
groupedItems.grid.values().forEach(stack -> {
|
||||
if (stack.hasContainerItem())
|
||||
containers.add(stack.getContainerItem().copy());
|
||||
});
|
||||
|
||||
groupedItems = new GroupedItems(result);
|
||||
containers.forEach(stack -> {
|
||||
GroupedItems container = new GroupedItems(stack);
|
||||
container.mergeOnto(groupedItems, Pointing.LEFT);
|
||||
});
|
||||
|
||||
phase = Phase.CRAFTING;
|
||||
countDown = 2000;
|
||||
sendData();
|
||||
|
@ -381,8 +394,8 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
return;
|
||||
if (world.isRemote)
|
||||
return;
|
||||
List<MechanicalCrafterTileEntity> chain = RecipeGridHandler.getAllCraftersOfChainIf(this,
|
||||
MechanicalCrafterTileEntity::craftingItemPresent);
|
||||
List<MechanicalCrafterTileEntity> chain =
|
||||
RecipeGridHandler.getAllCraftersOfChainIf(this, MechanicalCrafterTileEntity::craftingItemPresent);
|
||||
if (chain == null)
|
||||
return;
|
||||
chain.forEach(MechanicalCrafterTileEntity::begin);
|
||||
|
|
|
@ -32,8 +32,8 @@ import net.minecraft.util.math.Vec3d;
|
|||
@SuppressWarnings("deprecation")
|
||||
public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<MechanicalCrafterTileEntity> {
|
||||
|
||||
public static SpriteShiftEntry animatedTexture = SpriteShifter.get("block/crafter_thingies",
|
||||
"block/crafter_thingies");
|
||||
public static SpriteShiftEntry animatedTexture =
|
||||
SpriteShifter.get("block/crafter_thingies", "block/crafter_thingies");
|
||||
|
||||
@Override
|
||||
public void renderWithGL(MechanicalCrafterTileEntity te, double x, double y, double z, float partialTicks,
|
||||
|
@ -44,8 +44,8 @@ public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<
|
|||
|
||||
if (te.phase == Phase.EXPORTING) {
|
||||
Direction targetDirection = MechanicalCrafterBlock.getTargetDirection(te.getBlockState());
|
||||
float progress = MathHelper.clamp((1000 - te.countDown + te.getCountDownSpeed() * partialTicks) / 1000f, 0,
|
||||
1);
|
||||
float progress =
|
||||
MathHelper.clamp((1000 - te.countDown + te.getCountDownSpeed() * partialTicks) / 1000f, 0, 1);
|
||||
vec = vec.add(new Vec3d(targetDirection.getDirectionVec()).scale(progress * .75f));
|
||||
}
|
||||
|
||||
|
@ -83,23 +83,25 @@ public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<
|
|||
if (te.phase == Phase.CRAFTING) {
|
||||
items = te.groupedItemsBeforeCraft;
|
||||
items.calcStats();
|
||||
float progress = MathHelper.clamp((2000 - te.countDown + te.getCountDownSpeed() * partialTicks) / 1000f,
|
||||
0, 1);
|
||||
float progress =
|
||||
MathHelper.clamp((2000 - te.countDown + te.getCountDownSpeed() * partialTicks) / 1000f, 0, 1);
|
||||
float earlyProgress = MathHelper.clamp(progress * 2, 0, 1);
|
||||
float lateProgress = MathHelper.clamp(progress * 2 - 1, 0, 1);
|
||||
|
||||
// GlStateManager.rotated(lateProgress * 360, 0, 0, 1);
|
||||
GlStateManager.scaled(1 - lateProgress, 1 - lateProgress, 1 - lateProgress);
|
||||
|
||||
Vec3d centering = new Vec3d(-items.minX + (-items.width + 1) / 2f,
|
||||
-items.minY + (-items.height + 1) / 2f, 0).scale(earlyProgress);
|
||||
Vec3d centering =
|
||||
new Vec3d(-items.minX + (-items.width + 1) / 2f, -items.minY + (-items.height + 1) / 2f, 0)
|
||||
.scale(earlyProgress);
|
||||
GlStateManager.translated(centering.x * .5f, centering.y * .5f, 0);
|
||||
|
||||
distance += (-4 * (progress - .5f) * (progress - .5f) + 1) * .25f;
|
||||
}
|
||||
|
||||
boolean onlyRenderFirst = te.phase == Phase.INSERTING || te.phase == Phase.CRAFTING && te.countDown < 1000;
|
||||
final float spacing = distance;
|
||||
items.grid.forEach((pair, stack) -> {
|
||||
if (onlyRenderFirst && (pair.getLeft().intValue() != 0 || pair.getRight().intValue() != 0))
|
||||
return;
|
||||
|
||||
GlStateManager.pushMatrix();
|
||||
GlStateManager.translatef(pair.getKey() * spacing, pair.getValue() * spacing, 0);
|
||||
TessellatorHelper.fightZFighting(pair.hashCode() + te.getPos().hashCode());
|
||||
|
@ -111,8 +113,8 @@ public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<
|
|||
|
||||
if (te.phase == Phase.CRAFTING) {
|
||||
items = te.groupedItems;
|
||||
float progress = MathHelper.clamp((1000 - te.countDown + te.getCountDownSpeed() * partialTicks) / 1000f,
|
||||
0, 1);
|
||||
float progress =
|
||||
MathHelper.clamp((1000 - te.countDown + te.getCountDownSpeed() * partialTicks) / 1000f, 0, 1);
|
||||
float earlyProgress = MathHelper.clamp(progress * 2, 0, 1);
|
||||
float lateProgress = MathHelper.clamp(progress * 2 - 1, 0, 1);
|
||||
|
||||
|
@ -123,6 +125,8 @@ public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<
|
|||
GlStateManager.scaled(downScaling, downScaling, downScaling);
|
||||
|
||||
items.grid.forEach((pair, stack) -> {
|
||||
if (pair.getLeft().intValue() != 0 || pair.getRight().intValue() != 0)
|
||||
return;
|
||||
Minecraft.getInstance().getItemRenderer().renderItem(stack, TransformType.FIXED);
|
||||
});
|
||||
}
|
||||
|
@ -153,8 +157,8 @@ public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<
|
|||
|
||||
if (MechanicalCrafterBlock.isValidTarget(getWorld(), pos.offset(targetDirection), blockState)) {
|
||||
SuperByteBuffer beltBuffer = renderAndTransform(AllBlockPartials.MECHANICAL_CRAFTER_BELT, blockState, pos);
|
||||
SuperByteBuffer beltFrameBuffer = renderAndTransform(AllBlockPartials.MECHANICAL_CRAFTER_BELT_FRAME, blockState,
|
||||
pos);
|
||||
SuperByteBuffer beltFrameBuffer =
|
||||
renderAndTransform(AllBlockPartials.MECHANICAL_CRAFTER_BELT_FRAME, blockState, pos);
|
||||
|
||||
if (te.phase == Phase.EXPORTING) {
|
||||
int textureIndex = (int) ((te.getCountDownSpeed() / 128f * AnimationTickHolder.ticks));
|
||||
|
@ -168,7 +172,8 @@ public class MechanicalCrafterTileEntityRenderer extends SafeTileEntityRenderer<
|
|||
beltFrameBuffer.translate(x, y, z).renderInto(buffer);
|
||||
|
||||
} else {
|
||||
SuperByteBuffer arrowBuffer = renderAndTransform(AllBlockPartials.MECHANICAL_CRAFTER_ARROW, blockState, pos);
|
||||
SuperByteBuffer arrowBuffer =
|
||||
renderAndTransform(AllBlockPartials.MECHANICAL_CRAFTER_ARROW, blockState, pos);
|
||||
arrowBuffer.translate(x, y, z).renderInto(buffer);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,8 +14,8 @@ import net.minecraft.client.renderer.BufferBuilder;
|
|||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.Direction.AxisDirection;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.Rotation;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
public class FlywheelRenderer extends KineticTileEntityRenderer {
|
||||
|
||||
|
|
|
@ -11,9 +11,7 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
|||
import com.simibubi.create.modules.contraptions.processing.BasinTileEntity.BasinInventory;
|
||||
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.BucketItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.IRecipe;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
@ -128,8 +126,8 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
|
|||
IItemHandlerModifiable inputs = inv.getInputHandler();
|
||||
IItemHandlerModifiable outputs = inv.getOutputHandler();
|
||||
List<ItemStack> catalysts = new ArrayList<>();
|
||||
List<ItemStack> containers = new ArrayList<>();
|
||||
|
||||
int buckets = 0;
|
||||
NonNullList<Ingredient> ingredients = lastRecipe.getIngredients();
|
||||
Ingredients: for (int i = 0; i < ingredients.size(); i++) {
|
||||
Ingredient ingredient = ingredients.get(i);
|
||||
|
@ -137,12 +135,11 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
|
|||
if (!ingredient.test(inputs.extractItem(slot, 1, true)))
|
||||
continue;
|
||||
ItemStack extracted = inputs.extractItem(slot, 1, false);
|
||||
if (extracted.getItem() instanceof BucketItem)
|
||||
buckets++;
|
||||
|
||||
if ((lastRecipe instanceof ProcessingRecipe)) {
|
||||
if (((ProcessingRecipe<?>) lastRecipe).getRollableIngredients().get(i).remains())
|
||||
catalysts.add(extracted.copy());
|
||||
if ((lastRecipe instanceof ProcessingRecipe)
|
||||
&& ((ProcessingRecipe<?>) lastRecipe).getRollableIngredients().get(i).remains()) {
|
||||
catalysts.add(extracted.copy());
|
||||
} else if (extracted.hasContainerItem()) {
|
||||
containers.add(extracted.getContainerItem().copy());
|
||||
}
|
||||
continue Ingredients;
|
||||
}
|
||||
|
@ -151,8 +148,7 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
|
|||
}
|
||||
|
||||
ItemHandlerHelper.insertItemStacked(outputs, lastRecipe.getRecipeOutput().copy(), false);
|
||||
if (buckets > 0)
|
||||
ItemHandlerHelper.insertItemStacked(outputs, new ItemStack(Items.BUCKET, buckets), false);
|
||||
containers.forEach(stack -> ItemHandlerHelper.insertItemStacked(outputs, stack, false));
|
||||
catalysts.forEach(c -> ItemHandlerHelper.insertItemStacked(outputs, c, false));
|
||||
|
||||
// Continue mixing
|
||||
|
|
|
@ -6,12 +6,10 @@ import com.simibubi.create.AllTileEntities;
|
|||
import com.simibubi.create.foundation.behaviour.base.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.behaviour.base.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue;
|
||||
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.modules.contraptions.goggle.IHaveGoggleInformation;
|
||||
import net.minecraft.block.BlockState;
|
||||
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
public class AnalogLeverTileEntity extends SmartTileEntity implements IHaveGoggleInformation {
|
||||
|
|
|
@ -55,6 +55,7 @@ import net.minecraft.util.math.shapes.VoxelShape;
|
|||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.IWorldReader;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.storage.loot.LootParameter;
|
||||
import net.minecraft.world.storage.loot.LootParameters;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
@ -101,11 +102,12 @@ public class BeltBlock extends HorizontalKineticBlock
|
|||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public List<ItemStack> getDrops(BlockState state, net.minecraft.world.storage.loot.LootContext.Builder builder) {
|
||||
List<ItemStack> drops = new ArrayList<>();
|
||||
if (state.get(PART) == Part.START || builder.get(LootParameters.THIS_ENTITY) != null)
|
||||
drops.addAll(super.getDrops(state, builder));
|
||||
List<ItemStack> drops = super.getDrops(state, builder);
|
||||
if (state.get(CASING))
|
||||
drops.addAll(AllBlocks.BRASS_CASING.getDefault().getDrops(builder));
|
||||
TileEntity tileEntity = builder.get(LootParameters.BLOCK_ENTITY);
|
||||
if (tileEntity instanceof BeltTileEntity && ((BeltTileEntity) tileEntity).hasPulley())
|
||||
drops.addAll(AllBlocks.SHAFT.getDefault().getDrops(builder));
|
||||
return drops;
|
||||
}
|
||||
|
||||
|
@ -114,8 +116,6 @@ public class BeltBlock extends HorizontalKineticBlock
|
|||
withTileEntityDo(worldIn, pos, te -> {
|
||||
if (worldIn.isRemote)
|
||||
return;
|
||||
if (te.hasPulley())
|
||||
Block.spawnDrops(AllBlocks.SHAFT.get().getDefaultState(), worldIn, pos);
|
||||
if (te.isController()) {
|
||||
BeltInventory inv = te.getInventory();
|
||||
for (TransportedItemStack s : inv.items)
|
||||
|
|
|
@ -14,8 +14,8 @@ import net.minecraft.item.BlockItemUseContext;
|
|||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.shapes.ISelectionContext;
|
||||
import net.minecraft.util.math.shapes.VoxelShape;
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
package com.simibubi.create.modules.contraptions.relays.gauge;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
||||
|
||||
import com.simibubi.create.modules.contraptions.goggle.IHaveGoggleInformation;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
|
||||
import java.util.List;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
|
||||
public class GaugeTileEntity extends KineticTileEntity implements IHaveGoggleInformation {
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simibubi.create.modules.contraptions.relays.gauge;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
|
@ -11,8 +13,6 @@ import com.simibubi.create.modules.contraptions.base.IRotate.SpeedLevel;
|
|||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SpeedGaugeTileEntity extends GaugeTileEntity{
|
||||
|
||||
public SpeedGaugeTileEntity() {
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
package com.simibubi.create.modules.contraptions.relays.gauge;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.foundation.item.ItemDescription;
|
||||
import com.simibubi.create.foundation.utility.ColorHelper;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.modules.contraptions.base.IRotate.StressImpact;
|
||||
import com.simibubi.create.modules.contraptions.goggle.IHaveGoggleInformation;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
|
||||
import java.util.List;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
|
||||
public class StressGaugeTileEntity extends GaugeTileEntity {
|
||||
|
||||
|
|
|
@ -25,10 +25,14 @@ import net.minecraft.particles.ParticleTypes;
|
|||
import net.minecraft.tileentity.BeaconTileEntity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.*;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.BlockPos.MutableBlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.RayTraceContext;
|
||||
import net.minecraft.util.math.RayTraceContext.BlockMode;
|
||||
import net.minecraft.util.math.RayTraceContext.FluidMode;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
|
|
@ -9,8 +9,8 @@ import static com.simibubi.create.modules.curiosities.zapper.blockzapper.Blockza
|
|||
import com.mojang.blaze3d.platform.GLX;
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.modules.curiosities.zapper.ZapperRenderHandler;
|
||||
import com.simibubi.create.modules.curiosities.zapper.ZapperItemRenderer;
|
||||
import com.simibubi.create.modules.curiosities.zapper.ZapperRenderHandler;
|
||||
import com.simibubi.create.modules.curiosities.zapper.blockzapper.BlockzapperItem.ComponentTier;
|
||||
import com.simibubi.create.modules.curiosities.zapper.blockzapper.BlockzapperItem.Components;
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ package com.simibubi.create.modules.curiosities.zapper.terrainzapper;
|
|||
import com.mojang.blaze3d.platform.GLX;
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.modules.curiosities.zapper.ZapperRenderHandler;
|
||||
import com.simibubi.create.modules.curiosities.zapper.ZapperItemRenderer;
|
||||
import com.simibubi.create.modules.curiosities.zapper.ZapperRenderHandler;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||
|
|
|
@ -4,7 +4,7 @@ loaderVersion="[28,)"
|
|||
|
||||
[[mods]]
|
||||
modId="create"
|
||||
version="mc1.14-0.2.1"
|
||||
version="mc1.14-0.2.2"
|
||||
displayName="Create"
|
||||
#updateJSONURL=""
|
||||
authors="simibubi"
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/brass_block" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/zinc_block" }
|
||||
}
|
||||
}
|
|
@ -75,9 +75,11 @@
|
|||
"item.create.rose_quartz_sword": "Gilded Quartz Blade",
|
||||
|
||||
"block.create.copper_ore": "Copper Ore",
|
||||
"block.create.copper_block": "Copper Block",
|
||||
"block.create.copper_block": "Block of Copper",
|
||||
"block.create.copper_shingles": "Copper Shingles",
|
||||
"block.create.zinc_ore": "Zinc Ore",
|
||||
"block.create.zinc_block": "Block of Zinc",
|
||||
"block.create.brass_block": "Block of Brass",
|
||||
|
||||
"block.create.andesite_casing": "Andesite Casing",
|
||||
"block.create.brass_casing": "Brass Casing",
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "create:block/brass_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "create:block/zinc_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "create:block/brass_block"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "create:block/zinc_block"
|
||||
}
|
BIN
src/main/resources/assets/create/textures/block/zinc_block.png
Normal file
BIN
src/main/resources/assets/create/textures/block/zinc_block.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 642 B |
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:brass_block"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:copper_block"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:copper_shingles"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:zinc_block"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:cherry_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_cherry_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:dead_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_dead_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:ethereal_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_ethereal_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:fir_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_fir_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:hellbark_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_hellbark_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:jacaranda_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_jacaranda_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:magic_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_magic_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:mahogany_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_mahogany_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:palm_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_palm_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:redwood_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_redwood_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_cherry_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:cherry_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_dead_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:dead_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_ethereal_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:ethereal_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_fir_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:fir_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_hellbark_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:hellbark_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_jacaranda_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:jacaranda_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_magic_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:magic_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_mahogany_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:mahogany_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_palm_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:palm_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_redwood_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:redwood_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_umbran_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:umbran_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_willow_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:willow_planks",
|
||||
"count": 5
|
||||
}
|
||||
],
|
||||
"processingTime": 100
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:umbran_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_umbran_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "forge:mod_loaded",
|
||||
"modid": "biomesoplenty"
|
||||
}
|
||||
],
|
||||
"type": "create:cutting",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:willow_log"
|
||||
}
|
||||
],
|
||||
"results": [
|
||||
{
|
||||
"item": "biomesoplenty:stripped_willow_log",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"processingTime": 50
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:ingots/brass"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:brass_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"tag": "forge:ingots/zinc"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:zinc_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "create:brass_block"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "create:brass_ingot",
|
||||
"count": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "create:zinc_block"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "create:zinc_ingot",
|
||||
"count": 9
|
||||
}
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"#forge:storage_blocks/copper"
|
||||
"#forge:storage_blocks/copper",
|
||||
"#forge:storage_blocks/zinc",
|
||||
"#forge:storage_blocks/brass"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:brass_block"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:zinc_block"
|
||||
]
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"#forge:storage_blocks/copper"
|
||||
"#forge:storage_blocks/copper",
|
||||
"#forge:storage_blocks/zinc",
|
||||
"#forge:storage_blocks/brass"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:brass_block"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:zinc_block"
|
||||
]
|
||||
}
|
Loading…
Reference in a new issue