0.7.0 update :3
@@ -1,5 +1,6 @@
|
||||
package com.drmangotea.createindustry;
|
||||
|
||||
import com.drmangotea.createindustry.base.TFMGContraptions;
|
||||
import com.drmangotea.createindustry.base.TFMGLangPartials;
|
||||
import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire.TFMGColoredFires;
|
||||
import com.drmangotea.createindustry.registry.*;
|
||||
@@ -55,6 +56,7 @@ public class CreateTFMG
|
||||
TFMGFluids.register();
|
||||
TFMGPaletteBlocks.register();
|
||||
TFMGSoundEvents.prepare();
|
||||
TFMGContraptions.prepare();
|
||||
|
||||
TFMGColoredFires.register(modEventBus);
|
||||
TFMGFeatures.register(modEventBus);
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.drmangotea.createindustry.base;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
public class DebugBlock extends Block {
|
||||
public DebugBlock(Properties p_49795_) {
|
||||
super(p_49795_);
|
||||
}
|
||||
@Override
|
||||
public void fillItemCategory(CreativeModeTab tab, NonNullList<ItemStack> list) {}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.drmangotea.createindustry.base;
|
||||
|
||||
import com.drmangotea.createindustry.CreateTFMG;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackContraption;
|
||||
import com.simibubi.create.content.contraptions.ContraptionType;
|
||||
|
||||
public class TFMGContraptions {
|
||||
|
||||
public static final ContraptionType
|
||||
PUMPJACK_CONTRAPTION = ContraptionType.register(CreateTFMG.asResource("pumpjack").toString(), PumpjackContraption::new);
|
||||
|
||||
public static void prepare() {}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.compact;
|
||||
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class CompactEngineBlock extends DirectionalKineticBlock implements IBE<CompactEngineBlockEntity> {
|
||||
|
||||
|
||||
public CompactEngineBlock(Properties properties) {
|
||||
super(properties);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
return AllShapes.MOTOR_BLOCK.get(state.getValue(FACING));
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
if(pState.getValue(FACING).getAxis()==Axis.Y) {
|
||||
return TFMGShapes.COMPACT_ENGINE_VERTICAL.get(pState.getValue(FACING));
|
||||
}else
|
||||
return TFMGShapes.COMPACT_ENGINE.get(pState.getValue(FACING));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Direction preferred = getPreferredFacing(context);
|
||||
if ((context.getPlayer() != null && context.getPlayer()
|
||||
.isShiftKeyDown()) || preferred == null)
|
||||
return super.getStateForPlacement(context);
|
||||
return defaultBlockState()
|
||||
.setValue(FACING, preferred)
|
||||
//.setValue(BACK_PART,false)
|
||||
;
|
||||
}
|
||||
|
||||
// IRotate:
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face == state.getValue(FACING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(FACING)
|
||||
.getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hideStressImpact() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public InteractionResult use(BlockState pState, Level level, BlockPos pos, Player pPlayer, InteractionHand pHand, BlockHitResult pHit) {
|
||||
|
||||
|
||||
if (level.getBlockEntity(pos) instanceof CompactEngineBlockEntity be)
|
||||
if (be.playerInteract(pPlayer, pHand))
|
||||
return InteractionResult.SUCCESS;
|
||||
|
||||
return super.use(pState,level,pos,pPlayer,pHand,pHit);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<CompactEngineBlockEntity> getBlockEntityClass() {
|
||||
return CompactEngineBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends CompactEngineBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.COMPACT_ENGINE.get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,541 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.compact;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGFluids;
|
||||
import com.drmangotea.createindustry.registry.TFMGSoundEvents;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
|
||||
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.LangBuilder;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.IFluidTank;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.templates.FluidTank;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@SuppressWarnings("removal")
|
||||
public class CompactEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable {
|
||||
|
||||
protected LazyOptional<IFluidHandler> fluidCapability;
|
||||
protected FluidTank tankInventory;
|
||||
|
||||
protected FluidTank lubricationOilTank;
|
||||
|
||||
protected FluidTank coolantTank;
|
||||
|
||||
protected int soundTimer=0;
|
||||
|
||||
|
||||
public int fuelConsumption =0;
|
||||
|
||||
public float stressTotal=0;
|
||||
public float speed=0;
|
||||
public float stressBase=0;
|
||||
|
||||
public int efficiency=1;
|
||||
public final int idealSpeed=12;
|
||||
|
||||
private int consumptionTimer=0;
|
||||
|
||||
|
||||
public Fluid lubricationOil = TFMGFluids.LUBRICATION_OIL.get();
|
||||
public Fluid coolant = TFMGFluids.COOLING_FLUID.get();
|
||||
|
||||
public float powerModifier=1;
|
||||
public float efficiencyModifier = 1.4f;
|
||||
//
|
||||
int signal;
|
||||
boolean signalChanged;
|
||||
//
|
||||
|
||||
// protected ScrollValueBehaviour generatedSpeed;
|
||||
|
||||
public CompactEngineBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
tankInventory = createInventory();
|
||||
|
||||
lubricationOilTank = createUpgradeTankInventory(lubricationOil);
|
||||
coolantTank = createUpgradeTankInventory(coolant);
|
||||
|
||||
|
||||
//fluidCapability = LazyOptional.of(() -> tankInventory);
|
||||
fluidCapability = LazyOptional.of(() -> {
|
||||
return new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank );
|
||||
});
|
||||
|
||||
signal = 0;
|
||||
setLazyTickRate(40);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
sendData();
|
||||
if (!hasSource() || getGeneratedSpeed() > getTheoreticalSpeed())
|
||||
updateGeneratedRotation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneratedSpeed() {
|
||||
|
||||
|
||||
|
||||
if(!level.isClientSide){
|
||||
|
||||
|
||||
calculateEfficiency();
|
||||
fuelConsumption = (int)((speed/(efficiency/10)/13)+1);
|
||||
if(fuelConsumption<1)
|
||||
fuelConsumption=0;
|
||||
if(!tankInventory.isEmpty()) {
|
||||
|
||||
if(consumptionTimer>=45) {
|
||||
if(signal!=0)
|
||||
tankInventory.drain(fuelConsumption, IFluidHandler.FluidAction.EXECUTE);
|
||||
consumptionTimer=0;
|
||||
}
|
||||
consumptionTimer++;
|
||||
|
||||
|
||||
|
||||
// return convertToDirection((signal * signal), getBlockState().getValue(FACING))*Create.RANDOM.nextFloat(2);
|
||||
return ((signal*signal)*0.5f)*powerModifier;
|
||||
// *powerModifier;
|
||||
}}
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void calculateEfficiency(){
|
||||
|
||||
|
||||
if(signal==0||tankInventory.isEmpty()) {
|
||||
efficiency = 0;
|
||||
return;
|
||||
}
|
||||
efficiency=100;
|
||||
|
||||
if(signal>=idealSpeed){
|
||||
efficiency= (int) ((100-(signal-idealSpeed)*5)/efficiencyModifier);
|
||||
}
|
||||
|
||||
if(signal<idealSpeed){
|
||||
efficiency= (int) ((100-(idealSpeed-signal)*3)/efficiencyModifier);
|
||||
}
|
||||
|
||||
|
||||
if(efficiency>100)
|
||||
efficiency=100;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
// boolean added = super.addToGoggleTooltip(tooltip, isPlayerSneaking);
|
||||
// if (!IRotate.StressImpact.isEnabled())
|
||||
// return added;
|
||||
//
|
||||
Lang.translate("goggles.engine_stats")
|
||||
.forGoggles(tooltip);
|
||||
stressBase = calculateAddedStressCapacity();
|
||||
// if (Mth.equal(stressBase, 0))
|
||||
// return added;
|
||||
|
||||
|
||||
Lang.translate("tooltip.capacityProvided")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.space()
|
||||
.forGoggles(tooltip);
|
||||
|
||||
speed = getTheoreticalSpeed();
|
||||
if (speed != getGeneratedSpeed() && speed != 0)
|
||||
// stressBase *= getGeneratedSpeed() / speed;
|
||||
speed = Math.abs(speed);
|
||||
|
||||
stressTotal = stressBase * speed;
|
||||
|
||||
Lang.number(stressTotal)
|
||||
.translate("generic.unit.stress")
|
||||
.style(ChatFormatting.DARK_AQUA)
|
||||
|
||||
.space()
|
||||
.add(Lang.translate("gui.goggles.at_current_speed")
|
||||
.style(ChatFormatting.DARK_GRAY))
|
||||
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
Lang.translate("goggles.engine_redstone_input")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
Lang.translate("tooltip.engine_analog_strength", this.signal)
|
||||
.style(ChatFormatting.DARK_AQUA)
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
/////
|
||||
|
||||
Lang.translate("goggles.engine.efficiency")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
Lang.translate("goggles.get_engine_efficiency", this.efficiency)
|
||||
.style(ChatFormatting.DARK_AQUA)
|
||||
.add(Lang.translate("goggles.misc.percent_symbol"))
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
|
||||
////////////////////////////////////////
|
||||
LazyOptional<IFluidHandler> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
|
||||
Optional<IFluidHandler> resolve = handler.resolve();
|
||||
if (!resolve.isPresent())
|
||||
return false;
|
||||
|
||||
IFluidHandler tank = resolve.get();
|
||||
if (tank.getTanks() == 0)
|
||||
return false;
|
||||
|
||||
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
|
||||
Lang.translate("goggles.fuel_container")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
|
||||
|
||||
boolean isEmpty = true;
|
||||
for (int i = 0; i < tank.getTanks(); i++) {
|
||||
FluidStack fluidStack = tank.getFluidInTank(i);
|
||||
if (fluidStack.isEmpty())
|
||||
continue;
|
||||
|
||||
Lang.fluidName(fluidStack)
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
Lang.builder()
|
||||
.add(Lang.number(fluidStack.getAmount())
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_AQUA))
|
||||
.text(ChatFormatting.GRAY, " / ")
|
||||
.add(Lang.number(tank.getTankCapacity(i))
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_GRAY))
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
isEmpty = false;
|
||||
}
|
||||
|
||||
if (tank.getTanks() > 1) {
|
||||
if (isEmpty)
|
||||
tooltip.remove(tooltip.size() - 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!isEmpty)
|
||||
return true;
|
||||
|
||||
Lang.translate("gui.goggles.fluid_container.capacity")
|
||||
.add(Lang.number(tank.getTankCapacity(0))
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_AQUA))
|
||||
.style(ChatFormatting.DARK_GRAY)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
|
||||
|
||||
|
||||
|
||||
// this.getBlockState().setValue(EngineBlock.BACKPART,true);
|
||||
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
compound.putInt("Signal", signal);
|
||||
|
||||
|
||||
|
||||
compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag()));
|
||||
compound.put("Coolant", coolantTank.writeToNBT(new CompoundTag()));
|
||||
compound.put("LubricationOil", lubricationOilTank.writeToNBT(new CompoundTag()));
|
||||
|
||||
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
|
||||
|
||||
|
||||
tankInventory.readFromNBT(compound.getCompound("TankContent"));
|
||||
coolantTank.readFromNBT(compound.getCompound("Coolant"));
|
||||
lubricationOilTank.readFromNBT(compound.getCompound("LubricationOil"));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
signal = compound.getInt("Signal");
|
||||
super.read(compound, clientPacket);
|
||||
}
|
||||
|
||||
public float getModifier() {
|
||||
return getModifierForSignal(signal);
|
||||
}
|
||||
|
||||
public void neighbourChanged() {
|
||||
if (!hasLevel())
|
||||
return;
|
||||
int power = level.getBestNeighborSignal(worldPosition);
|
||||
if (power != signal)
|
||||
signalChanged = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
neighbourChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
|
||||
calculateUpgradeModifier();
|
||||
|
||||
//
|
||||
int random1 = Create.RANDOM.nextInt(125);
|
||||
int random2 = Create.RANDOM.nextInt(200);
|
||||
|
||||
if(random1 == 69)
|
||||
coolantTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
|
||||
if(random2 == 69)
|
||||
lubricationOilTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
|
||||
|
||||
|
||||
//
|
||||
|
||||
|
||||
|
||||
///
|
||||
// if(signal!=0&&hasBackPart()&&tankInventory.getFluidAmount()!=0&&!overStressed&&isExhaustTankFull()) {
|
||||
|
||||
|
||||
soundTimer++;
|
||||
|
||||
// if(!isExhaustTankFull()) {
|
||||
if (soundTimer >= ((16-signal)/0.8)+1) {
|
||||
if(signal!=0&&
|
||||
tankInventory.getFluidAmount()!=0 &&
|
||||
!overStressed
|
||||
|
||||
|
||||
){
|
||||
|
||||
|
||||
// if(this.getGeneratedSpeed()!=0) {
|
||||
if (level.isClientSide)
|
||||
makeSound();
|
||||
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
///
|
||||
updateGeneratedRotation();
|
||||
calculateEfficiency();
|
||||
|
||||
|
||||
|
||||
|
||||
stressBase = calculateAddedStressCapacity();
|
||||
speed = getTheoreticalSpeed();
|
||||
if (speed != getGeneratedSpeed() && speed != 0)
|
||||
stressBase *= getGeneratedSpeed() / speed;
|
||||
speed = Math.abs(speed);
|
||||
|
||||
stressTotal = stressBase * speed;
|
||||
// if (level.isClientSide)
|
||||
// return;
|
||||
if (signalChanged) {
|
||||
signalChanged = false;
|
||||
analogSignalChanged(level.getBestNeighborSignal(worldPosition));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void calculateUpgradeModifier(){
|
||||
|
||||
|
||||
float newPowerModifier=1;
|
||||
float newEfficiencyModifier = 1.4f;
|
||||
|
||||
if(lubricationOilTank.getFluidAmount()>0) {
|
||||
//newPowerModifier+=.3f;
|
||||
newEfficiencyModifier-=.1f;
|
||||
}
|
||||
if(coolantTank.getFluidAmount()>0) {
|
||||
newPowerModifier+=.3f;
|
||||
newEfficiencyModifier-=.3f;
|
||||
}
|
||||
|
||||
////////
|
||||
|
||||
|
||||
////
|
||||
|
||||
powerModifier=newPowerModifier;
|
||||
efficiencyModifier = newEfficiencyModifier;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void makeSound(){
|
||||
soundTimer=0;
|
||||
|
||||
|
||||
TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.6f, 1f, false);
|
||||
|
||||
|
||||
}
|
||||
public boolean playerInteract(Player pPlayer, InteractionHand pHand) {
|
||||
|
||||
ItemStack stack = pPlayer.getItemInHand(pHand);
|
||||
|
||||
if(stack.is(TFMGFluids.GASOLINE.getBucket().get())&&tankInventory.isEmpty()){
|
||||
|
||||
tankInventory.setFluid(new FluidStack(TFMGFluids.GASOLINE.get(),1000));
|
||||
pPlayer.setItemInHand(pHand, Items.BUCKET.getDefaultInstance());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
protected void analogSignalChanged(int newSignal) {
|
||||
//removeSource();
|
||||
signal = newSignal;
|
||||
}
|
||||
|
||||
protected float getModifierForSignal(int newPower) {
|
||||
if (newPower == 0)
|
||||
return 1;
|
||||
return 1 + ((newPower + 1) / 16f);
|
||||
}
|
||||
/////////////////////
|
||||
|
||||
protected SmartFluidTank createInventory() {
|
||||
return new SmartFluidTank(1000, this::onFluidStackChanged){
|
||||
@Override
|
||||
public boolean isFluidValid(FluidStack stack) {
|
||||
return stack.getFluid().isSame(validFuel());
|
||||
}
|
||||
};
|
||||
}
|
||||
protected SmartFluidTank createUpgradeTankInventory(Fluid validFluid) {
|
||||
return new SmartFluidTank(1000, this::onFluidStackChanged){
|
||||
@Override
|
||||
public boolean isFluidValid(FluidStack stack) {
|
||||
return stack.getFluid().isSame(validFluid);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
protected void onFluidStackChanged(FluidStack newFluidStack) {}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public float getFillState() {
|
||||
return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
||||
|
||||
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
return fluidCapability.cast();
|
||||
return super.getCapability(cap, side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
fluidCapability.invalidate();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public IFluidTank getTankInventory() {
|
||||
return tankInventory;
|
||||
}
|
||||
|
||||
public Fluid validFuel(){
|
||||
return TFMGFluids.GASOLINE.get();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.compact;
|
||||
|
||||
|
||||
import com.simibubi.create.AllPartialModels;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class CompactEngineRenderer extends KineticBlockEntityRenderer<CompactEngineBlockEntity> {
|
||||
|
||||
public CompactEngineRenderer(BlockEntityRendererProvider.Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SuperByteBuffer getRotatedModel(CompactEngineBlockEntity be, BlockState state) {
|
||||
return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -193,7 +193,8 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo
|
||||
if(getShaft() != null)
|
||||
engineProcess(targetAxis,verticalTarget);
|
||||
//DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::makeSound);
|
||||
makeSound(targetAxis,verticalTarget);
|
||||
if(level.isClientSide)
|
||||
makeSound(targetAxis,verticalTarget);
|
||||
|
||||
int conveyedSpeedLevel =
|
||||
engineStrength == 0 ? 1 : verticalTarget ? 1 : (int) GeneratingKineticBlockEntity.convertToDirection(1, facing)*2;
|
||||
@@ -218,7 +219,7 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo
|
||||
|
||||
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
//@OnlyIn(Dist.CLIENT)
|
||||
private void makeSound(Axis targetAxis, boolean verticalTarget){
|
||||
Float targetAngle = getTargetAngle();
|
||||
PoweredShaftBlockEntity ste = target.get();
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial;
|
||||
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class RadialEngineBlock extends DirectionalKineticBlock implements IBE<RadialEngineBlockEntity> {
|
||||
|
||||
|
||||
public RadialEngineBlock(Properties properties) {
|
||||
super(properties);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
|
||||
Level level = context.getLevel();
|
||||
BlockPos pos = context.getClickedPos();
|
||||
Direction direction = context.getClickedFace();
|
||||
|
||||
|
||||
return onBlockEntityUse(level, pos, be -> {
|
||||
|
||||
if(be.spawnInput(direction))
|
||||
return InteractionResult.SUCCESS;
|
||||
|
||||
return InteractionResult.FAIL;
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.RADIAL_ENGINE.get(pState.getValue(FACING));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Direction preferred = getPreferredFacing(context);
|
||||
if ((context.getPlayer() != null && context.getPlayer()
|
||||
.isShiftKeyDown()) || preferred == null)
|
||||
return super.getStateForPlacement(context);
|
||||
return defaultBlockState()
|
||||
.setValue(FACING, preferred)
|
||||
//.setValue(BACK_PART,false)
|
||||
;
|
||||
}
|
||||
|
||||
// IRotate:
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face.getAxis() == state.getValue(FACING).getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(FACING)
|
||||
.getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hideStressImpact() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Class<RadialEngineBlockEntity> getBlockEntityClass() {
|
||||
return RadialEngineBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends RadialEngineBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.RADIAL_ENGINE.get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,641 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial;
|
||||
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.CreateTFMG;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.input.RadialEngineInputBlockEntity;
|
||||
import com.drmangotea.createindustry.registry.TFMGBlocks;
|
||||
import com.drmangotea.createindustry.registry.TFMGFluids;
|
||||
import com.drmangotea.createindustry.registry.TFMGSoundEvents;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
|
||||
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.LangBuilder;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.DirectionalBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.IFluidTank;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.templates.FluidTank;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
||||
|
||||
@SuppressWarnings("removal")
|
||||
public class RadialEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable {
|
||||
|
||||
public LazyOptional<IFluidHandler> fluidCapability;
|
||||
protected FluidTank tankInventory;
|
||||
|
||||
protected FluidTank lubricationOilTank;
|
||||
|
||||
protected FluidTank coolantTank;
|
||||
|
||||
protected int soundTimer=0;
|
||||
|
||||
public int inputSingal=0;
|
||||
|
||||
|
||||
public int fuelConsumption =0;
|
||||
|
||||
public float stressTotal=0;
|
||||
public float speed=0;
|
||||
public float stressBase=0;
|
||||
|
||||
public int efficiency=1;
|
||||
public final int idealSpeed=12;
|
||||
|
||||
public int consumptionTimer=0;
|
||||
|
||||
|
||||
|
||||
|
||||
public Fluid lubricationOil = TFMGFluids.LUBRICATION_OIL.get();
|
||||
public Fluid coolant = TFMGFluids.COOLING_FLUID.get();
|
||||
|
||||
public float powerModifier=1;
|
||||
public float efficiencyModifier = 1.4f;
|
||||
|
||||
public List<BlockPos> inputs = new ArrayList<>();
|
||||
//
|
||||
public int signal;
|
||||
boolean signalChanged;
|
||||
//
|
||||
|
||||
// protected ScrollValueBehaviour generatedSpeed;
|
||||
|
||||
public RadialEngineBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
tankInventory = createInventory();
|
||||
|
||||
lubricationOilTank = createUpgradeTankInventory(lubricationOil);
|
||||
coolantTank = createUpgradeTankInventory(coolant);
|
||||
|
||||
|
||||
//fluidCapability = LazyOptional.of(() -> tankInventory);
|
||||
fluidCapability = LazyOptional.of(() -> {
|
||||
return new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank );
|
||||
});
|
||||
|
||||
signal = 0;
|
||||
setLazyTickRate(40);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
|
||||
|
||||
|
||||
|
||||
public boolean spawnInput(Direction side){
|
||||
BlockPos posToSpawn = getBlockPos().relative(side);
|
||||
|
||||
|
||||
if(side.getAxis() == this.getBlockState().getValue(DirectionalKineticBlock.FACING).getAxis())
|
||||
return false;
|
||||
|
||||
if(!level.getBlockState(posToSpawn).isAir()) {
|
||||
if(level.getBlockState(posToSpawn).is(TFMGBlocks.RADIAL_ENGINE_INPUT.get())) {
|
||||
|
||||
inputs.remove(posToSpawn);
|
||||
level.setBlock(posToSpawn, Blocks.AIR.defaultBlockState(),3);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
level.setBlock(posToSpawn, TFMGBlocks.RADIAL_ENGINE_INPUT.getDefaultState().setValue(DirectionalBlock.FACING,this.getBlockState().getValue(DirectionalKineticBlock.FACING).getOpposite()),3);
|
||||
inputs.add(posToSpawn);
|
||||
((RadialEngineInputBlockEntity)level.getBlockEntity(posToSpawn)).setEngine(this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
sendData();
|
||||
if (!hasSource() || getGeneratedSpeed() > getTheoreticalSpeed())
|
||||
updateGeneratedRotation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneratedSpeed() {
|
||||
|
||||
int signal = Math.max(this.signal,inputSingal);
|
||||
|
||||
if(!level.isClientSide){
|
||||
|
||||
|
||||
calculateEfficiency();
|
||||
fuelConsumption = (int)((speed/(efficiency/10)/7)+1);
|
||||
if(fuelConsumption<1)
|
||||
fuelConsumption=0;
|
||||
if(!tankInventory.isEmpty()) {
|
||||
|
||||
if(consumptionTimer>=45) {
|
||||
if(signal!=0)
|
||||
tankInventory.drain(fuelConsumption, IFluidHandler.FluidAction.EXECUTE);
|
||||
consumptionTimer=0;
|
||||
}
|
||||
consumptionTimer++;
|
||||
|
||||
|
||||
return ((signal*signal)*0.8f)*powerModifier;
|
||||
|
||||
}}
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void setInputSingal(int inputSingal) {
|
||||
this.inputSingal = inputSingal;
|
||||
}
|
||||
|
||||
public void calculateEfficiency(){
|
||||
|
||||
int signal = Math.max(this.signal,inputSingal);
|
||||
|
||||
|
||||
if(signal==0||tankInventory.isEmpty()) {
|
||||
efficiency = 0;
|
||||
return;
|
||||
}
|
||||
efficiency=100;
|
||||
|
||||
if(signal>=idealSpeed){
|
||||
efficiency= (int) ((100-(signal-idealSpeed)*5)/efficiencyModifier);
|
||||
}
|
||||
|
||||
if(signal<idealSpeed){
|
||||
efficiency= (int) ((100-(idealSpeed-signal)*3)/efficiencyModifier);
|
||||
}
|
||||
|
||||
|
||||
if(efficiency>100)
|
||||
efficiency=100;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
// boolean added = super.addToGoggleTooltip(tooltip, isPlayerSneaking);
|
||||
// if (!IRotate.StressImpact.isEnabled())
|
||||
// return added;
|
||||
//
|
||||
Lang.translate("goggles.engine_stats")
|
||||
.forGoggles(tooltip);
|
||||
stressBase = calculateAddedStressCapacity();
|
||||
// if (Mth.equal(stressBase, 0))
|
||||
// return added;
|
||||
|
||||
|
||||
Lang.translate("tooltip.capacityProvided")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.space()
|
||||
.forGoggles(tooltip);
|
||||
|
||||
speed = getTheoreticalSpeed();
|
||||
if (speed != getGeneratedSpeed() && speed != 0)
|
||||
// stressBase *= getGeneratedSpeed() / speed;
|
||||
speed = Math.abs(speed);
|
||||
|
||||
stressTotal = stressBase * speed;
|
||||
|
||||
Lang.number(stressTotal)
|
||||
.translate("generic.unit.stress")
|
||||
.style(ChatFormatting.DARK_AQUA)
|
||||
|
||||
.space()
|
||||
.add(Lang.translate("gui.goggles.at_current_speed")
|
||||
.style(ChatFormatting.DARK_GRAY))
|
||||
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
Lang.translate("goggles.engine_redstone_input")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
Lang.translate("tooltip.engine_analog_strength", this.signal)
|
||||
.style(ChatFormatting.DARK_AQUA)
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
/////
|
||||
|
||||
Lang.translate("goggles.engine.efficiency")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
Lang.translate("goggles.get_engine_efficiency", this.efficiency)
|
||||
.style(ChatFormatting.DARK_AQUA)
|
||||
.add(Lang.translate("goggles.misc.percent_symbol"))
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
|
||||
////////////////////////////////////////
|
||||
LazyOptional<IFluidHandler> handler = fluidCapability;
|
||||
Optional<IFluidHandler> resolve = handler.resolve();
|
||||
if (!resolve.isPresent())
|
||||
return false;
|
||||
|
||||
IFluidHandler tank = resolve.get();
|
||||
if (tank.getTanks() == 0)
|
||||
return false;
|
||||
|
||||
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
|
||||
Lang.translate("goggles.fuel_container")
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip);
|
||||
|
||||
|
||||
boolean isEmpty = true;
|
||||
for (int i = 0; i < tank.getTanks(); i++) {
|
||||
FluidStack fluidStack = tank.getFluidInTank(i);
|
||||
if (fluidStack.isEmpty())
|
||||
continue;
|
||||
|
||||
Lang.fluidName(fluidStack)
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
Lang.builder()
|
||||
.add(Lang.number(fluidStack.getAmount())
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_AQUA))
|
||||
.text(ChatFormatting.GRAY, " / ")
|
||||
.add(Lang.number(tank.getTankCapacity(i))
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_GRAY))
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
isEmpty = false;
|
||||
}
|
||||
|
||||
if (tank.getTanks() > 1) {
|
||||
if (isEmpty)
|
||||
tooltip.remove(tooltip.size() - 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!isEmpty)
|
||||
return true;
|
||||
|
||||
Lang.translate("gui.goggles.fluid_container.capacity")
|
||||
.add(Lang.number(tank.getTankCapacity(0))
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_AQUA))
|
||||
.style(ChatFormatting.DARK_GRAY)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
|
||||
|
||||
|
||||
// this.getBlockState().setValue(EngineBlock.BACKPART,true);
|
||||
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
compound.putInt("Signal", signal);
|
||||
|
||||
|
||||
|
||||
compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag()));
|
||||
compound.put("Coolant", coolantTank.writeToNBT(new CompoundTag()));
|
||||
compound.put("LubricationOil", lubricationOilTank.writeToNBT(new CompoundTag()));
|
||||
|
||||
compound.put("Inputs", writeInputs(new CompoundTag(),inputs));
|
||||
|
||||
|
||||
|
||||
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
|
||||
public static CompoundTag writeInputs(CompoundTag nbt, List<BlockPos> inputs){
|
||||
int x = 0;
|
||||
|
||||
for(BlockPos input : inputs) {
|
||||
|
||||
nbt.putInt("X"+x, input.getX());
|
||||
nbt.putInt("Y"+x, input.getY());
|
||||
nbt.putInt("Z"+x, input.getZ());
|
||||
|
||||
x++;
|
||||
}
|
||||
|
||||
|
||||
return nbt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
|
||||
|
||||
|
||||
tankInventory.readFromNBT(compound.getCompound("TankContent"));
|
||||
coolantTank.readFromNBT(compound.getCompound("Coolant"));
|
||||
lubricationOilTank.readFromNBT(compound.getCompound("LubricationOil"));
|
||||
|
||||
inputs = readInputs(compound.getCompound("Inputs"));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
signal = compound.getInt("Signal");
|
||||
super.read(compound, clientPacket);
|
||||
}
|
||||
|
||||
public void loadInputs(){
|
||||
for(BlockPos pos : inputs){
|
||||
|
||||
if(level.getBlockEntity(pos) instanceof RadialEngineInputBlockEntity be)
|
||||
be.setEngine(this);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<BlockPos> readInputs(CompoundTag nbt){
|
||||
|
||||
int inputCount = nbt.getAllKeys().size()/3;
|
||||
|
||||
List<BlockPos> toReturn = new ArrayList<>();
|
||||
|
||||
for(int i = 0; i < inputCount; i++){
|
||||
|
||||
|
||||
toReturn.add(new BlockPos(nbt.getInt("X"+i),nbt.getInt("Y"+i),nbt.getInt("Z"+i)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
public float getModifier() {
|
||||
return getModifierForSignal(signal);
|
||||
}
|
||||
|
||||
public void neighbourChanged() {
|
||||
if (!hasLevel())
|
||||
return;
|
||||
int power = level.getBestNeighborSignal(worldPosition);
|
||||
if (power != signal)
|
||||
signalChanged = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
neighbourChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
|
||||
loadInputs();
|
||||
|
||||
|
||||
|
||||
|
||||
if (signalChanged) {
|
||||
signalChanged = false;
|
||||
analogSignalChanged(level.getBestNeighborSignal(worldPosition));
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
|
||||
BlockPos pos = inputs.get(i);
|
||||
|
||||
if(level.getBlockEntity(pos) instanceof RadialEngineInputBlockEntity) {
|
||||
((RadialEngineInputBlockEntity) level.getBlockEntity(pos)).setEngine(this);
|
||||
if(level.getBlockState(pos).getValue(FACING)!=this.getBlockState().getValue(FACING)){
|
||||
level.getBlockState(pos).setValue(FACING,this.getBlockState().getValue(FACING));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else inputs.remove(pos);
|
||||
|
||||
}
|
||||
|
||||
calculateUpgradeModifier();
|
||||
|
||||
//
|
||||
int random1 = Create.RANDOM.nextInt(125);
|
||||
int random2 = Create.RANDOM.nextInt(200);
|
||||
|
||||
if(random1 == 69)
|
||||
coolantTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
|
||||
if(random2 == 69)
|
||||
lubricationOilTank.drain(1, IFluidHandler.FluidAction.EXECUTE);
|
||||
|
||||
|
||||
//
|
||||
|
||||
|
||||
|
||||
///
|
||||
// if(signal!=0&&hasBackPart()&&tankInventory.getFluidAmount()!=0&&!overStressed&&isExhaustTankFull()) {
|
||||
int signal = Math.max(this.signal,inputSingal);
|
||||
|
||||
soundTimer++;
|
||||
|
||||
// if(!isExhaustTankFull()) {
|
||||
if (soundTimer >= ((16-signal)/0.8)+1) {
|
||||
if(signal!=0&&
|
||||
tankInventory.getFluidAmount()!=0 &&
|
||||
!overStressed
|
||||
|
||||
|
||||
){
|
||||
|
||||
|
||||
// if(this.getGeneratedSpeed()!=0) {
|
||||
if (level.isClientSide)
|
||||
makeSound();
|
||||
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
///
|
||||
updateGeneratedRotation();
|
||||
calculateEfficiency();
|
||||
|
||||
|
||||
|
||||
|
||||
stressBase = calculateAddedStressCapacity();
|
||||
speed = getTheoreticalSpeed();
|
||||
if (speed != getGeneratedSpeed() && speed != 0)
|
||||
stressBase *= getGeneratedSpeed() / speed;
|
||||
speed = Math.abs(speed);
|
||||
|
||||
stressTotal = stressBase * speed;
|
||||
// if (level.isClientSide)
|
||||
// return;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void calculateUpgradeModifier(){
|
||||
|
||||
|
||||
float newPowerModifier=1;
|
||||
float newEfficiencyModifier = 1.4f;
|
||||
|
||||
if(lubricationOilTank.getFluidAmount()>0) {
|
||||
//newPowerModifier+=.3f;
|
||||
newEfficiencyModifier-=.1f;
|
||||
}
|
||||
if(coolantTank.getFluidAmount()>0) {
|
||||
newPowerModifier+=.3f;
|
||||
newEfficiencyModifier-=.3f;
|
||||
}
|
||||
|
||||
////////
|
||||
|
||||
|
||||
////
|
||||
|
||||
powerModifier=newPowerModifier;
|
||||
efficiencyModifier = newEfficiencyModifier;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void makeSound(){
|
||||
soundTimer=0;
|
||||
|
||||
|
||||
TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.6f, 1f, false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void analogSignalChanged(int newSignal) {
|
||||
//removeSource();
|
||||
signal = newSignal;
|
||||
}
|
||||
|
||||
protected float getModifierForSignal(int newPower) {
|
||||
if (newPower == 0)
|
||||
return 1;
|
||||
return 1 + ((newPower + 1) / 16f);
|
||||
}
|
||||
/////////////////////
|
||||
|
||||
protected SmartFluidTank createInventory() {
|
||||
return new SmartFluidTank(1000, this::onFluidStackChanged){
|
||||
@Override
|
||||
public boolean isFluidValid(FluidStack stack) {
|
||||
return stack.getFluid().isSame(validFuel());
|
||||
}
|
||||
};
|
||||
}
|
||||
protected SmartFluidTank createUpgradeTankInventory(Fluid validFluid) {
|
||||
return new SmartFluidTank(1000, this::onFluidStackChanged){
|
||||
@Override
|
||||
public boolean isFluidValid(FluidStack stack) {
|
||||
return stack.getFluid().isSame(validFluid);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
protected void onFluidStackChanged(FluidStack newFluidStack) {}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public float getFillState() {
|
||||
return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
||||
//if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
// return fluidCapability.cast();
|
||||
return super.getCapability(cap, side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
fluidCapability.invalidate();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public IFluidTank getTankInventory() {
|
||||
return tankInventory;
|
||||
}
|
||||
|
||||
public Fluid validFuel(){
|
||||
return TFMGFluids.GASOLINE.get();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial;
|
||||
|
||||
|
||||
import com.simibubi.create.AllPartialModels;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class RadialEngineRenderer extends KineticBlockEntityRenderer<RadialEngineBlockEntity> {
|
||||
|
||||
public RadialEngineRenderer(BlockEntityRendererProvider.Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SuperByteBuffer getRotatedModel(RadialEngineBlockEntity be, BlockState state) {
|
||||
return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial.input;
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.DirectionalBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class RadialEngineInputBlock extends DirectionalBlock implements IBE<RadialEngineInputBlockEntity> {
|
||||
public RadialEngineInputBlock(Properties p_52591_) {
|
||||
super(p_52591_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
builder.add(FACING);
|
||||
super.createBlockStateDefinition(builder);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, BlockGetter p_220053_2_, BlockPos p_220053_3_,
|
||||
CollisionContext p_220053_4_) {
|
||||
return TFMGShapes.EMPTY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
|
||||
Direction nearestLookingDirection = context.getNearestLookingDirection();
|
||||
return defaultBlockState().setValue(FACING, context.getPlayer() != null && context.getPlayer()
|
||||
.isShiftKeyDown() ? nearestLookingDirection : nearestLookingDirection.getOpposite());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Class<RadialEngineInputBlockEntity> getBlockEntityClass() {
|
||||
return RadialEngineInputBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends RadialEngineInputBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.RADIAL_ENGINE_INPUT.get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial.input;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.CreateTFMG;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.List;
|
||||
|
||||
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
||||
// :3
|
||||
public class RadialEngineInputBlockEntity extends SmartBlockEntity {
|
||||
|
||||
|
||||
int timer = 10;
|
||||
boolean signalChanged;
|
||||
|
||||
public int signal=0;
|
||||
|
||||
RadialEngineBlockEntity engine;
|
||||
|
||||
public RadialEngineInputBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
|
||||
public void setEngine(RadialEngineBlockEntity engine) {
|
||||
this.engine = engine;
|
||||
}
|
||||
|
||||
public void tick(){
|
||||
super.tick();
|
||||
|
||||
if(timer>0){
|
||||
timer--;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(engine!=null) {
|
||||
if (!(level.getBlockEntity(engine.getBlockPos()) instanceof RadialEngineBlockEntity)) {
|
||||
engine = null;
|
||||
}
|
||||
|
||||
|
||||
if(engine!=null) {
|
||||
engine.setInputSingal(signal);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(engine == null) {
|
||||
if(timer ==0)
|
||||
level.setBlock(getBlockPos(), Blocks.AIR.defaultBlockState(), 3);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (signalChanged) {
|
||||
signalChanged = false;
|
||||
analogSignalChanged(level.getBestNeighborSignal(worldPosition));
|
||||
}
|
||||
|
||||
}
|
||||
protected void analogSignalChanged(int newSignal) {
|
||||
|
||||
signal = newSignal;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
@SuppressWarnings("'net.minecraftforge.items.CapabilityItemHandler' is deprecated and marked for removal ")
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, Direction side) {
|
||||
|
||||
if(engine!=null)
|
||||
if(side == this.getBlockState().getValue(FACING))
|
||||
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
return engine.fluidCapability.cast();
|
||||
return super.getCapability(cap, side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
compound.putInt("Signal", signal);
|
||||
|
||||
if(engine !=null) {
|
||||
compound.putInt("X", engine.getBlockPos().getX());
|
||||
compound.putInt("Y", engine.getBlockPos().getY());
|
||||
compound.putInt("Z", engine.getBlockPos().getZ());
|
||||
}
|
||||
|
||||
|
||||
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
|
||||
public void neighbourChanged() {
|
||||
if (!hasLevel())
|
||||
return;
|
||||
int power = level.getBestNeighborSignal(worldPosition);
|
||||
if (power != signal)
|
||||
signalChanged = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
neighbourChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
|
||||
if(engine == null)
|
||||
engine = (RadialEngineBlockEntity) level.getBlockEntity(new BlockPos(
|
||||
compound.getInt("X"),
|
||||
compound.getInt("Y"),
|
||||
compound.getInt("Z")
|
||||
));
|
||||
|
||||
|
||||
|
||||
signal = compound.getInt("Signal");
|
||||
|
||||
|
||||
super.read(compound, clientPacket);
|
||||
}
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial.large;
|
||||
|
||||
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class LargeRadialEngineBlock extends DirectionalKineticBlock implements IBE<LargeRadialEngineBlockEntity> {
|
||||
|
||||
|
||||
public LargeRadialEngineBlock(Properties properties) {
|
||||
super(properties);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
|
||||
Level level = context.getLevel();
|
||||
BlockPos pos = context.getClickedPos();
|
||||
Direction direction = context.getClickedFace();
|
||||
|
||||
|
||||
return onBlockEntityUse(level, pos, be -> {
|
||||
|
||||
if(be.spawnInput(direction))
|
||||
return InteractionResult.SUCCESS;
|
||||
|
||||
return InteractionResult.FAIL;
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.LARGE_RADIAL_ENGINE.get(pState.getValue(FACING));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Direction preferred = getPreferredFacing(context);
|
||||
if ((context.getPlayer() != null && context.getPlayer()
|
||||
.isShiftKeyDown()) || preferred == null)
|
||||
return super.getStateForPlacement(context);
|
||||
return defaultBlockState()
|
||||
.setValue(FACING, preferred)
|
||||
//.setValue(BACK_PART,false)
|
||||
;
|
||||
}
|
||||
|
||||
// IRotate:
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face.getAxis() == state.getValue(FACING).getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(FACING)
|
||||
.getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hideStressImpact() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Class<LargeRadialEngineBlockEntity> getBlockEntityClass() {
|
||||
return LargeRadialEngineBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends LargeRadialEngineBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.LARGE_RADIAL_ENGINE.get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.drmangotea.createindustry.blocks.engines.radial.large;
|
||||
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlockEntity;
|
||||
import com.drmangotea.createindustry.registry.TFMGFluids;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
|
||||
public class LargeRadialEngineBlockEntity extends RadialEngineBlockEntity {
|
||||
public LargeRadialEngineBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
@Override
|
||||
public float getGeneratedSpeed() {
|
||||
|
||||
int signal = Math.max(this.signal,inputSingal);
|
||||
|
||||
if(!level.isClientSide){
|
||||
|
||||
|
||||
calculateEfficiency();
|
||||
fuelConsumption = (int)((speed/(efficiency/10)/5)+1);
|
||||
if(fuelConsumption<1)
|
||||
fuelConsumption=0;
|
||||
if(!tankInventory.isEmpty()) {
|
||||
|
||||
if(consumptionTimer>=45) {
|
||||
if(signal!=0)
|
||||
tankInventory.drain(fuelConsumption, IFluidHandler.FluidAction.EXECUTE);
|
||||
consumptionTimer=0;
|
||||
}
|
||||
consumptionTimer++;
|
||||
|
||||
|
||||
return ((signal*signal)*0.8f)*powerModifier;
|
||||
|
||||
}}
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
@Override
|
||||
public Fluid validFuel(){
|
||||
return TFMGFluids.KEROSENE.get();
|
||||
};
|
||||
}
|
||||
@@ -83,9 +83,9 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem
|
||||
|
||||
|
||||
super(type, pos, state);
|
||||
inputInventory = new SmartInventory(1, this).forbidInsertion()
|
||||
inputInventory = new SmartInventory(1, this).forbidInsertion().forbidExtraction()
|
||||
.withMaxStackSize(64);
|
||||
fuelInventory = new SmartInventory(1, this).forbidInsertion()
|
||||
fuelInventory = new SmartInventory(1, this).forbidInsertion().forbidExtraction()
|
||||
.withMaxStackSize(64);
|
||||
|
||||
itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(inputInventory,fuelInventory));
|
||||
@@ -118,8 +118,9 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem
|
||||
|
||||
|
||||
if(speedModifier!=0) {
|
||||
fuelEfficiency = 400 * speedModifier;
|
||||
speedModifier = (blastFurnaceLevel/2);
|
||||
fuelEfficiency = 400 * (speedModifier);
|
||||
|
||||
}else {
|
||||
fuelEfficiency = 400;
|
||||
speedModifier = 1;
|
||||
@@ -194,7 +195,7 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem
|
||||
(tank1.getPrimaryHandler().getFluidAmount()+recipe.getFluidResults().get(0).getAmount())<=tank1.getPrimaryHandler().getCapacity()&&
|
||||
(tank2.getPrimaryHandler().getFluidAmount()+recipe.getFluidResults().get(1).getAmount())<=tank2.getPrimaryHandler().getCapacity()) {
|
||||
timer--;
|
||||
int random = Create.RANDOM.nextInt((int) fuelEfficiency);
|
||||
int random = Create.RANDOM.nextInt((int) Math.abs(fuelEfficiency)+1);
|
||||
if(random == 69)
|
||||
fuelInventory.getStackInSlot(0).shrink(1);
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven;
|
||||
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.TFMGMachineBlockEntity;
|
||||
import com.drmangotea.createindustry.recipes.coking.CokingRecipe;
|
||||
import com.drmangotea.createindustry.registry.*;
|
||||
import com.drmangotea.createindustry.registry.TFMGBlocks;
|
||||
import com.drmangotea.createindustry.registry.TFMGRecipeTypes;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
|
||||
@@ -10,21 +13,24 @@ import com.simibubi.create.foundation.item.SmartInventory;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.RegistryAccess;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
import net.minecraftforge.items.wrapper.RecipeWrapper;
|
||||
@@ -39,7 +45,7 @@ import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
|
||||
public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWrenchable {
|
||||
|
||||
public boolean isController=false;
|
||||
public boolean isController = false;
|
||||
|
||||
public CokeOvenBlockEntity controller;
|
||||
|
||||
@@ -74,19 +80,29 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
super.tick();
|
||||
|
||||
|
||||
if(controller==null){
|
||||
inputInventory.forbidInsertion();
|
||||
} else {
|
||||
inputInventory.allowInsertion();
|
||||
}
|
||||
// if(isController)
|
||||
// level.setBlock(getBlockPos().above(5), Blocks.DIAMOND_BLOCK.defaultBlockState(),3);
|
||||
|
||||
|
||||
|
||||
|
||||
if(controller==null){
|
||||
controller = this;
|
||||
inputInventory.forbidInsertion();
|
||||
} else {
|
||||
inputInventory.allowInsertion();
|
||||
}
|
||||
|
||||
//if(controller!=this)
|
||||
// level.setBlock(this.getBlockPos().above(5), Blocks.GOLD_BLOCK.defaultBlockState(),3);
|
||||
|
||||
visualDoorAngle.chase(doorAngle, 0.2f, LerpedFloat.Chaser.EXP);
|
||||
visualDoorAngle.tickChaser();
|
||||
|
||||
|
||||
|
||||
// if(controller != null)
|
||||
// refreshCapability();
|
||||
// if(controller != null)
|
||||
// refreshCapability();
|
||||
if(isController){
|
||||
controller = this;
|
||||
}
|
||||
@@ -94,11 +110,11 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
if(controller!=null)
|
||||
if(!controller.isController)
|
||||
controller=null;
|
||||
controller=this;
|
||||
|
||||
if(controller!=null)
|
||||
if(!(level.getBlockEntity(controller.getBlockPos()) instanceof CokeOvenBlockEntity))
|
||||
controller = null;
|
||||
controller = this;
|
||||
|
||||
|
||||
setBlockState();
|
||||
@@ -110,9 +126,9 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
progress = 0;
|
||||
}else {
|
||||
|
||||
progress = 100-(timer/(lastRecipe.getProcessingDuration()/100));
|
||||
}
|
||||
progress = 100-(timer/(lastRecipe.getProcessingDuration()/100));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(timer>=0&&timer<44){
|
||||
@@ -148,7 +164,7 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
public void setBlockState(){
|
||||
|
||||
if(controller == null){
|
||||
if(controller == this){
|
||||
level.setBlock(getBlockPos(),this.getBlockState().setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.CASUAL),2);
|
||||
|
||||
}
|
||||
@@ -159,18 +175,18 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
|
||||
if(timer==-1) {
|
||||
level.setBlock(getBlockPos(),this.getBlockState().setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.MIDDLE_OFF),2);
|
||||
level.setBlock(getBlockPos(),this.getBlockState().setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.MIDDLE_OFF),2);
|
||||
if(level.getBlockEntity(getBlockPos().below())instanceof CokeOvenBlockEntity)
|
||||
level.setBlock(getBlockPos().below(),level.getBlockState(getBlockPos().below()).setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.BOTTOM_OFF).setValue(FACING,this.getBlockState().getValue(FACING)),2);
|
||||
if(level.getBlockEntity(getBlockPos().above())instanceof CokeOvenBlockEntity)
|
||||
level.setBlock(getBlockPos().above(),level.getBlockState(getBlockPos().above()).setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.TOP_OFF).setValue(FACING,this.getBlockState().getValue(FACING)),2);
|
||||
}else {
|
||||
level.setBlock(getBlockPos(),this.getBlockState().setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.MIDDLE_ON),2);
|
||||
}else {
|
||||
level.setBlock(getBlockPos(),this.getBlockState().setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.MIDDLE_ON),2);
|
||||
if(level.getBlockEntity(getBlockPos().below())instanceof CokeOvenBlockEntity)
|
||||
level.setBlock(getBlockPos().below(),level.getBlockState(getBlockPos().below()).setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.BOTTOM_ON).setValue(FACING,this.getBlockState().getValue(FACING)),2);
|
||||
if(level.getBlockEntity(getBlockPos().above())instanceof CokeOvenBlockEntity)
|
||||
level.setBlock(getBlockPos().above(),level.getBlockState(getBlockPos().above()).setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.TOP_ON).setValue(FACING,this.getBlockState().getValue(FACING)),2);
|
||||
}
|
||||
level.setBlock(getBlockPos().above(),level.getBlockState(getBlockPos().above()).setValue(CONTROLLER_TYPE, CokeOvenBlock.ControllerType.TOP_ON).setValue(FACING,this.getBlockState().getValue(FACING)),2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -192,17 +208,17 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
(tank1.getPrimaryHandler().getFluidAmount()+lastRecipe.getFluidResults().get(0).getAmount())<=tank1.getPrimaryHandler().getCapacity(
|
||||
|
||||
|
||||
)){
|
||||
)){
|
||||
timer = lastRecipe.getProcessingDuration();
|
||||
inputInventory.setItem(0,new ItemStack(inputInventory.getItem(0).getItem(),inputInventory.getItem(0).getCount()-1));
|
||||
|
||||
}
|
||||
// if(lastRecipe != null)
|
||||
// if((tank1.getPrimaryHandler().getFluidAmount()+lastRecipe.getFluidResults().get(0).getAmount())>tank1.getPrimaryHandler().getCapacity())
|
||||
// timer = -1;
|
||||
// if(lastRecipe != null)
|
||||
// if((tank2.getPrimaryHandler().getFluidAmount()+CARBON_DIOXIDE_PRODUCTION)>tank2.getPrimaryHandler().getCapacity())
|
||||
// timer = -1;
|
||||
// if(lastRecipe != null)
|
||||
// if((tank1.getPrimaryHandler().getFluidAmount()+lastRecipe.getFluidResults().get(0).getAmount())>tank1.getPrimaryHandler().getCapacity())
|
||||
// timer = -1;
|
||||
// if(lastRecipe != null)
|
||||
// if((tank2.getPrimaryHandler().getFluidAmount()+CARBON_DIOXIDE_PRODUCTION)>tank2.getPrimaryHandler().getCapacity())
|
||||
// timer = -1;
|
||||
|
||||
|
||||
if(lastRecipe!=null
|
||||
@@ -221,8 +237,7 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
public void process(){
|
||||
|
||||
|
||||
if(level.isClientSide)
|
||||
return;
|
||||
|
||||
if(!isController)
|
||||
return;
|
||||
//RecipeWrapper inventoryIn = new RecipeWrapper(inputInventory);
|
||||
@@ -231,13 +246,16 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
// if (!recipe.isPresent())
|
||||
// return;
|
||||
// lastRecipe = recipe.get();
|
||||
//}
|
||||
//})
|
||||
BlockPos toSpawn = getBlockPos().below().relative(this.getBlockState().getValue(FACING));
|
||||
//
|
||||
ItemEntity itemToSpawn = new ItemEntity(level,toSpawn.getX()+0.5f,toSpawn.getY()+0.5f,toSpawn.getZ()+0.5f, lastRecipe.getResultItem().copy());
|
||||
|
||||
if(lastRecipe == null)
|
||||
return;
|
||||
|
||||
ItemEntity itemToSpawn = new ItemEntity(level, toSpawn.getX() + 0.5f, toSpawn.getY() + 0.5f, toSpawn.getZ() + 0.5f, lastRecipe.getResultItem().copy());
|
||||
level.addFreshEntity(itemToSpawn);
|
||||
|
||||
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -248,29 +266,18 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
private void refreshCapability() {
|
||||
|
||||
if (this.controller == null) {
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(controller!=null)
|
||||
if (controller.tank1 != null)
|
||||
if (controller.tank2 != null)
|
||||
if (controller.inputInventory != null){
|
||||
fluidCapability = LazyOptional.of(() -> new CombinedTankWrapper(controller.tank1.getPrimaryHandler(), controller.tank2.getPrimaryHandler()));
|
||||
itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(controller.inputInventory));
|
||||
}
|
||||
|
||||
|
||||
LazyOptional<IFluidHandler> oldFluidCapability = fluidCapability;
|
||||
LazyOptional<IItemHandlerModifiable> oldItemCapability = itemCapability;
|
||||
|
||||
|
||||
if (controller.tank1 != null){
|
||||
|
||||
if (controller.tank2 != null){
|
||||
|
||||
if (controller.inputInventory != null){
|
||||
|
||||
fluidCapability = LazyOptional.of(() -> new CombinedTankWrapper(controller.tank1.getPrimaryHandler(), controller.tank2.getPrimaryHandler()));
|
||||
itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(controller.inputInventory));
|
||||
}}}
|
||||
|
||||
//oldFluidCapability.invalidate();
|
||||
//oldItemCapability.invalidate();
|
||||
}
|
||||
public void setControllers(){
|
||||
if(!isValid())
|
||||
@@ -289,10 +296,10 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
|
||||
CokeOvenBlockEntity checkedBE = (CokeOvenBlockEntity) level.getBlockEntity(checkedPos);
|
||||
checkedBE.controller = this;
|
||||
checkedBE.controller = this;
|
||||
|
||||
if(checkedBE.getBlockState().getValue(FACING)!=getBlockState().getValue(FACING))
|
||||
level.setBlock(checkedPos,checkedBE.getBlockState().setValue(FACING,getBlockState().getValue(FACING)),2);
|
||||
if(checkedBE.getBlockState().getValue(FACING)!=getBlockState().getValue(FACING))
|
||||
level.setBlock(checkedPos,checkedBE.getBlockState().setValue(FACING,getBlockState().getValue(FACING)),2);
|
||||
|
||||
checkedPos = checkedPos.below();
|
||||
}
|
||||
@@ -308,26 +315,34 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
BlockPos checkedPos=this.getBlockPos().above();
|
||||
|
||||
if(controller!=this){
|
||||
isController = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
for(int i = 0; i<3;i++){
|
||||
for(int y = 0; y<3;y++){
|
||||
|
||||
if(checkedPos == this.getBlockPos()){
|
||||
if(!isCokeOvenBlock(checkedPos,true)) {
|
||||
isController = false;
|
||||
return false;
|
||||
}
|
||||
}else
|
||||
|
||||
if(!isCokeOvenBlock(checkedPos)) {
|
||||
isController=false;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(occupiedByOtherController(checkedPos)) {
|
||||
if(checkedPos == this.getBlockPos()){
|
||||
if(!isCokeOvenBlock(checkedPos,true)) {
|
||||
isController = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
//
|
||||
if(!isCokeOvenBlock(checkedPos)) {
|
||||
isController = false;
|
||||
return false;
|
||||
}
|
||||
//
|
||||
if(occupiedByOtherController(checkedPos)) {
|
||||
isController = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -351,10 +366,13 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
}
|
||||
public boolean occupiedByOtherController(BlockPos pos){
|
||||
|
||||
if(level.getBlockEntity(pos).getBlockState().is(TFMGBlocks.COKE_OVEN.get()))
|
||||
if(((CokeOvenBlockEntity)level.getBlockEntity(pos)).controller == null||((CokeOvenBlockEntity)level.getBlockEntity(pos)).controller == this)
|
||||
// if(((CokeOvenBlockEntity)level.getBlockEntity(pos)).controller != this)
|
||||
return false;
|
||||
if(controller == null)
|
||||
controller = this;
|
||||
|
||||
if(level.getBlockEntity(pos).getBlockState().is(TFMGBlocks.COKE_OVEN.get()))
|
||||
if(((CokeOvenBlockEntity)level.getBlockEntity(pos)).controller == ((CokeOvenBlockEntity)level.getBlockEntity(pos)).controller||((CokeOvenBlockEntity)level.getBlockEntity(pos)).controller == this)
|
||||
// if(()
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -368,10 +386,10 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
// Lang.translate("goggles.surface_scanner.distance",controller.getBlockPos().getY())
|
||||
// .style(ChatFormatting.DARK_BLUE)
|
||||
// .forGoggles(tooltip,1);
|
||||
// if(controller !=null)
|
||||
// Lang.translate("goggles.surface_scanner.distance",controller.timer)
|
||||
// .style(ChatFormatting.DARK_BLUE)
|
||||
// .forGoggles(tooltip,1);
|
||||
// if(controller !=null)
|
||||
// Lang.translate("goggles.surface_scanner.distance",controller.timer)
|
||||
// .style(ChatFormatting.DARK_BLUE)
|
||||
// .forGoggles(tooltip,1);
|
||||
//
|
||||
//if(controller==null){
|
||||
// Lang.translate("aaaaaaaaaaaaaaaaaaaaaaaaaaa")
|
||||
@@ -379,8 +397,8 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
// .forGoggles(tooltip,1);
|
||||
//
|
||||
|
||||
// return true;
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
if(controller!=null)
|
||||
if(controller.getBlockPos() == getBlockPos()&&!isValid()){
|
||||
Lang.translate("goggles.coke_oven.invalid")
|
||||
@@ -401,7 +419,7 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
if(lastRecipe != null)
|
||||
if((tank1.getPrimaryHandler().getFluidAmount()+lastRecipe.getFluidResults().get(0).getAmount())>tank1.getPrimaryHandler().getCapacity()
|
||||
&&(tank2.getPrimaryHandler().getFluidAmount()+CARBON_DIOXIDE_PRODUCTION)>tank2.getPrimaryHandler().getCapacity()) {
|
||||
&&(tank2.getPrimaryHandler().getFluidAmount()+CARBON_DIOXIDE_PRODUCTION)>tank2.getPrimaryHandler().getCapacity()) {
|
||||
Lang.translate("goggles.coke_oven.tank_full")
|
||||
.style(ChatFormatting.DARK_RED)
|
||||
.forGoggles(tooltip,1);
|
||||
@@ -429,12 +447,12 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
|
||||
|
||||
|
||||
// Lang.translate("goggles.coke_oven.fluid_amount_output",tank1.getPrimaryHandler().getCapacity())
|
||||
// .style(ChatFormatting.DARK_AQUA)
|
||||
// .forGoggles(tooltip,1);
|
||||
// Lang.translate("goggles.coke_oven.fluid_amount_exhaust",tank2.getPrimaryHandler().getCapacity())
|
||||
// .style(ChatFormatting.DARK_AQUA)
|
||||
// .forGoggles(tooltip,1);
|
||||
// Lang.translate("goggles.coke_oven.fluid_amount_output",tank1.getPrimaryHandler().getCapacity())
|
||||
// .style(ChatFormatting.DARK_AQUA)
|
||||
// .forGoggles(tooltip,1);
|
||||
// Lang.translate("goggles.coke_oven.fluid_amount_exhaust",tank2.getPrimaryHandler().getCapacity())
|
||||
// .style(ChatFormatting.DARK_AQUA)
|
||||
// .forGoggles(tooltip,1);
|
||||
Lang.translate("goggles.coke_oven.item_count",inputInventory.getItem(0).getCount())
|
||||
.style(ChatFormatting.GOLD)
|
||||
.forGoggles(tooltip,1);
|
||||
@@ -457,6 +475,14 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
timer = compound.getInt("Timer");
|
||||
|
||||
|
||||
// controller = (CokeOvenBlockEntity) level.getBlockEntity(new BlockPos(
|
||||
// compound.getInt("controllerX"),
|
||||
// compound.getInt("controllerY"),
|
||||
// compound.getInt("controllerZ")
|
||||
//
|
||||
// ));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -468,6 +494,13 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
compound.putInt("Timer", timer);
|
||||
|
||||
|
||||
// compound.putInt("controllerX", controller.getBlockPos().getX());
|
||||
// compound.putInt("controllerY", controller.getBlockPos().getY());
|
||||
// compound.putInt("controllerZ", controller.getBlockPos().getZ());
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -478,13 +511,12 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
}
|
||||
@Nonnull
|
||||
@Override
|
||||
@SuppressWarnings("'net.minecraftforge.items.CapabilityItemHandler' is deprecated and marked for removal ")
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, Direction side) {
|
||||
if(controller!=null)
|
||||
refreshCapability();
|
||||
if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||
if (cap == ForgeCapabilities.ITEM_HANDLER)
|
||||
return itemCapability.cast();
|
||||
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
if (cap == ForgeCapabilities.FLUID_HANDLER)
|
||||
return fluidCapability.cast();
|
||||
return super.getCapability(cap, side);
|
||||
}
|
||||
@@ -495,4 +527,4 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
super.addBehaviours(behaviours);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,63 +1,27 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.Mirror;
|
||||
import net.minecraft.world.level.block.Rotation;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class PumpjackBaseBlock extends HorizontalDirectionalBlock implements IWrenchable, IBE<PumpjackBaseBlockEntity> {
|
||||
|
||||
|
||||
|
||||
|
||||
public PumpjackBaseBlock(Properties p_i48440_1_) {
|
||||
super(p_i48440_1_);
|
||||
|
||||
public class PumpjackBaseBlock extends Block implements IBE<PumpjackBaseBlockEntity> {
|
||||
public PumpjackBaseBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.PUMPJACK_BASE;
|
||||
}
|
||||
public BlockState rotate(BlockState p_54540_, Rotation p_54541_) {
|
||||
return p_54540_.setValue(FACING, p_54541_.rotate(p_54540_.getValue(FACING)));
|
||||
}
|
||||
|
||||
public BlockState mirror(BlockState p_54537_, Mirror p_54538_) {
|
||||
return p_54537_.rotate(p_54538_.getRotation(p_54537_.getValue(FACING)));
|
||||
}
|
||||
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_54543_) {
|
||||
p_54543_.add(FACING);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) {
|
||||
|
||||
|
||||
world.removeBlockEntity(pos);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Class<PumpjackBaseBlockEntity> getBlockEntityClass() {
|
||||
@@ -69,4 +33,5 @@ public class PumpjackBaseBlock extends HorizontalDirectionalBlock implements IWr
|
||||
return TFMGBlockEntities.PUMPJACK_BASE.get();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.CreateTFMG;
|
||||
import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlockEntity;
|
||||
import com.drmangotea.createindustry.registry.TFMGBlocks;
|
||||
import com.drmangotea.createindustry.registry.TFMGFluids;
|
||||
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
|
||||
@@ -23,61 +22,152 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.IFluidTank;
|
||||
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.templates.FluidTank;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
import java.util.Optional;
|
||||
|
||||
public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation {
|
||||
|
||||
public BlockPos crankPos = this.getBlockPos();
|
||||
public PumpjackBlockEntity controllerHammer;
|
||||
|
||||
public boolean isRunning = false;
|
||||
|
||||
int depositCheckTimer = 0;
|
||||
|
||||
public int miningRate = 0;
|
||||
|
||||
protected LazyOptional<IFluidHandler> fluidCapability;
|
||||
public FluidTank tankInventory;
|
||||
public FluidDepositBlockEntity deposit;
|
||||
public Direction direction = this.getBlockState().getValue(FACING).getOpposite();
|
||||
int debugCounter = 0;
|
||||
public int miningRate = 0;
|
||||
int depositCheckTimer = 0;
|
||||
|
||||
private static final int SYNC_RATE = 8;
|
||||
protected int syncCooldown;
|
||||
protected boolean queuedSync;
|
||||
|
||||
|
||||
public PumpjackBaseBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
tankInventory = createInventory();
|
||||
fluidCapability = LazyOptional.of(() -> tankInventory);
|
||||
|
||||
refreshCapability();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
|
||||
|
||||
|
||||
if(controllerHammer!=null)
|
||||
if(controllerHammer.crank!=null){
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(controllerHammer!=null)
|
||||
if (!(level.getBlockEntity(controllerHammer.getBlockPos()) instanceof PumpjackBlockEntity))
|
||||
controllerHammer = null;
|
||||
|
||||
|
||||
if(controllerHammer!=null)
|
||||
if(controllerHammer.base==null)
|
||||
controllerHammer = null;
|
||||
|
||||
if(controllerHammer!=null)
|
||||
if(!controllerHammer.isRunning())
|
||||
controllerHammer = null;
|
||||
|
||||
if(controllerHammer==null)
|
||||
return;
|
||||
|
||||
isRunning = controllerHammer.isRunning();
|
||||
|
||||
|
||||
|
||||
if(!isRunning) {
|
||||
deposit = null;
|
||||
controllerHammer = null;
|
||||
miningRate = 0;
|
||||
return;
|
||||
}
|
||||
depositCheckTimer++;
|
||||
if (depositCheckTimer > 50) {
|
||||
depositCheckTimer = 0;
|
||||
findDeposit();
|
||||
|
||||
}
|
||||
PumpjackCrankBlockEntity crank=null;
|
||||
if(controllerHammer.crank!=null)
|
||||
crank = controllerHammer.crank;
|
||||
|
||||
if(crank == null)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
miningRate =
|
||||
|
||||
(int)
|
||||
Math.abs(crank.getMachineInputSpeed()*
|
||||
(crank.heightModifier));
|
||||
|
||||
process();
|
||||
|
||||
}
|
||||
public void findDeposit() {
|
||||
for (int i = 0; i < this.getBlockPos().getY() + 64; i++) {
|
||||
BlockPos checkedPos = new BlockPos(this.getBlockPos().getX(), (this.getBlockPos().getY() - 1) - i, this.getBlockPos().getZ());
|
||||
|
||||
if (level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.OIL_DEPOSIT.get())) {
|
||||
deposit = (FluidDepositBlockEntity) level.getBlockEntity(checkedPos);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.INDUSTRIAL_PIPE.get()))) {
|
||||
deposit = null;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
deposit = null;
|
||||
|
||||
}
|
||||
public void process() {
|
||||
if (deposit == null || deposit.fluidAmount == 0)
|
||||
return;
|
||||
|
||||
if (tankInventory.getFluidAmount() + miningRate > 8000)
|
||||
return;
|
||||
|
||||
deposit.fluidAmount -= miningRate;
|
||||
|
||||
tankInventory.setFluid(new FluidStack(deposit.getDepositFluid(), tankInventory.getFluidAmount() + miningRate));
|
||||
|
||||
}
|
||||
|
||||
public void setControllerHammer(PumpjackBlockEntity controllerHammer) {
|
||||
this.controllerHammer = controllerHammer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
|
||||
}
|
||||
protected SmartFluidTank createInventory() {
|
||||
return new SmartFluidTank(8000, this::onFluidStackChanged) {
|
||||
@Override
|
||||
public boolean isFluidValid(FluidStack stack) {
|
||||
return stack.getFluid().isSame(TFMGFluids.CRUDE_OIL.getSource());
|
||||
}
|
||||
};
|
||||
}
|
||||
protected void onFluidStackChanged(FluidStack newFluidStack) {}
|
||||
@Override
|
||||
@SuppressWarnings("removal")
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
Lang.translate("goggles.pumpjack_info")
|
||||
.forGoggles(tooltip);
|
||||
if (!isComplete()) {
|
||||
Lang.translate("goggles.pumpjack.part_missing")
|
||||
.style(ChatFormatting.DARK_RED)
|
||||
.forGoggles(tooltip);
|
||||
if(isWronglyRotated()){
|
||||
Lang.translate("goggles.pumpjack.wrong_rotation1")
|
||||
.style(ChatFormatting.GOLD)
|
||||
.forGoggles(tooltip);
|
||||
Lang.translate("goggles.pumpjack.wrong_rotation2")
|
||||
.style(ChatFormatting.GOLD)
|
||||
.forGoggles(tooltip);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
|
||||
@@ -98,6 +188,10 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
|
||||
).forGoggles(tooltip, 1);
|
||||
|
||||
|
||||
Lang.translate("pumpjack_deposit_amount", this.miningRate)
|
||||
.style(ChatFormatting.LIGHT_PURPLE)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
} else {
|
||||
|
||||
Lang.translate("goggles.zero")
|
||||
@@ -105,158 +199,66 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
|
||||
.forGoggles(tooltip, 1);
|
||||
}
|
||||
|
||||
//--Fluid Info--//
|
||||
LazyOptional<IFluidHandler> handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY);
|
||||
Optional<IFluidHandler> resolve = handler.resolve();
|
||||
if (!resolve.isPresent())
|
||||
return false;
|
||||
|
||||
IFluidHandler tank = resolve.get();
|
||||
if (tank.getTanks() == 0)
|
||||
return false;
|
||||
|
||||
|
||||
|
||||
|
||||
boolean isEmpty = true;
|
||||
for (int i = 0; i < tank.getTanks(); i++) {
|
||||
FluidStack fluidStack = tank.getFluidInTank(i);
|
||||
if (fluidStack.isEmpty())
|
||||
continue;
|
||||
|
||||
Lang.fluidName(fluidStack)
|
||||
.style(ChatFormatting.GRAY)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
Lang.builder()
|
||||
.add(Lang.number(fluidStack.getAmount())
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_GREEN))
|
||||
.text(ChatFormatting.GRAY, " / ")
|
||||
.add(Lang.number(tank.getTankCapacity(i))
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_GRAY))
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
isEmpty = false;
|
||||
}
|
||||
|
||||
if (tank.getTanks() > 1) {
|
||||
if (isEmpty)
|
||||
tooltip.remove(tooltip.size() - 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!isEmpty)
|
||||
return true;
|
||||
|
||||
Lang.translate("gui.goggles.fluid_container.capacity")
|
||||
.add(Lang.number(tank.getTankCapacity(0))
|
||||
.add(mb)
|
||||
.style(ChatFormatting.DARK_GREEN))
|
||||
.style(ChatFormatting.DARK_GRAY)
|
||||
.forGoggles(tooltip, 1);
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void process() {
|
||||
if (deposit == null || deposit.fluidAmount == 0)
|
||||
return;
|
||||
|
||||
if (tankInventory.getFluidAmount() + miningRate > 1000)
|
||||
return;
|
||||
|
||||
deposit.fluidAmount -= miningRate;
|
||||
tankInventory.setFluid(new FluidStack(deposit.getDepositFluid(), tankInventory.getFluidAmount() + miningRate));
|
||||
}
|
||||
|
||||
public boolean hasPipe() {
|
||||
|
||||
for (int i = -62; i != getBlockPos().getY(); i++) {
|
||||
BlockPos pos = new BlockPos(getBlockPos().getX(), i, getBlockPos().getZ());
|
||||
if (!(level.getBlockState(pos).is(TFMGBlocks.INDUSTRIAL_PIPE.get())))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
public void findDeposit() {
|
||||
for (int i = 0; i < this.getBlockPos().getY() + 64; i++) {
|
||||
debugCounter = this.getBlockPos().getY() - i;
|
||||
BlockPos checkedPos = new BlockPos(this.getBlockPos().getX(), (this.getBlockPos().getY() - 1) - i, this.getBlockPos().getZ());
|
||||
|
||||
if (level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.OIL_DEPOSIT.get())) {
|
||||
deposit = (FluidDepositBlockEntity) level.getBlockEntity(checkedPos);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.INDUSTRIAL_PIPE.get()))) {
|
||||
deposit = null;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
debugCounter = 0;
|
||||
deposit = null;
|
||||
return;
|
||||
|
||||
/*
|
||||
if(!hasPipe()) {
|
||||
deposit = null;
|
||||
return;
|
||||
}
|
||||
|
||||
if(level.getBlockEntity(new BlockPos(getBlockPos().getX(),-63,getBlockPos().getZ())) instanceof FluidDepositTileEntity) {
|
||||
deposit = (FluidDepositTileEntity) (level.getBlockEntity(new BlockPos(getBlockPos().getX(),-64,getBlockPos().getZ())));
|
||||
}else {
|
||||
deposit=null;
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
protected SmartFluidTank createInventory() {
|
||||
return new SmartFluidTank(1000, this::onFluidStackChanged) {
|
||||
@Override
|
||||
public boolean isFluidValid(FluidStack stack) {
|
||||
return stack.getFluid().isSame(TFMGFluids.CRUDE_OIL.getSource());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected void onFluidStackChanged(FluidStack newFluidStack) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
if (!isComplete())
|
||||
return;
|
||||
|
||||
|
||||
MachineInputBlockEntity input = null;
|
||||
if (level.getBlockEntity(crankPos.below()) instanceof MachineInputBlockEntity)
|
||||
input = (MachineInputBlockEntity) level.getBlockEntity(crankPos.below());
|
||||
if (input == null)
|
||||
return;
|
||||
miningRate = input.powerLevel * 12;
|
||||
|
||||
|
||||
depositCheckTimer++;
|
||||
if (depositCheckTimer > 50) {
|
||||
depositCheckTimer = 0;
|
||||
findDeposit();
|
||||
|
||||
}
|
||||
|
||||
|
||||
direction = this.getBlockState().getValue(FACING).getOpposite();
|
||||
|
||||
process();
|
||||
if (syncCooldown > 0) {
|
||||
syncCooldown--;
|
||||
if (syncCooldown == 0 && queuedSync)
|
||||
sendData();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
super.initialize();
|
||||
sendData();
|
||||
if (level.isClientSide)
|
||||
invalidateRenderBoundingBox();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void sendData() {
|
||||
if (syncCooldown > 0) {
|
||||
queuedSync = true;
|
||||
return;
|
||||
}
|
||||
super.sendData();
|
||||
queuedSync = false;
|
||||
syncCooldown = SYNC_RATE;
|
||||
}
|
||||
|
||||
|
||||
private void refreshCapability() {
|
||||
LazyOptional<IFluidHandler> oldCap = fluidCapability;
|
||||
fluidCapability = LazyOptional.of(() -> handlerForCapability());
|
||||
oldCap.invalidate();
|
||||
}
|
||||
|
||||
private IFluidHandler handlerForCapability() {
|
||||
|
||||
return tankInventory;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
super.read(compound, clientPacket);
|
||||
|
||||
tankInventory.setCapacity(1000);
|
||||
|
||||
tankInventory.readFromNBT(compound.getCompound("TankContent"));
|
||||
}
|
||||
|
||||
@@ -269,106 +271,13 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
||||
if (!fluidCapability.isPresent())
|
||||
refreshCapability();
|
||||
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
return fluidCapability.cast();
|
||||
@SuppressWarnings("removal")
|
||||
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, Direction side) {
|
||||
|
||||
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
|
||||
return fluidCapability.cast();
|
||||
return super.getCapability(cap, side);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
|
||||
}
|
||||
|
||||
public IFluidTank getTankInventory() {
|
||||
return tankInventory;
|
||||
}
|
||||
|
||||
public boolean isComplete() {
|
||||
BlockPos hammerPos = this.getBlockPos();
|
||||
crankPos = this.getBlockPos();
|
||||
if (direction == Direction.WEST) {
|
||||
hammerPos = new BlockPos(this.getBlockPos().west(2).above(2));
|
||||
crankPos = new BlockPos(this.getBlockPos().west(4).above(1));
|
||||
}
|
||||
if (direction == Direction.EAST) {
|
||||
hammerPos = new BlockPos(this.getBlockPos().east(2).above(2));
|
||||
crankPos = new BlockPos(this.getBlockPos().east(4).above(1));
|
||||
}
|
||||
if (direction == Direction.NORTH) {
|
||||
hammerPos = new BlockPos(this.getBlockPos().north(2).above(2));
|
||||
crankPos = new BlockPos(this.getBlockPos().north(4).above(1));
|
||||
}
|
||||
if (direction == Direction.SOUTH) {
|
||||
hammerPos = new BlockPos(this.getBlockPos().south(2).above(2));
|
||||
crankPos = new BlockPos(this.getBlockPos().south(4).above(1));
|
||||
}
|
||||
|
||||
|
||||
if (!(level.getBlockEntity(hammerPos) instanceof PumpjackHammerHolderBlockEntity &&
|
||||
level.getBlockEntity(crankPos) instanceof PumpjackCrankBlockEntity)) {
|
||||
return false;
|
||||
}
|
||||
//MachineInputTileEntity input = (MachineInputTileEntity) level.getBlockEntity(crankPos.below());
|
||||
// if(input.powerLevel==0)
|
||||
// return false;
|
||||
|
||||
|
||||
if (level.getBlockEntity(hammerPos).getBlockState().getValue(FACING).getOpposite() == direction
|
||||
&& level.getBlockEntity(crankPos).getBlockState().getValue(FACING).getOpposite() == direction
|
||||
)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
public boolean isWronglyRotated() {
|
||||
if (isComplete())
|
||||
return false;
|
||||
|
||||
|
||||
BlockPos hammerPos1 = this.getBlockPos();
|
||||
BlockPos hammerPos2 = this.getBlockPos();
|
||||
BlockPos hammerPos3 = this.getBlockPos();
|
||||
crankPos = this.getBlockPos();
|
||||
if (direction == Direction.WEST) {
|
||||
hammerPos1 = new BlockPos(this.getBlockPos().east(2).above(2));
|
||||
hammerPos2 = new BlockPos(this.getBlockPos().north(2).above(2));
|
||||
hammerPos3 = new BlockPos(this.getBlockPos().south(2).above(2));
|
||||
}
|
||||
if (direction == Direction.EAST) {
|
||||
hammerPos1 = new BlockPos(this.getBlockPos().west(2).above(2));
|
||||
hammerPos2 = new BlockPos(this.getBlockPos().north(2).above(2));
|
||||
hammerPos3 = new BlockPos(this.getBlockPos().south(2).above(2));
|
||||
}
|
||||
if (direction == Direction.NORTH) {
|
||||
hammerPos1 = new BlockPos(this.getBlockPos().south(2).above(2));
|
||||
hammerPos2 = new BlockPos(this.getBlockPos().west(2).above(2));
|
||||
hammerPos3 = new BlockPos(this.getBlockPos().east(2).above(2));
|
||||
}
|
||||
if (direction == Direction.SOUTH) {
|
||||
hammerPos1 = new BlockPos(this.getBlockPos().north(2).above(2));
|
||||
hammerPos2 = new BlockPos(this.getBlockPos().east(2).above(2));
|
||||
hammerPos3 = new BlockPos(this.getBlockPos().west(2).above(2));
|
||||
}
|
||||
|
||||
|
||||
BlockState hammer1 = level.getBlockState(hammerPos1);
|
||||
BlockState hammer2 = level.getBlockState(hammerPos2);
|
||||
BlockState hammer3 = level.getBlockState(hammerPos3);
|
||||
|
||||
|
||||
return hammer1.is(TFMGBlocks.PUMPJACK_HAMMER_HOLDER.get())||
|
||||
hammer2.is(TFMGBlocks.PUMPJACK_HAMMER_HOLDER.get())||
|
||||
hammer3.is(TFMGBlocks.PUMPJACK_HAMMER_HOLDER.get());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGPartialModels;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class PumpjackBaseRenderer extends SafeBlockEntityRenderer<PumpjackBaseBlockEntity> {
|
||||
|
||||
public PumpjackBaseRenderer(BlockEntityRendererProvider.Context context) {}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(PumpjackBaseBlockEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
BlockState blockState = te.getBlockState();
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
ms.pushPose();
|
||||
TransformStack msr = TransformStack.cast(ms);
|
||||
msr.translate(1 / 2f, 0.5, 1 / 2f);
|
||||
float dialPivot = 5.75f / 16;
|
||||
if(te.isComplete()) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_FRONT_ROPE, blockState)
|
||||
// .rotateY(d.toYRot())
|
||||
.unCentre()
|
||||
.translateY(1)
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ms.popPose();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderOffScreen(PumpjackBaseBlockEntity te) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,23 +1,22 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.RenderShape;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class PumpjackCrankBlock extends HorizontalDirectionalBlock implements IBE<PumpjackCrankBlockEntity>, IWrenchable {
|
||||
public class PumpjackCrankBlock extends HorizontalDirectionalBlock implements IBE<PumpjackCrankBlockEntity> {
|
||||
public PumpjackCrankBlock(Properties p_54120_) {
|
||||
super(p_54120_);
|
||||
}
|
||||
@@ -26,23 +25,22 @@ public class PumpjackCrankBlock extends HorizontalDirectionalBlock implements IB
|
||||
return this.defaultBlockState().setValue(FACING, p_54779_.getHorizontalDirection());
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, BlockGetter p_220053_2_, BlockPos p_220053_3_,
|
||||
CollisionContext p_220053_4_) {
|
||||
return TFMGShapes.PUMPJACK_CRANK;
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return AllShapes.CASING_14PX.get(Direction.UP);
|
||||
}
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder);
|
||||
builder.add(FACING);
|
||||
}
|
||||
@Override
|
||||
public Class<PumpjackCrankBlockEntity> getBlockEntityClass() {
|
||||
return PumpjackCrankBlockEntity.class;
|
||||
}
|
||||
@Override
|
||||
public RenderShape getRenderShape(BlockState pState) {
|
||||
return RenderShape.MODEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends PumpjackCrankBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.PUMPJACK_CRANK.get();
|
||||
}
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_54794_) {
|
||||
p_54794_.add(FACING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,122 +1,101 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity;
|
||||
import com.drmangotea.createindustry.CreateTFMG;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.ServerSpeedProvider;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
|
||||
public class PumpjackCrankBlockEntity extends KineticBlockEntity {
|
||||
float targetSpeed;
|
||||
|
||||
|
||||
public float angle=0;
|
||||
|
||||
public Direction direction;
|
||||
public BlockPos hammerPos;
|
||||
public float heightModifier=0;
|
||||
|
||||
protected float clientAngleDiff;
|
||||
|
||||
|
||||
public float crankRadius = 0.7f;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public PumpjackCrankBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
angle=177;
|
||||
if(direction==Direction.NORTH)
|
||||
hammerPos =this.getBlockPos().north(2).above();
|
||||
if(direction==Direction.SOUTH)
|
||||
hammerPos =this.getBlockPos().south(2).above();
|
||||
if(direction==Direction.WEST)
|
||||
hammerPos =this.getBlockPos().west(2).above();
|
||||
if(direction==Direction.EAST)
|
||||
hammerPos =this.getBlockPos().east(2).above();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
super.write(compound, clientPacket);
|
||||
if (clientPacket) {
|
||||
compound.putFloat("Angle", angle);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
super.read(compound, clientPacket);
|
||||
if (clientPacket) {
|
||||
|
||||
angle = compound.getFloat("Angle");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public void tick(){
|
||||
super.tick();
|
||||
|
||||
|
||||
direction = this.getBlockState().getValue(FACING);
|
||||
|
||||
if (!level.isClientSide)
|
||||
return;
|
||||
setAngle();
|
||||
|
||||
|
||||
if(direction==Direction.NORTH)
|
||||
hammerPos =this.getBlockPos().north(2).above();
|
||||
if(direction==Direction.SOUTH)
|
||||
hammerPos =this.getBlockPos().south(2).above();
|
||||
if(direction==Direction.WEST)
|
||||
hammerPos =this.getBlockPos().west(2).above();
|
||||
if(direction==Direction.EAST)
|
||||
hammerPos =this.getBlockPos().east(2).above();
|
||||
|
||||
heightModifier = (float) (crankRadius * Math.sin(Math.toRadians(angle)));
|
||||
|
||||
|
||||
if(!isValid()) {
|
||||
angle = 177;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public float getMachineInputSpeed(){
|
||||
|
||||
if(level.getBlockEntity(getBlockPos().below()) instanceof MachineInputBlockEntity)
|
||||
return ((MachineInputBlockEntity)level.getBlockEntity(getBlockPos().below())).getSpeed();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
private void setAngle() {
|
||||
|
||||
if(level.getBlockEntity(getBlockPos().below()) instanceof MachineInputBlockEntity) {
|
||||
float time;
|
||||
if(level.isClientSide) {
|
||||
time = AnimationTickHolder.getRenderTime(getLevel());
|
||||
}else time = level.getBlockTicks().hashCode();
|
||||
float speed_amogus = Math.min(getMachineInputSpeed() /6 , (float) 10);
|
||||
|
||||
|
||||
|
||||
if(speed_amogus!=0) {
|
||||
angle = (time * speed_amogus * 3 / 10f) % 360;
|
||||
angle = angle / 180f * (float) Math.PI;
|
||||
angle = (float) Math.toDegrees(angle);
|
||||
}
|
||||
else angle = 180;
|
||||
}
|
||||
|
||||
if(level.getBlockEntity(this.getBlockPos().below())instanceof MachineInputBlockEntity) {
|
||||
if(((MachineInputBlockEntity)level.getBlockEntity(this.getBlockPos().below())).powerLevel!=0) {
|
||||
angle += 3;
|
||||
}else angle=177;
|
||||
}else
|
||||
angle=177;
|
||||
|
||||
|
||||
|
||||
targetSpeed= 10;
|
||||
|
||||
|
||||
|
||||
angle%=360;
|
||||
|
||||
}
|
||||
|
||||
public boolean isValid(){
|
||||
if(hammerPos==null)
|
||||
return false;
|
||||
|
||||
if(!(level.getBlockEntity(hammerPos) instanceof PumpjackHammerHolderBlockEntity))
|
||||
return false;
|
||||
if(!(direction==level.getBlockEntity(hammerPos).getBlockState().getValue(FACING)))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
/*
|
||||
private void moveConnectionPos() {
|
||||
connectionPos = new BlockPos(this.getBlockPos().getX()+0.5f,this.getBlockPos().getY()+0.25f,this.getBlockPos().getZ()+0.5f);
|
||||
|
||||
float y=0.8f;
|
||||
float x=0.8f;
|
||||
// connectionPos.
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
|
||||
|
||||
// @Override
|
||||
// public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
//
|
||||
// Lang.translate("goggles.coke_oven.progress", angle)
|
||||
// .add(Lang.translate("goggles.misc.percent_symbol"))
|
||||
// .style(ChatFormatting.DARK_PURPLE)
|
||||
// .forGoggles(tooltip,1);
|
||||
// return true;
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank;
|
||||
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import net.minecraft.core.Direction;
|
||||
|
||||
|
||||
public class PumpjackCrankInstance extends KineticBlockEntityInstance<PumpjackCrankBlockEntity> implements DynamicInstance {
|
||||
|
||||
|
||||
protected final ModelData hammer;
|
||||
protected float lastAngle = Float.NaN;
|
||||
static float originOffset = 1 / 16f;
|
||||
|
||||
public PumpjackCrankInstance(MaterialManager modelManager, PumpjackCrankBlockEntity tile) {
|
||||
super(modelManager, tile);
|
||||
|
||||
|
||||
hammer = getTransformMaterial().getModel(blockState)
|
||||
.createInstance();
|
||||
|
||||
animate(tile.angle);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginFrame() {
|
||||
|
||||
|
||||
|
||||
float angle = blockEntity.angle;
|
||||
|
||||
|
||||
animate(angle);
|
||||
|
||||
lastAngle = angle;
|
||||
}
|
||||
|
||||
private void animate(float angle) {
|
||||
PoseStack ms = new PoseStack();
|
||||
TransformStack msr = TransformStack.cast(ms);
|
||||
|
||||
msr.translate(getInstancePosition());
|
||||
|
||||
|
||||
|
||||
// msr.centre()
|
||||
// .rotateCentered(Direction.EAST, AngleHelper.rad(angle))
|
||||
// .unCentre();
|
||||
if(blockEntity.direction==Direction.EAST) {
|
||||
msr.translateY(-0.5);
|
||||
msr
|
||||
.centre()
|
||||
.translate(0, .25, 0)
|
||||
.rotate(Direction.SOUTH, AngleHelper.rad(angle))
|
||||
.translateBack(0, -.25, 0)
|
||||
.unCentre();
|
||||
}
|
||||
if(blockEntity.direction==Direction.WEST) {
|
||||
msr.translateY(-0.5);
|
||||
msr
|
||||
.centre()
|
||||
.translate(0, .25, 0)
|
||||
.rotate(Direction.NORTH, AngleHelper.rad(angle))
|
||||
.translateBack(0, -.25, 0)
|
||||
.unCentre();
|
||||
}
|
||||
if(blockEntity.direction==Direction.NORTH) {
|
||||
msr.translateY(-0.5);
|
||||
msr
|
||||
.centre()
|
||||
.translate(0, .25, 0)
|
||||
.rotate(Direction.EAST, AngleHelper.rad(angle))
|
||||
.translateBack(0, -.25, 0)
|
||||
.unCentre();
|
||||
}
|
||||
if(blockEntity.direction==Direction.SOUTH) {
|
||||
msr.translateY(-0.5);
|
||||
msr
|
||||
.centre()
|
||||
.translate(0, .25, 0)
|
||||
.rotate(Direction.WEST, AngleHelper.rad(angle))
|
||||
.translateBack(0, -.25, 0)
|
||||
.unCentre();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
hammer.setTransform(ms);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void updateLight() {
|
||||
relight(pos, hammer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
hammer.delete();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,8 +2,8 @@ package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.cr
|
||||
|
||||
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGPartialModels;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
@@ -11,11 +11,9 @@ import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
@@ -35,15 +33,13 @@ public class PumpjackCrankRenderer extends KineticBlockEntityRenderer {
|
||||
|
||||
|
||||
|
||||
// if (Backend.canUseInstancing(te.getLevel()))
|
||||
// return;
|
||||
|
||||
BlockState blockState = te.getBlockState();
|
||||
PumpjackCrankBlockEntity wte = (PumpjackCrankBlockEntity) te;
|
||||
PumpjackCrankBlockEntity be = (PumpjackCrankBlockEntity) te;
|
||||
|
||||
|
||||
|
||||
float angle = wte.angle * partialTicks;
|
||||
float angle = be.angle * partialTicks;
|
||||
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
|
||||
@@ -54,9 +50,9 @@ public class PumpjackCrankRenderer extends KineticBlockEntityRenderer {
|
||||
VertexConsumer vb) {
|
||||
|
||||
|
||||
SuperByteBuffer hammer = CachedBufferer.block(blockState);
|
||||
//kineticRotationTransform(hammer, te, getRotationAxisOf(te), AngleHelper.rad(angle), light);
|
||||
hammer.renderInto(ms, vb);
|
||||
//SuperByteBuffer hammer = CachedBufferer.block(blockState);
|
||||
////kineticRotationTransform(hammer, te, getRotationAxisOf(te), AngleHelper.rad(angle), light);
|
||||
//hammer.renderInto(ms, vb);
|
||||
}
|
||||
private void renderBlock(PumpjackCrankBlockEntity be, PoseStack ms, int light,
|
||||
MultiBufferSource buffer) {
|
||||
@@ -70,18 +66,17 @@ public class PumpjackCrankRenderer extends KineticBlockEntityRenderer {
|
||||
float dialPivot = 5.75f / 16;
|
||||
|
||||
SuperByteBuffer crank = CachedBufferer.partialFacing(TFMGPartialModels.PUMPJACK_CRANK, blockState,blockState.getValue(FACING));
|
||||
CachedBufferer.partialFacing(TFMGPartialModels.PUMPJACK_CRANK_BLOCK, blockState,blockState.getValue(FACING))
|
||||
.translate(-0.5, -0.5, -0.5)
|
||||
.light(light)
|
||||
.renderInto(ms,vb);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
crank
|
||||
.translate(-0.5, -0.5, -0.5)
|
||||
.centre()
|
||||
.translate(0, -.25, 0)
|
||||
.rotate(be.getBlockState().getValue(FACING).getCounterClockWise(), -AngleHelper.rad(be.angle))
|
||||
.translate(0, .25, 0)
|
||||
// .translate(0, -.25, 0)
|
||||
.rotate(be.angle-90,be.getBlockState().getValue(FACING).getCounterClockWise().getAxis())
|
||||
//.translate(0, .25, 0)
|
||||
.unCentre()
|
||||
|
||||
.light(light);
|
||||
@@ -89,87 +84,6 @@ public class PumpjackCrankRenderer extends KineticBlockEntityRenderer {
|
||||
crank.renderInto(ms,vb);
|
||||
|
||||
|
||||
|
||||
if (be.direction == Direction.NORTH){
|
||||
|
||||
|
||||
if(be.isValid()) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
|
||||
|
||||
.translate(-0.5, -0.75, -0.5)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, -AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.translateY(0.4)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.translateY(0.4)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
}
|
||||
if(be.direction == Direction.EAST) {
|
||||
|
||||
if(be.isValid()) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
|
||||
.rotateY(270)
|
||||
.translate(-0.5, -0.75, -0.5)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, -AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.translateY(0.4)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.translateY(0.4)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
}
|
||||
if(be.direction == Direction.SOUTH) {
|
||||
|
||||
|
||||
if(be.isValid()) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
|
||||
.rotateY(180)
|
||||
.translate(-0.5, -0.75, -0.5)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, -AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.translateY(0.4)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.translateY(0.4)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
}
|
||||
if(be.direction == Direction.WEST) {
|
||||
|
||||
if(be.isValid()) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
|
||||
.rotateY(90)
|
||||
.translate(-0.5, -0.75, -0.5)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, -AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.translateY(0.4)
|
||||
.centre()
|
||||
.rotate(Direction.WEST, AngleHelper.rad(be.angle))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.translateY(0.4)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer;
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.createindustry.registry.TFMGBlocks;
|
||||
import com.simibubi.create.content.contraptions.bearing.BearingBlock;
|
||||
import com.simibubi.create.content.kinetics.base.IRotate;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
|
||||
public class PumpjackBlock extends BearingBlock implements IBE<PumpjackBlockEntity> {
|
||||
|
||||
|
||||
public static final BooleanProperty WIDE = BooleanProperty.create("wide");
|
||||
|
||||
public PumpjackBlock(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
builder.add(WIDE);
|
||||
super.createBlockStateDefinition(builder);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public InteractionResult use(BlockState state, Level worldIn, BlockPos pos, Player player, InteractionHand handIn,
|
||||
BlockHitResult hit) {
|
||||
if (!player.mayBuild())
|
||||
return InteractionResult.FAIL;
|
||||
|
||||
if (player.isShiftKeyDown())
|
||||
return InteractionResult.FAIL;
|
||||
|
||||
if (player.getItemInHand(handIn)
|
||||
.isEmpty()) {
|
||||
if (worldIn.isClientSide)
|
||||
return InteractionResult.SUCCESS;
|
||||
withBlockEntityDo(worldIn, pos, be -> {
|
||||
if (be.running) {
|
||||
//be.disassemble();
|
||||
return;
|
||||
}
|
||||
|
||||
//if(be.crank==null||be.base == null)
|
||||
// return;
|
||||
|
||||
|
||||
});
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
return InteractionResult.PASS;
|
||||
}
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
|
||||
boolean wide = context.getLevel().getBlockState(context.getClickedPos().above()).is(TFMGBlocks.LARGE_PUMPJACK_HAMMER_PART.get());
|
||||
|
||||
Direction preferredDirection = getPreferredHorizontalFacing(context);
|
||||
if (preferredDirection != null)
|
||||
return this.defaultBlockState().setValue(FACING, preferredDirection).setValue(WIDE,wide);
|
||||
return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection()).setValue(WIDE,wide);
|
||||
}
|
||||
|
||||
public static Direction getPreferredHorizontalFacing(BlockPlaceContext context) {
|
||||
Direction prefferedSide = null;
|
||||
for (Direction side : Iterate.horizontalDirections) {
|
||||
BlockState blockState = context.getLevel().getBlockState(context.getClickedPos().relative(side));
|
||||
if (blockState.getBlock() instanceof IRotate) {
|
||||
if (((IRotate) blockState.getBlock()).hasShaftTowards(context.getLevel(), context.getClickedPos().relative(side),
|
||||
blockState, side.getOpposite()))
|
||||
if (prefferedSide != null && prefferedSide.getAxis() != side.getAxis()) {
|
||||
prefferedSide = null;
|
||||
break;
|
||||
} else {
|
||||
prefferedSide = side;
|
||||
}
|
||||
}
|
||||
}
|
||||
return prefferedSide == null ? null : prefferedSide;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<PumpjackBlockEntity> getBlockEntityClass() {
|
||||
return PumpjackBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends PumpjackBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.PUMPJACK_HAMMER.get();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,720 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerConnectorBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerHeadBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerPartBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerConnectorBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerHeadBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerPartBlock;
|
||||
import com.drmangotea.createindustry.registry.TFMGBlocks;
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
import com.simibubi.create.content.contraptions.AbstractContraptionEntity;
|
||||
import com.simibubi.create.content.contraptions.AssemblyException;
|
||||
import com.simibubi.create.content.contraptions.ControlledContraptionEntity;
|
||||
import com.simibubi.create.content.contraptions.IDisplayAssemblyExceptions;
|
||||
import com.simibubi.create.content.contraptions.bearing.BearingBlock;
|
||||
import com.simibubi.create.content.contraptions.bearing.IBearingBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.transmission.sequencer.SequencerInstructions;
|
||||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollOptionBehaviour;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.ServerSpeedProvider;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
import static com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlock.WIDE;
|
||||
import static net.minecraft.world.level.block.DirectionalBlock.FACING;
|
||||
|
||||
public class PumpjackBlockEntity extends GeneratingKineticBlockEntity
|
||||
implements IBearingBlockEntity, IDisplayAssemblyExceptions {
|
||||
|
||||
protected ScrollOptionBehaviour<RotationMode> movementMode;
|
||||
protected ControlledContraptionEntity movedContraption;
|
||||
protected float angle;
|
||||
protected boolean running;
|
||||
protected boolean assembleNextTick;
|
||||
protected float clientAngleDiff;
|
||||
protected AssemblyException lastException;
|
||||
protected double sequencedAngleLimit;
|
||||
|
||||
private float prevAngle;
|
||||
|
||||
public BlockPos headPosition=null;
|
||||
public BlockPos connectorPosition =null;
|
||||
|
||||
public PumpjackCrankBlockEntity crank=null;
|
||||
|
||||
public PumpjackBaseBlockEntity base=null;
|
||||
|
||||
public int connectorDistance = 0;
|
||||
|
||||
public int headDistance = 0;
|
||||
|
||||
public boolean connectorAtFront = false;
|
||||
|
||||
public boolean headAtFront = false;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public int crankConnectorDistance = 0;
|
||||
|
||||
public int headBaseDistance = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
public PumpjackBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
setLazyTickRate(3);
|
||||
sequencedAngleLimit = -1;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWoodenTop() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean syncSequenceContext() {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected AABB createRenderBoundingBox() {
|
||||
return super.createRenderBoundingBox().inflate(7);
|
||||
}
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
super.addBehaviours(behaviours);
|
||||
|
||||
registerAwardables(behaviours, AllAdvancements.CONTRAPTION_ACTORS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
if (!level.isClientSide)
|
||||
disassemble();
|
||||
super.remove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
|
||||
if(connectorPosition!=null) {
|
||||
compound.putInt("connectorX", connectorPosition.getX());
|
||||
compound.putInt("connectorY", connectorPosition.getY());
|
||||
compound.putInt("connectorZ", connectorPosition.getZ());
|
||||
}
|
||||
//
|
||||
if(headPosition!=null) {
|
||||
compound.putInt("headX", headPosition.getX());
|
||||
compound.putInt("headY", headPosition.getY());
|
||||
compound.putInt("headZ", headPosition.getZ());
|
||||
}
|
||||
|
||||
|
||||
compound.putBoolean("connectorAtFront", connectorAtFront);
|
||||
compound.putBoolean("headAtFront", headAtFront);
|
||||
|
||||
compound.putBoolean("Running", running);
|
||||
compound.putFloat("Angle", angle);
|
||||
if (sequencedAngleLimit >= 0)
|
||||
compound.putDouble("SequencedAngleLimit", sequencedAngleLimit);
|
||||
AssemblyException.write(compound, lastException);
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
if (wasMoved) {
|
||||
super.read(compound, clientPacket);
|
||||
return;
|
||||
}
|
||||
|
||||
connectorPosition = new BlockPos(
|
||||
compound.getInt("connectorX"),
|
||||
compound.getInt("connectorY"),
|
||||
compound.getInt("connectorZ")
|
||||
);
|
||||
headPosition = new BlockPos(
|
||||
compound.getInt("headX"),
|
||||
compound.getInt("headY"),
|
||||
compound.getInt("headZ")
|
||||
);
|
||||
|
||||
connectorAtFront = compound.getBoolean("connectorAtFront");
|
||||
headAtFront = compound.getBoolean("headAtFront");
|
||||
|
||||
float angleBefore = angle;
|
||||
running = compound.getBoolean("Running");
|
||||
angle = compound.getFloat("Angle");
|
||||
sequencedAngleLimit = compound.contains("SequencedAngleLimit") ? compound.getDouble("SequencedAngleLimit") : -1;
|
||||
lastException = AssemblyException.read(compound);
|
||||
super.read(compound, clientPacket);
|
||||
if (!clientPacket)
|
||||
return;
|
||||
if (running) {
|
||||
if (movedContraption == null || !movedContraption.isStalled()) {
|
||||
clientAngleDiff = AngleHelper.getShortestAngleDiff(angleBefore, angle);
|
||||
angle = angleBefore;
|
||||
}
|
||||
} else
|
||||
movedContraption = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getInterpolatedAngle(float partialTicks) {
|
||||
if (isVirtual())
|
||||
return Mth.lerp(partialTicks + .5f, prevAngle, angle);
|
||||
if (movedContraption == null || movedContraption.isStalled() || !running)
|
||||
partialTicks = 0;
|
||||
float angularSpeed = getAngularSpeed();
|
||||
if (sequencedAngleLimit >= 0)
|
||||
angularSpeed = (float) Mth.clamp(angularSpeed, -sequencedAngleLimit, sequencedAngleLimit);
|
||||
return Mth.lerp(partialTicks, angle, angle + angularSpeed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSpeedChanged(float prevSpeed) {
|
||||
super.onSpeedChanged(prevSpeed);
|
||||
assembleNextTick = true;
|
||||
sequencedAngleLimit = -1;
|
||||
|
||||
if (movedContraption != null && Math.signum(prevSpeed) != Math.signum(getSpeed()) && prevSpeed != 0) {
|
||||
if (!movedContraption.isStalled()) {
|
||||
angle = Math.round(angle);
|
||||
applyRotation();
|
||||
}
|
||||
movedContraption.getContraption()
|
||||
.stop(level);
|
||||
}
|
||||
|
||||
if (sequenceContext != null
|
||||
&& sequenceContext.instruction() == SequencerInstructions.TURN_ANGLE)
|
||||
sequencedAngleLimit = sequenceContext.getEffectiveValue(getTheoreticalSpeed());
|
||||
}
|
||||
|
||||
public float getAngularSpeed() {
|
||||
float speed = convertToAngular(getSpeed());
|
||||
|
||||
|
||||
if (getSpeed() == 0)
|
||||
speed = 0;
|
||||
if (level.isClientSide) {
|
||||
speed *= ServerSpeedProvider.get();
|
||||
speed += clientAngleDiff / 3f;
|
||||
}
|
||||
return speed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AssemblyException getLastAssemblyException() {
|
||||
return lastException;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public BlockPos getBlockPosition() {
|
||||
return worldPosition;
|
||||
}
|
||||
|
||||
public void assemble() {
|
||||
|
||||
|
||||
if (!(level.getBlockState(worldPosition)
|
||||
.getBlock() instanceof BearingBlock))
|
||||
return;
|
||||
|
||||
Direction direction = getBlockState().getValue(BearingBlock.FACING);
|
||||
PumpjackContraption contraption = new PumpjackContraption(direction);
|
||||
|
||||
|
||||
try {
|
||||
|
||||
if (!contraption.assemble(level, worldPosition))
|
||||
return;
|
||||
|
||||
if(connectorPosition==null||headPosition == null)
|
||||
return;
|
||||
|
||||
lastException = null;
|
||||
} catch (AssemblyException e) {
|
||||
lastException = e;
|
||||
sendData();
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int q = 1;
|
||||
|
||||
if(direction.getAxis()== Direction.Axis.X)
|
||||
q = -1;
|
||||
|
||||
boolean canAssemble = true;
|
||||
boolean foundHead= false;
|
||||
boolean foundConnector= false;
|
||||
|
||||
BlockPos headLocalPos = headPosition.subtract(getBlockPos().above());
|
||||
|
||||
for (StructureTemplate.StructureBlockInfo block : contraption.getBlocks().values()) {
|
||||
if(block.state.getBlock() instanceof PumpjackHammerHeadBlock||block.state.getBlock() instanceof LargePumpjackHammerHeadBlock) {
|
||||
foundHead = true;
|
||||
if (block.pos.getX() != headLocalPos.getX() ||
|
||||
block.pos.getY() != q*headLocalPos.getY() ||
|
||||
block.pos.getZ() != q*headLocalPos.getZ())
|
||||
canAssemble = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
BlockPos connectorLocalPos = connectorPosition.subtract(getBlockPos().above());
|
||||
|
||||
for (StructureTemplate.StructureBlockInfo block : contraption.getBlocks().values()) {
|
||||
if(block.state.getBlock() instanceof PumpjackHammerConnectorBlock||block.state.getBlock() instanceof LargePumpjackHammerConnectorBlock) {
|
||||
foundConnector = true;
|
||||
if (block.pos.getX() !=connectorLocalPos.getX() ||
|
||||
block.pos.getY() != q*connectorLocalPos.getY() ||
|
||||
block.pos.getZ() != q*connectorLocalPos.getZ())
|
||||
canAssemble = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(!canAssemble||!foundHead||!foundConnector)
|
||||
return;
|
||||
|
||||
|
||||
if(base.controllerHammer!=this&&base.controllerHammer!=null)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
contraption.removeBlocksFromWorld(level, BlockPos.ZERO);
|
||||
movedContraption = ControlledContraptionEntity.create(level, this, contraption);
|
||||
BlockPos anchor = worldPosition.above();
|
||||
movedContraption.setPos(anchor.getX(), anchor.getY(), anchor.getZ());
|
||||
movedContraption.setRotationAxis(direction.getClockWise().getAxis());
|
||||
level.addFreshEntity(movedContraption);
|
||||
|
||||
AllSoundEvents.MECHANICAL_PRESS_ACTIVATION.playOnServer(level, worldPosition);
|
||||
|
||||
if (contraption.containsBlockBreakers())
|
||||
award(AllAdvancements.CONTRAPTION_ACTORS);
|
||||
|
||||
|
||||
|
||||
running = true;
|
||||
angle = 0;
|
||||
sendData();
|
||||
updateGeneratedRotation();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private boolean findHeadAndConnector() {
|
||||
|
||||
|
||||
|
||||
|
||||
Direction direction = getBlockState().getValue(FACING);
|
||||
|
||||
BlockPos checkedPos = this.getBlockPos().above();
|
||||
|
||||
|
||||
|
||||
|
||||
connectorPosition = null;
|
||||
headPosition = null;
|
||||
|
||||
for(int i =0;i<7;i++){
|
||||
|
||||
if(connectorPosition!=null&&headPosition!=null
|
||||
//&&
|
||||
//level.getBlockState(headPosition).getBlock() instanceof PumpjackHammerHeadBlock&&
|
||||
//level.getBlockState(connectorPosition).getBlock() instanceof PumpjackHammerConnectorBlock
|
||||
) {
|
||||
sendData();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
if(i!=0)
|
||||
if(level.getBlockState(checkedPos).getBlock() instanceof PumpjackHammerHeadBlock||(level.getBlockState(checkedPos).getBlock() instanceof LargePumpjackHammerHeadBlock)){
|
||||
headPosition = checkedPos;
|
||||
headAtFront = true;
|
||||
checkedPos = checkedPos.relative(direction);
|
||||
sendData();
|
||||
continue;
|
||||
}
|
||||
|
||||
if(i!=0)
|
||||
if(level.getBlockState(checkedPos).getBlock() instanceof PumpjackHammerConnectorBlock||level.getBlockState(checkedPos).getBlock() instanceof LargePumpjackHammerConnectorBlock){
|
||||
if(level.getBlockState(checkedPos).getValue(HorizontalDirectionalBlock.FACING).getAxis()==this.getBlockState().getValue(FACING).getAxis()) {
|
||||
|
||||
connectorPosition = checkedPos;
|
||||
connectorAtFront = true;
|
||||
checkedPos = checkedPos.relative(direction);
|
||||
|
||||
sendData();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(!(level.getBlockState(checkedPos).getBlock() instanceof PumpjackHammerPartBlock)&&!(level.getBlockState(checkedPos).getBlock() instanceof LargePumpjackHammerPartBlock)) {
|
||||
|
||||
break;
|
||||
}else {
|
||||
if(level.getBlockState(checkedPos).getValue(HorizontalDirectionalBlock.FACING).getAxis()!=this.getBlockState().getValue(FACING).getAxis()) {
|
||||
|
||||
break;
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
checkedPos = checkedPos.relative(direction);
|
||||
|
||||
|
||||
}
|
||||
|
||||
checkedPos = this.getBlockPos().above();
|
||||
|
||||
|
||||
for(int i =0;i<7;i++){
|
||||
|
||||
|
||||
|
||||
if(connectorPosition!=null&&headPosition!=null) {
|
||||
sendData();
|
||||
return true;
|
||||
}
|
||||
if(i!=0)
|
||||
if(level.getBlockState(checkedPos).getBlock() instanceof PumpjackHammerHeadBlock||(level.getBlockState(checkedPos).getBlock() instanceof LargePumpjackHammerHeadBlock)){
|
||||
headPosition = checkedPos;
|
||||
headAtFront = false;
|
||||
checkedPos = checkedPos.relative(direction.getOpposite());
|
||||
|
||||
sendData();
|
||||
continue;
|
||||
}
|
||||
|
||||
if(i!=0)
|
||||
if(level.getBlockState(checkedPos).getBlock() instanceof PumpjackHammerConnectorBlock||level.getBlockState(checkedPos).getBlock() instanceof LargePumpjackHammerConnectorBlock){
|
||||
if(level.getBlockState(checkedPos).getValue(HorizontalDirectionalBlock.FACING).getAxis()==this.getBlockState().getValue(FACING).getAxis()) {
|
||||
connectorPosition = checkedPos;
|
||||
connectorAtFront = false;
|
||||
checkedPos = checkedPos.relative(direction.getOpposite());
|
||||
|
||||
sendData();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(!(level.getBlockState(checkedPos).getBlock() instanceof PumpjackHammerPartBlock)&&!(level.getBlockState(checkedPos).getBlock() instanceof LargePumpjackHammerPartBlock)) {
|
||||
|
||||
break;
|
||||
}else {
|
||||
if(level.getBlockState(checkedPos).getValue(HorizontalDirectionalBlock.FACING).getAxis()!=this.getBlockState().getValue(FACING).getAxis()) {
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
checkedPos = checkedPos.relative(direction.getOpposite());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
sendData();
|
||||
return false;
|
||||
}
|
||||
|
||||
public void disassemble() {
|
||||
if (!running && movedContraption == null)
|
||||
return;
|
||||
|
||||
connectorDistance=0;
|
||||
|
||||
headDistance =0;
|
||||
|
||||
//headPosition=null;
|
||||
//connectorPosition =null;
|
||||
|
||||
angle = 0;
|
||||
sequencedAngleLimit = -1;
|
||||
|
||||
if (movedContraption != null) {
|
||||
movedContraption.disassemble();
|
||||
AllSoundEvents.MECHANICAL_PRESS_ACTIVATION.playOnServer(level, worldPosition);
|
||||
}
|
||||
|
||||
movedContraption = null;
|
||||
running = false;
|
||||
updateGeneratedRotation();
|
||||
assembleNextTick = false;
|
||||
sendData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
|
||||
|
||||
if(!isRunning())
|
||||
findHeadAndConnector();
|
||||
|
||||
if(!isRunning()&&base !=null&&crank!=null
|
||||
&&!level.isClientSide
|
||||
) {
|
||||
assemble();
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(base!=null)
|
||||
if(base.controllerHammer==null){
|
||||
if(isRunning())
|
||||
base.setControllerHammer(this);
|
||||
}
|
||||
|
||||
if(base == null||crank == null)
|
||||
if (!level.isClientSide)
|
||||
disassemble();
|
||||
|
||||
|
||||
if(level.getBlockState(getBlockPos().above()).is(TFMGBlocks.LARGE_PUMPJACK_HAMMER_PART.get())&& !getBlockState().getValue(WIDE))
|
||||
level.setBlock(getBlockPos(),getBlockState().setValue(WIDE,true),2);
|
||||
|
||||
if(!isRunning())
|
||||
if(!level.getBlockState(getBlockPos().above()).is(TFMGBlocks.LARGE_PUMPJACK_HAMMER_PART.get())&& getBlockState().getValue(WIDE))
|
||||
level.setBlock(getBlockPos(),getBlockState().setValue(WIDE,false),2);
|
||||
|
||||
|
||||
|
||||
Direction direction = getBlockState().getValue(BearingBlock.FACING);
|
||||
if(connectorPosition!=null) {
|
||||
if (direction.getAxis() == Direction.Axis.Z)
|
||||
connectorDistance = Math.abs(getBlockPos().getZ() - connectorPosition.getZ());
|
||||
|
||||
if (direction.getAxis() == Direction.Axis.X)
|
||||
connectorDistance = Math.abs(getBlockPos().getX() - connectorPosition.getX());
|
||||
|
||||
if(crank!=null) {
|
||||
crankConnectorDistance = Math.abs(crank.getBlockPos().getY() - connectorPosition.getY());
|
||||
|
||||
crank.crankRadius = (float) connectorDistance /5;
|
||||
}
|
||||
|
||||
}
|
||||
if(headPosition!=null) {
|
||||
if (direction.getAxis() == Direction.Axis.Z)
|
||||
headDistance = Math.abs(getBlockPos().getZ() - headPosition.getZ());
|
||||
|
||||
if (direction.getAxis() == Direction.Axis.X)
|
||||
headDistance = Math.abs(getBlockPos().getX() - headPosition.getX());
|
||||
|
||||
if(base!=null) {
|
||||
headBaseDistance = Math.abs(base.getBlockPos().getY() - headPosition.getY());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(connectorPosition!=null)
|
||||
crank = findCrank();
|
||||
|
||||
|
||||
if(crank!=null)
|
||||
if(!(level.getBlockEntity(crank.getBlockPos()) instanceof PumpjackCrankBlockEntity))
|
||||
crank =null;
|
||||
/////////////////////
|
||||
if(headPosition!=null) {
|
||||
|
||||
base = findBase();
|
||||
}
|
||||
|
||||
|
||||
if(base!=null)
|
||||
if(!(level.getBlockEntity(base.getBlockPos()) instanceof PumpjackBaseBlockEntity))
|
||||
base =null;
|
||||
|
||||
|
||||
////////
|
||||
prevAngle = angle;
|
||||
if (level.isClientSide)
|
||||
clientAngleDiff /= 2;
|
||||
|
||||
if (
|
||||
!level.isClientSide &&
|
||||
assembleNextTick) {
|
||||
assembleNextTick = false;
|
||||
if (running) {
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
assemble();
|
||||
}
|
||||
}
|
||||
|
||||
if (!running)
|
||||
return;
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
if (!(movedContraption != null && movedContraption.isStalled())) {
|
||||
if(crank!=null) {
|
||||
|
||||
|
||||
int x = 1;
|
||||
if(connectorAtFront)
|
||||
x = -1;
|
||||
|
||||
if(direction == Direction.SOUTH||direction == Direction.WEST) {
|
||||
angle = (float) Math.toDegrees(Math.atan(crank.heightModifier*x / connectorDistance));
|
||||
|
||||
} else angle = (float) Math.toDegrees(Math.atan(-crank.heightModifier*x / connectorDistance));
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
applyRotation();
|
||||
}
|
||||
|
||||
private PumpjackCrankBlockEntity findCrank() {
|
||||
BlockPos checkedPos = connectorPosition.below();
|
||||
|
||||
|
||||
for(int i =0;i<7;i++){
|
||||
|
||||
if(level.getBlockEntity(checkedPos) instanceof PumpjackCrankBlockEntity)
|
||||
if(level.getBlockState(checkedPos).getValue(HorizontalDirectionalBlock.FACING).getAxis()==this.getBlockState().getValue(FACING).getAxis())
|
||||
return (PumpjackCrankBlockEntity) level.getBlockEntity(checkedPos);
|
||||
|
||||
|
||||
|
||||
checkedPos = checkedPos.below();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private PumpjackBaseBlockEntity findBase() {
|
||||
BlockPos checkedPos = headPosition.below();
|
||||
|
||||
|
||||
|
||||
for(int i =0;i<8;i++){
|
||||
|
||||
if(level.getBlockEntity(checkedPos) instanceof PumpjackBaseBlockEntity)
|
||||
return (PumpjackBaseBlockEntity) level.getBlockEntity(checkedPos);
|
||||
|
||||
checkedPos = checkedPos.below();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public boolean isNearInitialAngle() {
|
||||
return Math.abs(angle) < 22.5 || Math.abs(angle) > 360 - 22.5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
if (movedContraption != null && !level.isClientSide)
|
||||
sendData();
|
||||
}
|
||||
|
||||
protected void applyRotation() {
|
||||
if (movedContraption == null)
|
||||
return;
|
||||
movedContraption.setAngle(angle);
|
||||
BlockState blockState = getBlockState();
|
||||
if (blockState.hasProperty(BlockStateProperties.FACING))
|
||||
movedContraption.setRotationAxis(blockState.getValue(BlockStateProperties.FACING).getClockWise()
|
||||
.getAxis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attach(ControlledContraptionEntity contraption) {
|
||||
BlockState blockState = getBlockState();
|
||||
if (!(contraption.getContraption() instanceof PumpjackContraption))
|
||||
return;
|
||||
if (!blockState.hasProperty(BearingBlock.FACING))
|
||||
return;
|
||||
|
||||
this.movedContraption = contraption;
|
||||
setChanged();
|
||||
|
||||
//BlockPos anchor = worldPosition.relative(blockState.getValue(BearingBlock.FACING));
|
||||
BlockPos anchor = worldPosition.above();
|
||||
movedContraption.setPos(anchor.getX(), anchor.getY(), anchor.getZ());
|
||||
if (!level.isClientSide) {
|
||||
this.running = true;
|
||||
sendData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStall() {
|
||||
if (!level.isClientSide)
|
||||
sendData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
return !isRemoved();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAttachedTo(AbstractContraptionEntity contraption) {
|
||||
return movedContraption == contraption;
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
return running;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setAngle(float forcedAngle) {
|
||||
angle = forcedAngle;
|
||||
}
|
||||
|
||||
public ControlledContraptionEntity getMovedContraption() {
|
||||
return movedContraption;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.base.TFMGContraptions;
|
||||
import com.simibubi.create.content.contraptions.AssemblyException;
|
||||
import com.simibubi.create.content.contraptions.ContraptionType;
|
||||
import com.simibubi.create.content.contraptions.bearing.AnchoredLighter;
|
||||
import com.simibubi.create.content.contraptions.bearing.BearingContraption;
|
||||
import com.simibubi.create.content.contraptions.render.ContraptionLighter;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
public class PumpjackContraption extends BearingContraption {
|
||||
|
||||
|
||||
//protected Direction facing;
|
||||
|
||||
|
||||
|
||||
public PumpjackContraption() {}
|
||||
|
||||
public PumpjackContraption(Direction facing) {
|
||||
this.facing = facing;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean assemble(Level world, BlockPos pos) throws AssemblyException {
|
||||
BlockPos offset = pos.above();
|
||||
if (!searchMovedStructure(world, offset, null))
|
||||
return false;
|
||||
startMoving(world);
|
||||
expandBoundsAroundAxis(facing.getAxis());
|
||||
if (blocks.isEmpty())
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ContraptionType getType() {
|
||||
return TFMGContraptions.PUMPJACK_CONTRAPTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isAnchoringBlockAt(BlockPos pos) {
|
||||
return pos.equals(anchor.below());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBlock(BlockPos pos, Pair<StructureBlockInfo, BlockEntity> capture) {
|
||||
BlockPos localPos = pos.subtract(anchor);
|
||||
|
||||
super.addBlock(pos, capture);
|
||||
}
|
||||
|
||||
//@Override
|
||||
//public CompoundTag writeNBT(boolean spawnPacket) {
|
||||
// CompoundTag tag = super.writeNBT(spawnPacket);
|
||||
// tag.putInt("Facing", facing.get3DDataValue());
|
||||
// return tag;
|
||||
//}
|
||||
//
|
||||
//@Override
|
||||
//public void readNBT(Level world, CompoundTag tag, boolean spawnData) {
|
||||
// facing = Direction.from3DDataValue(tag.getInt("Facing"));
|
||||
// super.readNBT(world, tag, spawnData);
|
||||
//}
|
||||
|
||||
|
||||
|
||||
//public Direction getFacing() {
|
||||
// return facing;
|
||||
//}
|
||||
|
||||
@Override
|
||||
public boolean canBeStabilized(Direction facing, BlockPos localPos) {
|
||||
if (facing.getOpposite() == this.facing && BlockPos.ZERO.equals(localPos))
|
||||
return false;
|
||||
return facing.getAxis() == this.facing.getAxis();
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public ContraptionLighter<?> makeLighter() {
|
||||
return new AnchoredLighter(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer;
|
||||
|
||||
import com.simibubi.create.content.contraptions.bearing.BearingBlock;
|
||||
import com.simibubi.create.foundation.data.SpecialBlockStateGen;
|
||||
import com.tterrag.registrate.providers.DataGenContext;
|
||||
import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
|
||||
|
||||
import static com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlock.WIDE;
|
||||
import static com.simibubi.create.foundation.data.AssetLookup.partialBaseModel;
|
||||
|
||||
public class PumpjackGenerator extends SpecialBlockStateGen {
|
||||
@Override
|
||||
protected int getXRotation(BlockState state) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getYRotation(BlockState state) {
|
||||
|
||||
if(state.getValue(BearingBlock.FACING).getAxis() == Direction.Axis.Y)
|
||||
return horizontalAngle(Direction.NORTH);
|
||||
|
||||
return horizontalAngle(state.getValue(BearingBlock.FACING).getClockWise());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T extends Block> ModelFile getModel(DataGenContext<Block, T> ctx, RegistrateBlockstateProvider prov,
|
||||
BlockState state) {
|
||||
|
||||
return state.getValue(WIDE) ? partialBaseModel(ctx, prov, "wide")
|
||||
: partialBaseModel(ctx, prov);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,372 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.mojang.math.Matrix4f;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import net.minecraft.client.renderer.LightTexture;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING;
|
||||
|
||||
|
||||
public class PumpjackRenderer extends KineticBlockEntityRenderer {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public PumpjackRenderer(BlockEntityRendererProvider.Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(KineticBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
|
||||
|
||||
if(((PumpjackBlockEntity)be).crank == null)
|
||||
return;
|
||||
if(((PumpjackBlockEntity)be).base == null)
|
||||
return;
|
||||
if(!((PumpjackBlockEntity) be).running)
|
||||
return;
|
||||
|
||||
|
||||
renderPumpjackLink(
|
||||
false,
|
||||
ms,
|
||||
buffer,
|
||||
(PumpjackBlockEntity) be
|
||||
);
|
||||
renderPumpjackLink(
|
||||
true,
|
||||
ms,
|
||||
buffer,
|
||||
(PumpjackBlockEntity) be
|
||||
);
|
||||
renderFrontPumpjackLink(
|
||||
ms,
|
||||
buffer,
|
||||
(PumpjackBlockEntity) be
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
private void renderPumpjackLink(boolean second, PoseStack pMatrixStack, MultiBufferSource pBuffer, PumpjackBlockEntity be) {
|
||||
pMatrixStack.pushPose();
|
||||
Direction direction = be.getBlockState().getValue(FACING);
|
||||
|
||||
|
||||
|
||||
Vec3 vec3 = new Vec3(0,0,0);
|
||||
|
||||
// vec3 = vec3.subtract(1,0,1);
|
||||
|
||||
int q = 1;
|
||||
if(be.connectorAtFront)
|
||||
q = -1;
|
||||
|
||||
float hModifier = 0;
|
||||
float x=0;
|
||||
float y=0;
|
||||
if(be.crank!=null) {
|
||||
hModifier = be.crank.heightModifier - be.crankConnectorDistance;
|
||||
float linkLenght = be.crankConnectorDistance;
|
||||
|
||||
|
||||
|
||||
if(direction == Direction.WEST) {
|
||||
if ((be.crank.angle>0&&be.crank.angle < 90||be.crank.angle > 270)||(be.crank.angle<0&&be.crank.angle > -90||be.crank.angle < -270)) {
|
||||
x = (float) Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
} else
|
||||
x = (float) -Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
|
||||
|
||||
y = (float) (be.connectorDistance - Math.sqrt(Math.pow(be.connectorDistance, 2) - Math.pow(be.crank.heightModifier, 2)));
|
||||
}
|
||||
if(direction == Direction.EAST) {
|
||||
|
||||
if ((be.crank.angle>0&&be.crank.angle < 90||be.crank.angle > 270)||(be.crank.angle<0&&be.crank.angle > -90||be.crank.angle < -270)) {
|
||||
x = (float) Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
} else
|
||||
x = (float) -Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
|
||||
|
||||
y = (float) (be.connectorDistance - Math.sqrt(Math.pow(be.connectorDistance, 2) - Math.pow(be.crank.heightModifier, 2)));
|
||||
}
|
||||
if(direction == Direction.NORTH) {
|
||||
if ((be.crank.angle > 90&&be.crank.angle < 270)||(be.crank.angle < -90&&be.crank.angle > -270)) {
|
||||
x = (float) Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
} else
|
||||
x = (float) -Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
|
||||
|
||||
y = (float) (be.connectorDistance - Math.sqrt(Math.pow(be.connectorDistance, 2) - Math.pow(be.crank.heightModifier, 2)));
|
||||
}
|
||||
if(direction == Direction.SOUTH) {
|
||||
if ((be.crank.angle > 90&&be.crank.angle < 270)||(be.crank.angle < -90&&be.crank.angle > -270)) {
|
||||
x = (float) Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
} else
|
||||
x = (float) -Math.sqrt(Math.pow(be.crank.crankRadius, 2) - Math.pow(be.crank.heightModifier, 2));
|
||||
|
||||
|
||||
y = (float) (be.connectorDistance - Math.sqrt(Math.pow(be.connectorDistance, 2) - Math.pow(be.crank.heightModifier, 2)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
vec3 = vec3.add(0,linkLenght,0);
|
||||
}
|
||||
|
||||
|
||||
x = x * q;
|
||||
|
||||
y = y * q;
|
||||
|
||||
|
||||
|
||||
|
||||
if(direction==Direction.NORTH) {
|
||||
pMatrixStack.translate(0, hModifier +1.5, (be.connectorDistance + (.5*q) + x)*q);
|
||||
x = x * q;
|
||||
vec3 = vec3.add(0,0,-x+y);
|
||||
|
||||
if(second) {
|
||||
pMatrixStack.translate(-1,0,0);
|
||||
}
|
||||
pMatrixStack.translate(1,0,0);
|
||||
}
|
||||
|
||||
if(direction==Direction.SOUTH){
|
||||
pMatrixStack.translate(0, hModifier+1.5, (-be.connectorDistance+(.5*q)+x)*q);
|
||||
x = x * q;
|
||||
vec3 = vec3.add(0,0,-x-y);
|
||||
|
||||
if(second) {
|
||||
pMatrixStack.translate(1,0,0);
|
||||
}
|
||||
// pMatrixStack.translate(1,0,0);
|
||||
}
|
||||
|
||||
if(direction==Direction.WEST){
|
||||
pMatrixStack.translate((be.connectorDistance+(.5*q)+x)*q, hModifier+1.5, 0);
|
||||
x = x * q;
|
||||
vec3 = vec3.add(-x-y,0,0);
|
||||
if(second) {
|
||||
pMatrixStack.translate(0,0,1);
|
||||
}
|
||||
|
||||
}
|
||||
if(direction==Direction.EAST){
|
||||
pMatrixStack.translate((-be.connectorDistance+(.5*q)+x)*q, hModifier+1.5, 0);
|
||||
x = x * q;
|
||||
vec3 = vec3.add(-x+y,0,0);
|
||||
|
||||
if(second) {
|
||||
pMatrixStack.translate(0,0,-1);
|
||||
}
|
||||
|
||||
pMatrixStack.translate(0,0,1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f = (float)(vec3.x);
|
||||
float f1 = (float)(vec3.y );
|
||||
float f2 = (float)(vec3.z);
|
||||
VertexConsumer vertexconsumer = pBuffer.getBuffer(RenderType.leash());
|
||||
Matrix4f matrix4f = pMatrixStack.last().pose();
|
||||
float f4 = Mth.fastInvSqrt(f * f + f2 * f2) * 0.025F / 2.0F;
|
||||
float f5 = f2 * f4;
|
||||
float f6 = f * f4;
|
||||
|
||||
|
||||
int i =15;
|
||||
int j = 15;
|
||||
|
||||
//int i = this.getBlockLightLevel(pEntityLiving, blockpos);
|
||||
//int j = this.entityRenderDispatcher.getRenderer(pLeashHolder).getBlockLightLevel(pLeashHolder, blockpos1);
|
||||
//int k = pEntityLiving.level.getBrightness(LightLayer.SKY, blockpos);
|
||||
//int l = pEntityLiving.level.getBrightness(LightLayer.SKY, blockpos1);
|
||||
|
||||
|
||||
int k = 15;
|
||||
int l = 15;
|
||||
|
||||
|
||||
for(int i1 = 0; i1 <= 24; ++i1) {
|
||||
addVertexPair(vertexconsumer, matrix4f, f, f1, f2, i, j, k, l, 0.025F, 0.025F, f5, f6, i1, false);
|
||||
}
|
||||
|
||||
for(int j1 = 24; j1 >= 0; --j1) {
|
||||
addVertexPair(vertexconsumer, matrix4f, f, f1, f2, i, j, k, l, 0.025F, 0.0F, f5, f6, j1, true);
|
||||
}
|
||||
|
||||
pMatrixStack.popPose();
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
private void renderFrontPumpjackLink(PoseStack pMatrixStack, MultiBufferSource pBuffer, PumpjackBlockEntity be) {
|
||||
pMatrixStack.pushPose();
|
||||
Direction direction = be.getBlockState().getValue(FACING);
|
||||
|
||||
|
||||
|
||||
Vec3 vec3 = new Vec3(0,0,0);
|
||||
|
||||
|
||||
|
||||
int q = -1;
|
||||
|
||||
int g = 0;
|
||||
|
||||
|
||||
|
||||
float hModifier= 0;
|
||||
|
||||
if(be.headAtFront) {
|
||||
q = 1;
|
||||
}else g = 1;
|
||||
|
||||
|
||||
|
||||
float y=0;
|
||||
if(be.crank!=null) {
|
||||
|
||||
float linkLenght = be.headBaseDistance;
|
||||
|
||||
|
||||
hModifier = (float) (be.headDistance*Math.sin(Math.toRadians(be.angle)));
|
||||
|
||||
|
||||
|
||||
// if(direction == Direction.WEST) {
|
||||
//
|
||||
// y = (float) (be.headDistance);
|
||||
// }
|
||||
// if(direction == Direction.EAST) {
|
||||
//
|
||||
//
|
||||
// y = (float) (be.headDistance );
|
||||
// }
|
||||
// if(direction == Direction.NORTH) {
|
||||
//
|
||||
// y = (float) (be.headDistance);
|
||||
// }
|
||||
// if(direction == Direction.SOUTH) {
|
||||
//
|
||||
// y = (float) (be.headDistance);
|
||||
// }
|
||||
|
||||
y = -0.01f;
|
||||
|
||||
vec3 = vec3.add(0,linkLenght,0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
hModifier = hModifier*q;
|
||||
|
||||
|
||||
if(direction==Direction.NORTH) {
|
||||
pMatrixStack.translate(0.5, -be.headBaseDistance+2, (-be.headDistance*q)+(.5*q)+g);
|
||||
vec3 = vec3.add(0,hModifier-0.3,+y);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(direction==Direction.SOUTH){
|
||||
pMatrixStack.translate(0.5, -be.headBaseDistance+2, (be.headDistance*q)+(.5*q)+g);
|
||||
vec3 = vec3.add(0,-hModifier-0.3,-y);
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(direction==Direction.WEST){
|
||||
pMatrixStack.translate((-be.headDistance*q)+(.5*q)+g, -be.headBaseDistance+2, 0.5);
|
||||
vec3 = vec3.add(-y,-hModifier-0.3,0);
|
||||
|
||||
|
||||
}
|
||||
if(direction==Direction.EAST){
|
||||
pMatrixStack.translate((be.headDistance*q)+(.5*q)+g, -be.headBaseDistance+2, 0.5);
|
||||
vec3 = vec3.add(+y,hModifier-0.3,0);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
float f = (float)(vec3.x);
|
||||
float f1 = (float)(vec3.y );
|
||||
float f2 = (float)(vec3.z);
|
||||
VertexConsumer vertexconsumer = pBuffer.getBuffer(RenderType.leash());
|
||||
Matrix4f matrix4f = pMatrixStack.last().pose();
|
||||
float f4 = Mth.fastInvSqrt(f * f + f2 * f2) * 0.025F / 2.0F;
|
||||
float f5 = f2 * f4;
|
||||
float f6 = f * f4;
|
||||
|
||||
|
||||
int i =15;
|
||||
int j = 15;
|
||||
|
||||
//int i = this.getBlockLightLevel(pEntityLiving, blockpos);
|
||||
//int j = this.entityRenderDispatcher.getRenderer(pLeashHolder).getBlockLightLevel(pLeashHolder, blockpos1);
|
||||
//int k = pEntityLiving.level.getBrightness(LightLayer.SKY, blockpos);
|
||||
//int l = pEntityLiving.level.getBrightness(LightLayer.SKY, blockpos1);
|
||||
|
||||
|
||||
int k = 15;
|
||||
int l = 15;
|
||||
|
||||
|
||||
for(int i1 = 0; i1 <= 24; ++i1) {
|
||||
addVertexPair(vertexconsumer, matrix4f, f, f1, f2, i, j, k, l, 0.025F, 0.025F, f5, f6, i1, false);
|
||||
}
|
||||
|
||||
for(int j1 = 24; j1 >= 0; --j1) {
|
||||
addVertexPair(vertexconsumer, matrix4f, f, f1, f2, i, j, k, l, 0.025F, 0.0F, f5, f6, j1, true);
|
||||
}
|
||||
|
||||
pMatrixStack.popPose();
|
||||
}
|
||||
|
||||
private static void addVertexPair(VertexConsumer vertexConsumer, Matrix4f p_174309_, float p_174310_, float p_174311_, float p_174312_, int p_174313_, int p_174314_, int p_174315_, int p_174316_, float p_174317_, float p_174318_, float p_174319_, float p_174320_, int p_174321_, boolean p_174322_) {
|
||||
float f = (float)p_174321_ / 24.0F;
|
||||
int i = (int)Mth.lerp(f, (float)p_174313_, (float)p_174314_);
|
||||
int j = (int)Mth.lerp(f, (float)p_174315_, (float)p_174316_);
|
||||
int k = LightTexture.pack(i, j);
|
||||
float f1 = p_174321_ % 2 == (p_174322_ ? 1 : 0) ? 0.7F : 1.0F;
|
||||
float f2 = 0.1F * f1;
|
||||
float f3 = 0.1F * f1;
|
||||
float f4 = 0.1F * f1;
|
||||
float f5 = p_174310_ * f;
|
||||
float f6 = p_174311_ > 0.0F ? p_174311_ * f * f : p_174311_ - p_174311_ * (1.0F - f) * (1.0F - f);
|
||||
float f7 = p_174312_ * f;
|
||||
vertexConsumer.vertex(p_174309_, f5 - p_174319_, f6 + p_174318_, f7 + p_174320_).color(f2, f3, f4, 1.0F).uv2(k).endVertex();
|
||||
vertexConsumer.vertex(p_174309_, f5 + p_174319_, f6 + p_174317_ - p_174318_, f7 - p_174320_).color(f2, f3, f4, 1.0F).uv2(k).endVertex();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected BlockState getRenderedBlockState(KineticBlockEntity te) {
|
||||
return shaft(getRotationAxisOf(te));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts;
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class PumpjackHammerConnectorBlock extends HorizontalDirectionalBlock {
|
||||
|
||||
public PumpjackHammerConnectorBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.PUMPJACK_HAMMER_PART.get(pState.getValue(FACING).getClockWise());
|
||||
}
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> pBuilder) {
|
||||
super.createBlockStateDefinition(pBuilder.add(FACING));
|
||||
}
|
||||
|
||||
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
|
||||
return this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection().getOpposite());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts;
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class PumpjackHammerHeadBlock extends HorizontalDirectionalBlock {
|
||||
|
||||
public PumpjackHammerHeadBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.PUMPJACK_HEAD.get(pState.getValue(FACING));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> pBuilder) {
|
||||
super.createBlockStateDefinition(pBuilder.add(FACING));
|
||||
}
|
||||
|
||||
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
|
||||
return this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection().getOpposite());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts;
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.foundation.placement.IPlacementHelper;
|
||||
import com.simibubi.create.foundation.placement.PlacementHelpers;
|
||||
import com.simibubi.create.foundation.placement.PlacementOffset;
|
||||
import com.simibubi.create.foundation.placement.PoleHelper;
|
||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class PumpjackHammerPartBlock extends HorizontalDirectionalBlock {
|
||||
public static final int placementHelperId = PlacementHelpers.register(new PlacementHelper());
|
||||
// public static final Property<Direction.Axis> HORIZONTAL_AXIS = BlockStateProperties.HORIZONTAL_AXIS;
|
||||
public PumpjackHammerPartBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||
builder.add(FACING);
|
||||
super.createBlockStateDefinition(builder);
|
||||
}
|
||||
|
||||
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
|
||||
return this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection().getOpposite());
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.PUMPJACK_HAMMER_PART.get(pState.getValue(FACING).getClockWise());
|
||||
}
|
||||
@MethodsReturnNonnullByDefault
|
||||
private static class PlacementHelper extends PoleHelper<Direction> {
|
||||
|
||||
|
||||
private PlacementHelper() {
|
||||
super(state -> state.getBlock() instanceof PumpjackHammerPartBlock, state -> state.getValue(FACING).getAxis(), FACING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ItemStack> getItemPredicate() {
|
||||
return i -> i.getItem() instanceof BlockItem
|
||||
&& ((BlockItem) i.getItem()).getBlock() instanceof PumpjackHammerPartBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<BlockState> getStatePredicate() {
|
||||
return s -> s.getBlock() instanceof PumpjackHammerPartBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlacementOffset getOffset(Player player, Level world, BlockState state, BlockPos pos,
|
||||
BlockHitResult ray) {
|
||||
PlacementOffset offset = super.getOffset(player, world, state, pos, ray);
|
||||
if (offset.isSuccessful())
|
||||
offset.withTransform(offset.getTransform()
|
||||
.andThen(s -> s));
|
||||
return offset;
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand,
|
||||
BlockHitResult pHit) {
|
||||
if (pPlayer == null)
|
||||
return InteractionResult.PASS;
|
||||
|
||||
ItemStack itemInHand = pPlayer.getItemInHand(pHand);
|
||||
|
||||
IPlacementHelper helper = PlacementHelpers.get(placementHelperId);
|
||||
if (helper.matchesItem(itemInHand))
|
||||
return helper.getOffset(pPlayer, pLevel, pState, pPos, pHit)
|
||||
.placeInWorld(pLevel, (BlockItem) itemInHand.getItem(), pPlayer, pHand, pHit);
|
||||
|
||||
return InteractionResult.PASS;
|
||||
}
|
||||
public static BlockState pickCorrectBlock(BlockState stateForPlacement) {
|
||||
//if (PoweredShaftBlock.stillValid(stateForPlacement, level, pos))
|
||||
// return PoweredShaftBlock.getEquivalent(stateForPlacement);
|
||||
return stateForPlacement;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large;
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerConnectorBlock;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class LargePumpjackHammerConnectorBlock extends PumpjackHammerConnectorBlock {
|
||||
|
||||
public LargePumpjackHammerConnectorBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.FULL;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large;
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerHeadBlock;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class LargePumpjackHammerHeadBlock extends PumpjackHammerHeadBlock {
|
||||
|
||||
public LargePumpjackHammerHeadBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.FULL;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large;
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerPartBlock;
|
||||
import com.drmangotea.createindustry.registry.TFMGShapes;
|
||||
import com.simibubi.create.foundation.placement.IPlacementHelper;
|
||||
import com.simibubi.create.foundation.placement.PlacementHelpers;
|
||||
import com.simibubi.create.foundation.placement.PlacementOffset;
|
||||
import com.simibubi.create.foundation.placement.PoleHelper;
|
||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class LargePumpjackHammerPartBlock extends PumpjackHammerPartBlock {
|
||||
|
||||
public LargePumpjackHammerPartBlock(Properties pProperties) {
|
||||
super(pProperties);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.FULL;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGBlockEntities;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.RenderShape;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
|
||||
public class PumpjackHammerHolderBlock extends HorizontalDirectionalBlock implements IBE<PumpjackHammerHolderBlockEntity> {
|
||||
|
||||
public PumpjackHammerHolderBlock(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_54794_) {
|
||||
p_54794_.add(FACING);
|
||||
}
|
||||
public BlockState getStateForPlacement(BlockPlaceContext p_54779_) {
|
||||
return this.defaultBlockState().setValue(FACING, p_54779_.getHorizontalDirection());
|
||||
}
|
||||
@Override
|
||||
public RenderShape getRenderShape(BlockState pState) {
|
||||
return RenderShape.ENTITYBLOCK_ANIMATED;
|
||||
}
|
||||
@Override
|
||||
public Class<PumpjackHammerHolderBlockEntity> getBlockEntityClass() {
|
||||
return PumpjackHammerHolderBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends PumpjackHammerHolderBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.PUMPJACK_HAMMER_HOLDER.get();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder;
|
||||
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
|
||||
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class PumpjackHammerHolderBlockEntity extends KineticBlockEntity implements IHaveGoggleInformation {
|
||||
float targetSpeed;
|
||||
LerpedFloat visualSpeed = LerpedFloat.linear();
|
||||
LerpedFloat angle = LerpedFloat.angular();
|
||||
float debugMogus = 0.4f;
|
||||
float speedModifier=0;
|
||||
public BlockPos crankPos;
|
||||
public PumpjackCrankBlockEntity crank;
|
||||
|
||||
|
||||
public float crankAngle;
|
||||
public Direction direction = this.getBlockState().getValue(HorizontalDirectionalBlock.FACING);;
|
||||
public Direction direction2 = this.getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();;
|
||||
public PumpjackHammerHolderBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
angle.setValue(14);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AABB createRenderBoundingBox() {
|
||||
return new AABB(this.getBlockPos()).inflate(2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
|
||||
|
||||
}
|
||||
public boolean hasCrank(){
|
||||
BlockPos theoreticalPos;
|
||||
if(direction == Direction.NORTH){
|
||||
theoreticalPos = this.getBlockPos().south(2).below();
|
||||
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity){
|
||||
crankPos = theoreticalPos;
|
||||
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(direction == Direction.SOUTH){
|
||||
theoreticalPos = this.getBlockPos().north(2).below();
|
||||
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity){
|
||||
crankPos = theoreticalPos;
|
||||
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(direction == Direction.WEST){
|
||||
theoreticalPos = this.getBlockPos().east(2).below();
|
||||
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity){
|
||||
crankPos = theoreticalPos;
|
||||
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(direction == Direction.EAST){
|
||||
theoreticalPos = this.getBlockPos().west(2).below();
|
||||
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity) {
|
||||
crankPos = theoreticalPos;
|
||||
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
direction = this.getBlockState().getValue(HorizontalDirectionalBlock.FACING);
|
||||
if (!level.isClientSide)
|
||||
return;
|
||||
if(!hasCrank()) {
|
||||
angle.setValue(14);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!(level.getBlockEntity(crankPos.below()) instanceof MachineInputBlockEntity)){
|
||||
angle.setValue(14);
|
||||
return;
|
||||
}
|
||||
if(((MachineInputBlockEntity) level.getBlockEntity(crankPos.below())).powerLevel==0) {
|
||||
angle.setValue(14);
|
||||
return;
|
||||
}
|
||||
if(!(crank.isValid())){
|
||||
angle.setValue(14);
|
||||
return;
|
||||
}
|
||||
angle.tickChaser();
|
||||
|
||||
if(angle.getValue()>0){
|
||||
speedModifier=(angle.getValue()/25)*-1;
|
||||
}else
|
||||
speedModifier=angle.getValue()/25;
|
||||
|
||||
crankAngle=crank.angle;
|
||||
|
||||
//if(crankAngle==90||crankAngle==270) {
|
||||
// angle.chase(13, 0.125f, Chaser.EXP);
|
||||
//}
|
||||
|
||||
angle.updateChaseSpeed(.8f+speedModifier);
|
||||
if(crankAngle==180){
|
||||
angle.chase(-14, .8f+speedModifier, Chaser.LINEAR);
|
||||
|
||||
}
|
||||
|
||||
if(crankAngle==0) {
|
||||
angle.chase(14, .8f+speedModifier, Chaser.LINEAR);
|
||||
//angle.updateChaseSpeed(angle.getValue());
|
||||
}
|
||||
}
|
||||
/*
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
if(hasCrank()){
|
||||
Lang.translate("goggles.surface_scanner.no_rotation")
|
||||
.style(ChatFormatting.GREEN)
|
||||
.forGoggles(tooltip);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
*/
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
super.write(compound, clientPacket);
|
||||
if (clientPacket) {
|
||||
compound.putFloat("Angle", angle.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
super.read(compound, clientPacket);
|
||||
if (clientPacket) {
|
||||
|
||||
angle.setValue(compound.getFloat("Angle"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGPartialModels;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
public class PumpjackHammerHolderInstance extends KineticBlockEntityInstance<PumpjackHammerHolderBlockEntity> implements DynamicInstance {
|
||||
|
||||
|
||||
protected final ModelData hammer;
|
||||
protected final ModelData holder;
|
||||
protected float lastAngle = Float.NaN;
|
||||
|
||||
public PumpjackHammerHolderInstance(MaterialManager modelManager, PumpjackHammerHolderBlockEntity tile) {
|
||||
super(modelManager, tile);
|
||||
|
||||
|
||||
hammer = getTransformMaterial()
|
||||
.getModel(TFMGPartialModels.PUMPJACK_HAMMER,blockState,tile.direction)
|
||||
.createInstance();
|
||||
|
||||
holder = getTransformMaterial()
|
||||
.getModel(blockState)
|
||||
.createInstance();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginFrame() {
|
||||
|
||||
float partialTicks = AnimationTickHolder.getPartialTicks();
|
||||
|
||||
float speed = blockEntity.visualSpeed.getValue(partialTicks) * 3 / 10f;
|
||||
float angle = blockEntity.angle.getValue() + speed * partialTicks;
|
||||
|
||||
if (Math.abs(angle - lastAngle) < 0.001)
|
||||
return;
|
||||
|
||||
animate(angle);
|
||||
|
||||
lastAngle = angle;
|
||||
}
|
||||
|
||||
private void animate(float angle) {
|
||||
PoseStack ms = new PoseStack();
|
||||
TransformStack msr = TransformStack.cast(ms);
|
||||
|
||||
msr.translate(getInstancePosition());
|
||||
msr.centre()
|
||||
.rotate(blockEntity.direction.getClockWise(), AngleHelper.rad(angle))
|
||||
.unCentre();
|
||||
PoseStack ms2 = new PoseStack();
|
||||
TransformStack msr2 = TransformStack.cast(ms2);
|
||||
|
||||
msr2.translate(getInstancePosition());
|
||||
//msr.centre()
|
||||
// .rotate(blockEntity.direction.getClockWise(), AngleHelper.rad(angle))
|
||||
// .unCentre();
|
||||
|
||||
|
||||
hammer.setTransform(ms);
|
||||
holder.setTransform(ms2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void updateLight() {
|
||||
relight(pos, hammer,holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
hammer.delete();
|
||||
holder.delete();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder;
|
||||
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGPartialModels;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import net.minecraft.client.renderer.LevelRenderer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
|
||||
|
||||
public class PumpjackHammerHolderRenderer extends KineticBlockEntityRenderer<PumpjackHammerHolderBlockEntity> {
|
||||
|
||||
protected float lastAngle = Float.NaN;
|
||||
public PumpjackHammerHolderRenderer(BlockEntityRendererProvider.Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(PumpjackHammerHolderBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
|
||||
// super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
|
||||
if (Backend.canUseInstancing(be.getLevel()))
|
||||
return;
|
||||
|
||||
BlockState blockState = be.getBlockState();
|
||||
PumpjackHammerHolderBlockEntity wte = (PumpjackHammerHolderBlockEntity) be;
|
||||
|
||||
|
||||
float speed = be.visualSpeed.getValue(partialTicks) * 3 / 10f;
|
||||
float angle = be.angle.getValue() + speed * partialTicks;
|
||||
|
||||
//if (Math.abs(angle - lastAngle) < 0.001)
|
||||
// return;
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
renderHammer(be, ms, light, blockState, angle, vb);
|
||||
|
||||
lastAngle = angle;
|
||||
}
|
||||
|
||||
private void renderHammer(PumpjackHammerHolderBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle,
|
||||
VertexConsumer vb) {
|
||||
|
||||
|
||||
SuperByteBuffer hammer =
|
||||
CachedBufferer.partialFacing(TFMGPartialModels.PUMPJACK_HAMMER, be.getBlockState(), be.direction);
|
||||
int lightInFront = LevelRenderer.getLightColor(be.getLevel(), be.getBlockPos());
|
||||
|
||||
Direction.Axis axis = blockState.getValue(FACING).getAxis();
|
||||
|
||||
hammer.centre();
|
||||
|
||||
hammer.rotate(be.direction.getClockWise(), (float) Math.toRadians(angle));
|
||||
|
||||
hammer.unCentre();
|
||||
|
||||
|
||||
hammer.renderInto(ms, vb);
|
||||
//kineticRotationTransform(hammer, be, be.direction2.getAxis(), angle, lightInFront).renderInto(ms, vb);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -19,6 +19,10 @@ public class TFMGPonderIndex {
|
||||
|
||||
.addStoryBoard("small_engines", OilScenes::small_engines, TFMGPonderTag.OIL);
|
||||
|
||||
HELPER.forComponents(TFMGBlocks.RADIAL_ENGINE, TFMGBlocks.LARGE_RADIAL_ENGINE)
|
||||
|
||||
.addStoryBoard("radial_engines", OilScenes::radial_engines, TFMGPonderTag.OIL);
|
||||
|
||||
|
||||
HELPER.forComponents(TFMGBlocks.DIESEL_ENGINE)
|
||||
|
||||
@@ -29,8 +33,18 @@ public class TFMGPonderIndex {
|
||||
|
||||
.addStoryBoard("surface_scanner", OilScenes::surface_scanner, TFMGPonderTag.OIL);
|
||||
|
||||
HELPER.forComponents(TFMGBlocks.PUMPJACK_BASE,TFMGBlocks.PUMPJACK_CRANK,TFMGBlocks.PUMPJACK_HAMMER_HOLDER)
|
||||
.addStoryBoard("pumpjack", OilScenes::pumpjack, TFMGPonderTag.OIL);
|
||||
HELPER.forComponents(
|
||||
TFMGBlocks.PUMPJACK_BASE,
|
||||
TFMGBlocks.PUMPJACK_CRANK,
|
||||
TFMGBlocks.PUMPJACK_HAMMER,
|
||||
TFMGBlocks.PUMPJACK_HAMMER_CONNECTOR,
|
||||
TFMGBlocks.PUMPJACK_HAMMER_PART,
|
||||
TFMGBlocks.PUMPJACK_HAMMER_HEAD,
|
||||
TFMGBlocks.LARGE_PUMPJACK_HAMMER_CONNECTOR,
|
||||
TFMGBlocks.LARGE_PUMPJACK_HAMMER_PART,
|
||||
TFMGBlocks.LARGE_PUMPJACK_HAMMER_HEAD
|
||||
|
||||
).addStoryBoard("pumpjack", OilScenes::pumpjack, TFMGPonderTag.OIL);
|
||||
HELPER.forComponents(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER,TFMGBlocks.STEEL_DISTILLATION_OUTPUT)
|
||||
|
||||
.addStoryBoard("distillation_tower", OilScenes::distillation_tower, TFMGPonderTag.OIL);
|
||||
@@ -63,9 +77,13 @@ public class TFMGPonderIndex {
|
||||
.add(TFMGBlocks.STEEL_DISTILLATION_OUTPUT)
|
||||
.add(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER)
|
||||
.add(TFMGBlocks.PUMPJACK_BASE)
|
||||
.add(TFMGBlocks.PUMPJACK_HAMMER_HOLDER)
|
||||
.add(TFMGBlocks.PUMPJACK_HAMMER)
|
||||
.add(TFMGBlocks.DIESEL_ENGINE)
|
||||
.add(TFMGBlocks.DIESEL_ENGINE_EXPANSION)
|
||||
.add(TFMGBlocks.RADIAL_ENGINE)
|
||||
.add(TFMGBlocks.LARGE_RADIAL_ENGINE)
|
||||
.add(TFMGBlocks.COMPACT_ENGINE)
|
||||
.add(TFMGBlocks.DIESEL_ENGINE_EXPANSION)
|
||||
.add(TFMGBlocks.PUMPJACK_CRANK);
|
||||
|
||||
PonderRegistry.TAGS.forTag(TFMGPonderTag.METALLURGY)
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
package com.drmangotea.createindustry.ponder.scenes;
|
||||
|
||||
import com.drmangotea.createindustry.registry.TFMGItems;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.foundation.ponder.*;
|
||||
import com.simibubi.create.foundation.ponder.element.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class OilScenes {
|
||||
@@ -103,17 +109,23 @@ public class OilScenes {
|
||||
public static void pumpjack(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("pumpjack", "");
|
||||
scene.configureBasePlate(0, 0, 7);
|
||||
|
||||
|
||||
////
|
||||
Selection pipez = util.select.fromTo(0, 2, 0, 0, 4, 0);
|
||||
Selection hammer = util.select.fromTo(3, 1, 2, 3, 3, 2);
|
||||
Selection base = util.select.fromTo(1, 1, 2, 1, 1, 2);
|
||||
Selection crank = util.select.fromTo(5, 2, 2, 5, 2, 2);
|
||||
Selection input = util.select.fromTo(5, 1, 1, 5, 1, 2);
|
||||
Selection hammer = util.select.fromTo(3, 1, 2, 3, 4, 2);
|
||||
Selection base = util.select.fromTo(0, 1, 2, 0, 1, 2);
|
||||
Selection crank = util.select.fromTo(6, 2, 2, 6, 2, 2);
|
||||
Selection input = util.select.fromTo(5, 1, 1, 6, 1, 2);
|
||||
Selection base1 = util.select.fromTo(2, 0, 0, 6, 0, 4);
|
||||
Selection base2 = util.select.fromTo(0, 0, 0, 1, 0, 4);
|
||||
Selection deposit = util.select.fromTo(0, 1, 0, 0, 1, 0);
|
||||
Selection tank = util.select.fromTo(0, 0, 3, 1, 0, 4);
|
||||
|
||||
Selection hammer_part = util.select.fromTo(1, 5, 2, 5, 5, 2);
|
||||
Selection hammer_head = util.select.fromTo(6, 5 ,2, 6, 5, 2);
|
||||
Selection hammer_connector = util.select.fromTo(0, 5, 2, 0, 5, 2);
|
||||
|
||||
|
||||
////
|
||||
// scene.scaleSceneView(.4f);
|
||||
@@ -147,15 +159,34 @@ public class OilScenes {
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("Pumpjack base has to be placed on the top of the pipe")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(1, 1, 2), Direction.WEST))
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(0, 1, 2), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(40);
|
||||
ElementLink<WorldSectionElement> hammerElement1 = scene.world.showIndependentSection(hammer,Direction.UP);
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("Pumpjack hammer needs to be placed behind it")
|
||||
.text("Pumpjack Hammer Holder needs to be placed behind it")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 3, 2), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
|
||||
|
||||
ElementLink<WorldSectionElement> connectorElement = scene.world.showIndependentSection(hammer_connector,Direction.UP);
|
||||
ElementLink<WorldSectionElement> headElement = scene.world.showIndependentSection(hammer_head,Direction.UP);
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("Next step is building the Connector And the Head of the Pumpjack above the crank and the base")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 3, 2), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
ElementLink<WorldSectionElement> partElement = scene.world.showIndependentSection(hammer_part,Direction.UP);
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("Now they need to be connected with Pumpjack Pammer Parts")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 3, 2), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
|
||||
|
||||
scene.idle(40);
|
||||
scene.world.setKineticSpeed(input,70);
|
||||
scene.world.setKineticSpeed(base1,-140);
|
||||
@@ -426,7 +457,107 @@ public class OilScenes {
|
||||
|
||||
}
|
||||
|
||||
public static void radial_engines(SceneBuilder scene, SceneBuildingUtil util){
|
||||
scene.title("radial_engines", "");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.idle(10);
|
||||
|
||||
scene.showBasePlate();
|
||||
|
||||
|
||||
Selection engine_small = util.select.fromTo(2, 1, 1, 2, 1, 1);
|
||||
|
||||
Selection engine_large = util.select.fromTo(1, 1, 1, 1, 1, 1);
|
||||
|
||||
|
||||
Selection engine_lever = util.select.fromTo(3, 1, 0, 3, 1, 0);
|
||||
|
||||
|
||||
Selection input_pump = util.select.fromTo(3, 1, 2, 3, 1, 2);
|
||||
|
||||
Selection input = util.select.fromTo(3, 1, 1, 3, 1, 1);
|
||||
|
||||
Selection tank_1 = util.select.fromTo(3, 1, 3, 3, 2, 3);
|
||||
|
||||
Selection tank_2 = util.select.fromTo(2, 1, 3, 2, 2, 3);
|
||||
|
||||
|
||||
scene.world.setKineticSpeed(engine_small,0);
|
||||
|
||||
|
||||
|
||||
|
||||
ElementLink<WorldSectionElement> engineElement = scene.world.showIndependentSectionImmediately(engine_small);
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("Radial Engines are a special Type of Engine that doesn't require an exhaust block and has a shaft from both sides")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(4, 0, 4), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(100);
|
||||
|
||||
|
||||
|
||||
scene.world.setKineticSpeed(input_pump,80);
|
||||
ElementLink<WorldSectionElement> inputElement = scene.world.showIndependentSection(input,Direction.DOWN);
|
||||
scene.idle(50);
|
||||
|
||||
BlockPos inputPos = util.grid.at(2, 1, 1);
|
||||
Vec3 topOf = util.vector.topOf(inputPos);
|
||||
scene.overlay.showControls(new InputWindowElement(topOf, Pointing.DOWN).rightClick()
|
||||
.withItem(new ItemStack(AllItems.WRENCH.get())), 20);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.text("Clicking the Engine from one of its sides will spawn an input slot that can accept fuel and redstone signals")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(2, 1, 1), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(100);
|
||||
scene.overlay.showText(40)
|
||||
.attachKeyFrame()
|
||||
.text("Regular Radial Engines uses gasoline as fuel")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(2, 1, 1), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
|
||||
|
||||
scene.idle(80);
|
||||
|
||||
|
||||
ElementLink<WorldSectionElement> inputPumpElement = scene.world.showIndependentSection(input_pump,Direction.DOWN);
|
||||
ElementLink<WorldSectionElement> tankElement1 = scene.world.showIndependentSection(tank_1,Direction.DOWN);
|
||||
|
||||
|
||||
ElementLink<WorldSectionElement> leverElement = scene.world.showIndependentSection(engine_lever,Direction.DOWN);
|
||||
scene.world.setKineticSpeed(engine_small,180);
|
||||
scene.world.setKineticSpeed(engine_large,180);
|
||||
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("Engine will start when redstone signal is applied to the input slot or the block itself")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 1, 0), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
|
||||
scene.idle(100);
|
||||
|
||||
|
||||
|
||||
scene.world.hideIndependentSection(engineElement,Direction.SOUTH);
|
||||
scene.world.hideIndependentSection(tankElement1,Direction.SOUTH);
|
||||
|
||||
scene.idle(50);
|
||||
|
||||
ElementLink<WorldSectionElement> largeEngineElement = scene.world.showIndependentSection(engine_large,Direction.DOWN);
|
||||
ElementLink<WorldSectionElement> tankElement2 = scene.world.showIndependentSection(tank_2,Direction.DOWN);
|
||||
scene.world.moveSection(largeEngineElement,new Vec3(1d,0d,0d),0);
|
||||
scene.world.moveSection(tankElement2,new Vec3(1d,0d,0d),0);
|
||||
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.text("The second variant of a radial is The Large Radial Engine which uses kerosene as fuel");
|
||||
scene.idle(50);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@ import com.drmangotea.createindustry.blocks.decoration.flywheels.TFMGFlywheelRen
|
||||
import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.deposits.surface_scanner.SurfaceScannerBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.deposits.surface_scanner.SurfaceScannerRenderer;
|
||||
import com.drmangotea.createindustry.blocks.engines.compact.CompactEngineBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.compact.CompactEngineRenderer;
|
||||
import com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineInstance;
|
||||
import com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineRenderer;
|
||||
@@ -18,6 +20,10 @@ import com.drmangotea.createindustry.blocks.engines.diesel.engine_expansion.Dies
|
||||
import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeInstance;
|
||||
import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeRenderer;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineRenderer;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.input.RadialEngineInputBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.large.LargeRadialEngineBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.gasoline.GasolineEngineBackTileEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.gasoline.GasolineEngineTileEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineBackTileEntity;
|
||||
@@ -39,21 +45,17 @@ import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryOutputBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseRenderer;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankRenderer;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderInstance;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderRenderer;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankRenderer;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackRenderer;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputRenderer;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.tanks.SteelFluidTankRenderer;
|
||||
import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.UniversalEngineRenderer;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity;
|
||||
import com.simibubi.create.content.fluids.pipes.SmartFluidPipeBlockEntity;
|
||||
import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity;
|
||||
@@ -139,19 +141,19 @@ public class TFMGBlockEntities {
|
||||
.validBlocks(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<PumpjackHammerHolderBlockEntity> PUMPJACK_HAMMER_HOLDER = REGISTRATE
|
||||
.blockEntity("pumpjack_hammer_holder", PumpjackHammerHolderBlockEntity::new)
|
||||
.instance(() -> PumpjackHammerHolderInstance::new, false)
|
||||
.validBlocks(TFMGBlocks.PUMPJACK_HAMMER_HOLDER)
|
||||
.renderer(() -> PumpjackHammerHolderRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<PumpjackCrankBlockEntity> PUMPJACK_CRANK = REGISTRATE
|
||||
.blockEntity("pumpjack_crank", PumpjackCrankBlockEntity::new)
|
||||
//.instance(() -> PumpjackCrankInstance::new, true)
|
||||
.validBlocks(TFMGBlocks.PUMPJACK_CRANK)
|
||||
.renderer(() -> PumpjackCrankRenderer::new)
|
||||
.register();
|
||||
//public static final BlockEntityEntry<PumpjackHammerHolderBlockEntity> PUMPJACK_HAMMER_HOLDER = REGISTRATE
|
||||
// .blockEntity("pumpjack_hammer_holder", PumpjackHammerHolderBlockEntity::new)
|
||||
// .instance(() -> PumpjackHammerHolderInstance::new, false)
|
||||
// .validBlocks(TFMGBlocks.PUMPJACK_HAMMER_HOLDER)
|
||||
// .renderer(() -> PumpjackHammerHolderRenderer::new)
|
||||
// .register();
|
||||
//
|
||||
//public static final BlockEntityEntry<PumpjackCrankBlockEntity> PUMPJACK_CRANK = REGISTRATE
|
||||
// .blockEntity("pumpjack_crank", PumpjackCrankBlockEntity::new)
|
||||
// //.instance(() -> PumpjackCrankInstance::new, true)
|
||||
// .validBlocks(TFMGBlocks.PUMPJACK_CRANK)
|
||||
// .renderer(() -> PumpjackCrankRenderer::new)
|
||||
// .register();
|
||||
|
||||
public static final BlockEntityEntry<MachineInputBlockEntity> MACHINE_INPUT = REGISTRATE
|
||||
.blockEntity("machine_input", MachineInputBlockEntity::new)
|
||||
@@ -160,11 +162,11 @@ public class TFMGBlockEntities {
|
||||
.renderer(() -> MachineInputRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<PumpjackBaseBlockEntity> PUMPJACK_BASE = REGISTRATE
|
||||
.blockEntity("pumpjack_base", PumpjackBaseBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.PUMPJACK_BASE)
|
||||
.renderer(() -> PumpjackBaseRenderer::new)
|
||||
.register();
|
||||
//public static final BlockEntityEntry<PumpjackBaseBlockEntity> PUMPJACK_BASE = REGISTRATE
|
||||
// .blockEntity("pumpjack_base", PumpjackBaseBlockEntity::new)
|
||||
// .validBlocks(TFMGBlocks.PUMPJACK_BASE)
|
||||
// .renderer(() -> PumpjackBaseRenderer::new)
|
||||
// .register();
|
||||
|
||||
public static final BlockEntityEntry<BlastFurnaceOutputBlockEntity> BLAST_FURNACE_OUTPUT = REGISTRATE
|
||||
.blockEntity("blast_furnace_output", BlastFurnaceOutputBlockEntity::new)
|
||||
@@ -364,8 +366,49 @@ public class TFMGBlockEntities {
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntityEntry<RadialEngineBlockEntity> RADIAL_ENGINE = REGISTRATE
|
||||
.blockEntity("radial_engine", RadialEngineBlockEntity::new)
|
||||
.instance(() -> ShaftInstance::new, false)
|
||||
.validBlocks(TFMGBlocks.RADIAL_ENGINE)
|
||||
.renderer(() -> RadialEngineRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<LargeRadialEngineBlockEntity> LARGE_RADIAL_ENGINE = REGISTRATE
|
||||
.blockEntity("large_radial_engine", LargeRadialEngineBlockEntity::new)
|
||||
.instance(() -> ShaftInstance::new, false)
|
||||
.validBlocks(TFMGBlocks.LARGE_RADIAL_ENGINE)
|
||||
.renderer(() -> RadialEngineRenderer::new)
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntityEntry<RadialEngineInputBlockEntity> RADIAL_ENGINE_INPUT = REGISTRATE
|
||||
.blockEntity("radial_engine_input", RadialEngineInputBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.RADIAL_ENGINE_INPUT)
|
||||
.register();
|
||||
public static final BlockEntityEntry<CompactEngineBlockEntity> COMPACT_ENGINE = REGISTRATE
|
||||
.blockEntity("compact_engine", CompactEngineBlockEntity::new)
|
||||
.instance(() -> HalfShaftInstance::new, false)
|
||||
.validBlocks(TFMGBlocks.COMPACT_ENGINE)
|
||||
.renderer(() -> CompactEngineRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<PumpjackBlockEntity> PUMPJACK_HAMMER = REGISTRATE
|
||||
.blockEntity("pumpjack_hammer", PumpjackBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.PUMPJACK_HAMMER)
|
||||
.renderer(() -> PumpjackRenderer::new)
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntityEntry<PumpjackCrankBlockEntity> PUMPJACK_CRANK = REGISTRATE
|
||||
.blockEntity("pumpjack_crank", PumpjackCrankBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.PUMPJACK_CRANK)
|
||||
.renderer(() -> PumpjackCrankRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<PumpjackBaseBlockEntity> PUMPJACK_BASE = REGISTRATE
|
||||
.blockEntity("pumpjack_base", PumpjackBaseBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.PUMPJACK_BASE)
|
||||
.register();
|
||||
|
||||
|
||||
public static void register() {}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.drmangotea.createindustry.registry;
|
||||
|
||||
import com.drmangotea.createindustry.base.TFMGBuilderTransformers;
|
||||
import com.drmangotea.createindustry.base.TFMGMetalBarsGen;
|
||||
import com.drmangotea.createindustry.base.TFMGSpriteShifts;
|
||||
import com.drmangotea.createindustry.base.TFMGVanillaBlockStates;
|
||||
import com.drmangotea.createindustry.base.*;
|
||||
import com.drmangotea.createindustry.blocks.concrete.formwork.FormWorkBlock;
|
||||
import com.drmangotea.createindustry.blocks.concrete.formwork.FormWorkGenerator;
|
||||
import com.drmangotea.createindustry.blocks.concrete.formwork.rebar.RebarFormWorkBlock;
|
||||
@@ -12,16 +9,17 @@ import com.drmangotea.createindustry.blocks.decoration.TrussBlock;
|
||||
import com.drmangotea.createindustry.blocks.decoration.doors.TFMGSlidingDoorBlock;
|
||||
import com.drmangotea.createindustry.blocks.decoration.flywheels.TFMGFlywheelBlock;
|
||||
import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlock;
|
||||
import com.drmangotea.createindustry.blocks.encased.TFMGEncasedCogwheelBlock;
|
||||
import com.drmangotea.createindustry.blocks.encased.TFMGEncasedShaftBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.compact.CompactEngineBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.diesel.engine_expansion.DieselEngineExpansionBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeGenerator;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.input.RadialEngineInputBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.radial.large.LargeRadialEngineBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.EngineGenerator;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.gasoline.GasolineEngineBackBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.gasoline.GasolineEngineBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.gasoline.GasolineEngineGenerator;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineBackBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineBlock;
|
||||
import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineBackBlock;
|
||||
@@ -31,6 +29,16 @@ import com.drmangotea.createindustry.blocks.machines.flarestack.FlarestackBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.flarestack.FlarestackGenerator;
|
||||
import com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven.CokeOvenCTBehavior;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.IndustrialPipeBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackGenerator;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerConnectorBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerHeadBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.PumpjackHammerPartBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerConnectorBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerHeadBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerPartBlock;
|
||||
import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeAttachmentModel;
|
||||
import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeBlock;
|
||||
import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.EncasedAluminumPipeBlock;
|
||||
@@ -61,9 +69,6 @@ import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryControllerBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryOutputBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlock;
|
||||
import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlock;
|
||||
import com.drmangotea.createindustry.blocks.pipes.normal.steel.EncasedSteelPipeBlock;
|
||||
import com.drmangotea.createindustry.blocks.pipes.normal.steel.GlassSteelPipeBlock;
|
||||
@@ -77,6 +82,7 @@ import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock;
|
||||
import com.drmangotea.createindustry.blocks.tanks.SteelTankGenerator;
|
||||
import com.drmangotea.createindustry.blocks.tanks.SteelTankItem;
|
||||
import com.simibubi.create.*;
|
||||
import com.simibubi.create.content.contraptions.bearing.StabilizedBearingMovementBehaviour;
|
||||
import com.simibubi.create.content.decoration.MetalLadderBlock;
|
||||
import com.simibubi.create.content.decoration.MetalScaffoldingBlock;
|
||||
import com.simibubi.create.content.decoration.encasing.CasingBlock;
|
||||
@@ -86,10 +92,6 @@ import com.simibubi.create.content.decoration.encasing.EncasingRegistry;
|
||||
import com.simibubi.create.content.fluids.pipes.SmartFluidPipeGenerator;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlock;
|
||||
import com.simibubi.create.content.kinetics.BlockStressDefaults;
|
||||
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogCTBehaviour;
|
||||
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogwheelBlock;
|
||||
import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedShaftBlock;
|
||||
import com.simibubi.create.content.logistics.vault.ItemVaultCTBehaviour;
|
||||
import com.simibubi.create.content.processing.AssemblyOperatorBlockItem;
|
||||
import com.simibubi.create.foundation.data.*;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
@@ -104,17 +106,15 @@ import net.minecraft.world.item.Rarity;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraft.world.level.storage.loot.LootPool;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.ConstantValue;
|
||||
import net.minecraftforge.client.model.generators.ConfiguredModel;
|
||||
import net.minecraftforge.common.Tags;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
|
||||
import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE;
|
||||
import static com.simibubi.create.AllMovementBehaviours.movementBehaviour;
|
||||
import static com.simibubi.create.foundation.data.BlockStateGen.simpleCubeAll;
|
||||
import static com.simibubi.create.foundation.data.CreateRegistrate.casingConnectivity;
|
||||
import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures;
|
||||
@@ -139,6 +139,21 @@ public class TFMGBlocks {
|
||||
.build()
|
||||
.lang("Napalm Bomb")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<Block> STEEL_FRAME = REGISTRATE.block("steel_frame", Block::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_YELLOW))
|
||||
.properties(p -> p.strength(3))
|
||||
.transform(pickaxeOnly())
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Steel Frame")
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntry<Block> FOSSILSTONE = REGISTRATE.block("fossilstone", Block::new)
|
||||
.initialProperties(() -> Blocks.OBSIDIAN)
|
||||
.properties(p -> p.strength(100f,1200f))
|
||||
@@ -341,16 +356,7 @@ public class TFMGBlocks {
|
||||
.lang("Factory Floor Slab")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<TFMGGravityBlock> LIMESAND = REGISTRATE.block("limesand", TFMGGravityBlock::new)
|
||||
.initialProperties(() -> Blocks.SAND)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW))
|
||||
//.transform(pickaxeOnly())
|
||||
.blockstate(simpleCubeAll("limesand"))
|
||||
// .tag(Tags.Blocks)
|
||||
.item()
|
||||
.build()
|
||||
.lang("Limesand")
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntry<TFMGGravityBlock> CEMENT = REGISTRATE.block("cement", TFMGGravityBlock::new)
|
||||
.initialProperties(() -> Blocks.SAND)
|
||||
@@ -537,37 +543,146 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
|
||||
.build()
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<PumpjackCrankBlock> PUMPJACK_CRANK =
|
||||
REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
.properties(p -> p
|
||||
.strength(4.5F))
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
.transform(axeOrPickaxe())
|
||||
.item()
|
||||
.build()
|
||||
.register();
|
||||
public static final BlockEntry<PumpjackBaseBlock> PUMPJACK_BASE =
|
||||
REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
// public static final BlockEntry<PumpjackCrankBlock> PUMPJACK_CRANK =
|
||||
// REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new)
|
||||
// .properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
// .properties(p -> p
|
||||
// .strength(4.5F))
|
||||
// .properties(BlockBehaviour.Properties::noOcclusion)
|
||||
// .blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
// .transform(axeOrPickaxe())
|
||||
// .item()
|
||||
// .build()
|
||||
// .register();
|
||||
// public static final BlockEntry<PumpjackBaseBlock> PUMPJACK_BASE =
|
||||
// REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new)
|
||||
// .initialProperties(SharedProperties::copperMetal)
|
||||
// .properties(BlockBehaviour.Properties::noOcclusion)
|
||||
// .transform(pickaxeOnly())
|
||||
// .blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
// .item()
|
||||
// .build()
|
||||
// .register();
|
||||
//
|
||||
// public static final BlockEntry<PumpjackHammerHolderBlock> PUMPJACK_HAMMER_HOLDER =
|
||||
// REGISTRATE.block("pumpjack_hammer_holder", PumpjackHammerHolderBlock::new)
|
||||
// .initialProperties(SharedProperties::copperMetal)
|
||||
// .properties(BlockBehaviour.Properties::noOcclusion)
|
||||
// .blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
// .transform(pickaxeOnly())
|
||||
// .item()
|
||||
// .build()
|
||||
// .register();
|
||||
// //////
|
||||
|
||||
|
||||
public static final BlockEntry<PumpjackBlock> PUMPJACK_HAMMER =
|
||||
REGISTRATE.block("pumpjack_hammer", PumpjackBlock::new)
|
||||
.properties(p -> p.color(MaterialColor.PODZOL))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.tag(AllTags.AllBlockTags.SAFE_NBT.tag)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.blockstate(new PumpjackGenerator()::generate)
|
||||
.onRegister(movementBehaviour(new StabilizedBearingMovementBehaviour()))
|
||||
.item()
|
||||
.build()
|
||||
.transform(customItemModel())
|
||||
.lang("Pumpjack Hammer Holder")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<PumpjackHammerHolderBlock> PUMPJACK_HAMMER_HOLDER =
|
||||
REGISTRATE.block("pumpjack_hammer_holder", PumpjackHammerHolderBlock::new)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
|
||||
|
||||
public static final BlockEntry<PumpjackCrankBlock> PUMPJACK_CRANK =
|
||||
REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.PODZOL))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.item()
|
||||
.build()
|
||||
.lang("Pumpjack Crank")
|
||||
.register();
|
||||
//////
|
||||
|
||||
public static final BlockEntry<PumpjackHammerPartBlock> PUMPJACK_HAMMER_PART = REGISTRATE.block("pumpjack_hammer_part", PumpjackHammerPartBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(false))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Pumpjack Hammer Part")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<PumpjackHammerHeadBlock> PUMPJACK_HAMMER_HEAD = REGISTRATE.block("pumpjack_hammer_head", PumpjackHammerHeadBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(false))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Pumpjack Hammer Head")
|
||||
.register();
|
||||
|
||||
|
||||
|
||||
public static final BlockEntry<PumpjackHammerConnectorBlock> PUMPJACK_HAMMER_CONNECTOR = REGISTRATE.block("pumpjack_hammer_connector", PumpjackHammerConnectorBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(false))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Pumpjack Hammer Connector")
|
||||
.register();
|
||||
////////
|
||||
public static final BlockEntry<LargePumpjackHammerPartBlock> LARGE_PUMPJACK_HAMMER_PART = REGISTRATE.block("large_pumpjack_hammer_part", LargePumpjackHammerPartBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(false))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Large Pumpjack Hammer Part")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<LargePumpjackHammerHeadBlock> LARGE_PUMPJACK_HAMMER_HEAD = REGISTRATE.block("large_pumpjack_hammer_head", LargePumpjackHammerHeadBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(false))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Large Pumpjack Hammer Head")
|
||||
.register();
|
||||
|
||||
|
||||
|
||||
public static final BlockEntry<LargePumpjackHammerConnectorBlock> LARGE_PUMPJACK_HAMMER_CONNECTOR = REGISTRATE.block("large_pumpjack_hammer_connector", LargePumpjackHammerConnectorBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(false))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Large Pumpjack Hammer Connector")
|
||||
.register();
|
||||
////////
|
||||
public static final BlockEntry<PumpjackBaseBlock> PUMPJACK_BASE = REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN))
|
||||
.transform(pickaxeOnly())
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.item()
|
||||
.build()
|
||||
.lang("Pumpjack Base")
|
||||
.register();
|
||||
|
||||
///////////
|
||||
|
||||
//Blast Furnace
|
||||
|
||||
@@ -917,6 +1032,80 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
|
||||
.lang("Diesel Engine Expansion")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<RadialEngineBlock> RADIAL_ENGINE =
|
||||
REGISTRATE.block("radial_engine", RadialEngineBlock::new)
|
||||
.initialProperties(SharedProperties::stone)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
.tag(AllTags.AllBlockTags.SAFE_NBT.tag)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new EngineGenerator()::generate)
|
||||
.transform(BlockStressDefaults.setCapacity(70.0))
|
||||
.transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256)))
|
||||
.item()
|
||||
.properties(p -> p.rarity(Rarity.UNCOMMON))
|
||||
// .lang("Radial Engine")
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<LargeRadialEngineBlock> LARGE_RADIAL_ENGINE =
|
||||
REGISTRATE.block("large_radial_engine", LargeRadialEngineBlock::new)
|
||||
.initialProperties(SharedProperties::stone)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
.tag(AllTags.AllBlockTags.SAFE_NBT.tag)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new EngineGenerator()::generate)
|
||||
.transform(BlockStressDefaults.setCapacity(93.0))
|
||||
.transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256)))
|
||||
.item()
|
||||
.properties(p -> p.rarity(Rarity.UNCOMMON))
|
||||
// .lang("Large Radial Engine")
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<RadialEngineInputBlock> RADIAL_ENGINE_INPUT =
|
||||
REGISTRATE.block("radial_engine_input", RadialEngineInputBlock::new)
|
||||
.initialProperties(SharedProperties::stone)
|
||||
.blockstate(BlockStateGen.directionalBlockProvider(false))
|
||||
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
.tag(AllTags.AllBlockTags.SAFE_NBT.tag)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.register();
|
||||
public static final BlockEntry<DebugBlock> RADIAL_ENGINE_INPUT_PONDER =
|
||||
REGISTRATE.block("radial_engine_input_ponder", DebugBlock::new)
|
||||
.initialProperties(SharedProperties::stone)
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
.tag(AllTags.AllBlockTags.SAFE_NBT.tag)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.item()
|
||||
.build()
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntry<CompactEngineBlock> COMPACT_ENGINE =
|
||||
REGISTRATE.block("compact_engine", CompactEngineBlock::new)
|
||||
.initialProperties(SharedProperties::stone)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
.tag(AllTags.AllBlockTags.SAFE_NBT.tag)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new EngineGenerator()::generate)
|
||||
.transform(BlockStressDefaults.setCapacity(20.0))
|
||||
.transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256)))
|
||||
.item()
|
||||
.properties(p -> p.rarity(Rarity.UNCOMMON))
|
||||
// .lang("Small Engine")
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
|
||||
|
||||
//----------------------PIPES-------------------------------//
|
||||
|
||||
//STEEL
|
||||
|
||||
@@ -32,8 +32,7 @@ public class TFMGItems {
|
||||
STEEL_INGOT = taggedIngredient("steel_ingot", forgeItemTag("ingots/steel"), CREATE_INGOTS.tag),
|
||||
CAST_IRON_INGOT = taggedIngredient("cast_iron_ingot", forgeItemTag("ingots/cast_iron"), CREATE_INGOTS.tag),
|
||||
ALUMINUM_INGOT = taggedIngredient("aluminum_ingot", forgeItemTag("ingots/aluminum"), CREATE_INGOTS.tag),
|
||||
PLASTIC_SHEET = taggedIngredient("plastic_sheet", forgeItemTag("ingots/plastic"), CREATE_INGOTS.tag),
|
||||
CHARCOAL_DUST = taggedIngredient("charcoal_dust", forgeItemTag("dusts/charcoal"))
|
||||
PLASTIC_SHEET = taggedIngredient("plastic_sheet", forgeItemTag("ingots/plastic"), CREATE_INGOTS.tag)
|
||||
// LEAD_INGOT = taggedIngredient("lead_ingot", forgeItemTag("ingots/lead"), CREATE_INGOTS.tag)
|
||||
;
|
||||
|
||||
@@ -59,7 +58,13 @@ public class TFMGItems {
|
||||
STEEL_MECHANISM = REGISTRATE.item("steel_mechanism", Item::new).register(),
|
||||
|
||||
NITRATE_DUST = REGISTRATE.item("nitrate_dust", Item::new).register(),
|
||||
SULFUR_DUST = REGISTRATE.item("sulfur_dust", Item::new).register();
|
||||
SULFUR_DUST = REGISTRATE.item("sulfur_dust", Item::new).register(),
|
||||
|
||||
LIMESAND = REGISTRATE.item("limesand", Item::new).register(),
|
||||
|
||||
CONCRETE_MIXTURE = REGISTRATE.item("concrete_mixture", Item::new).register()
|
||||
|
||||
;
|
||||
|
||||
|
||||
public static final ItemEntry<SequencedAssemblyItem>
|
||||
|
||||
@@ -36,7 +36,7 @@ public class TFMGPartialModels {
|
||||
PUMPJACK_FRONT_ROPE = block("pumpjack/pumpjack_front_rope"),
|
||||
PUMPJACK_CONNECTOR = block("pumpjack/pumpjack_connector"),
|
||||
PUMPJACK_CRANK_BLOCK = block("pumpjack/pumpjack_crank_block"),
|
||||
PUMPJACK_CRANK = block("pumpjack/pumpjack_crank"),
|
||||
PUMPJACK_CRANK = block("pumpjack_crank/crank"),
|
||||
TOWER_GAUGE = block("distillation_tower/gauge"),
|
||||
SURFACE_SCANNER_DIAL = block("surface_scanner/dial"),
|
||||
SURFACE_SCANNER_FLAG = block("surface_scanner/flag"),
|
||||
|
||||
@@ -17,16 +17,31 @@ public class TFMGShapes {
|
||||
|
||||
public static final VoxelShaper
|
||||
ENGINE_BACK = shape(3, 0, 3, 13, 16, 16)
|
||||
.forDirectional(),
|
||||
ENGINE_BACK_VERTICAL = shape(3, 0, 0, 13, 16, 13)
|
||||
.forDirectional(),
|
||||
ENGINE_BACK_VERTICAL = shape(3, 0, 3, 16, 16, 13)
|
||||
.forDirectional(),
|
||||
ENGINE_VERTICAL = shape(3, 0, 0, 13, 14, 13)
|
||||
.forDirectional(),
|
||||
ENGINE_VERTICAL = shape(3, 0, 3, 13, 14, 16)
|
||||
.forDirectional(),
|
||||
ENGINE = shape(3, 0, 3, 13, 14, 16)
|
||||
.forDirectional()
|
||||
.forDirectional(),
|
||||
|
||||
PUMPJACK_HAMMER_PART = shape(0, 2, 0, 16, 14, 16)
|
||||
.forDirectional(),
|
||||
|
||||
RADIAL_ENGINE = shape(1, 4, 1, 15, 12, 15)
|
||||
.forDirectional(),
|
||||
LARGE_RADIAL_ENGINE = shape(-3, 4, -3, 19, 12, 19)
|
||||
.forDirectional(),
|
||||
|
||||
PUMPJACK_HEAD = shape(1, 0, -4, 15, 14, 24)
|
||||
.forDirectional(),
|
||||
|
||||
|
||||
|
||||
COMPACT_ENGINE_VERTICAL = shape(3, 0, 3, 13, 14, 14)
|
||||
.forDirectional(),
|
||||
COMPACT_ENGINE = shape(3, 0, 3, 13, 14, 14)
|
||||
.forDirectional()
|
||||
|
||||
|
||||
|
||||
@@ -42,7 +57,9 @@ public class TFMGShapes {
|
||||
|
||||
CASTING_SPOUT = shape(1, 2, 1, 15, 14, 15)
|
||||
.build(),
|
||||
SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build();
|
||||
SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build(),
|
||||
|
||||
FULL = shape(0, 0, 0, 16, 16, 16).build();
|
||||
;
|
||||
|
||||
private static TFMGShapes.Builder shape(VoxelShape shape) {
|
||||
|
||||
@@ -8,7 +8,7 @@ license="MIT"
|
||||
|
||||
modId="createindustry"
|
||||
|
||||
version="0.6.0"
|
||||
version="0.7.0c"
|
||||
|
||||
displayName="Create: The Factory Must Grow"
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
"createindustry.ponder.pumpjack.text_1": "To start extracting Oil, you must first build a pipeline on top of a deposit using Industrial Pipes",
|
||||
"createindustry.ponder.pumpjack.text_2": "Then, construct a Pumpjack on top of the pipeline by first placing down a Pumpjack Base...",
|
||||
"createindustry.ponder.pumpjack.text_3": "Placing the Pumpjack Hammer behind it...",
|
||||
"createindustry.ponder.pumpjack.text_4": "And finally, placing the Machine Input with a Pumpjack Crank above it, as shown in the scene",
|
||||
"createindustry.ponder.pumpjack.text_4": "Next step is building the Connector And the Head of the Pumpjack above the crank and the base",
|
||||
"createindustry.ponder.pumpjack.text_5": "Now they need to be connected with Pumpjack Pammer Parts, keep in mind that superglue is needed to finish the structure",
|
||||
"createindustry.ponder.pumpjack.text_6": "And finally, placing the Machine Input with a Pumpjack Crank above it, as shown in the scene",
|
||||
|
||||
"createindustry.ponder.distillation_tower.text_1": "A sufficiently large Steel Fluid Tank can be turned into a Distillation Tower",
|
||||
"createindustry.ponder.distillation_tower.text_2": "The tower is assembled by first placing a Steel Distillation Tower Controller next to the tank...",
|
||||
@@ -50,15 +52,25 @@
|
||||
"createindustry.ponder.casting.text_1": "Casting is the process of pouring liquid metal into a Casting Basin using a Casting Spout",
|
||||
"createindustry.ponder.casting.text_2": "The Casting Basin, obviously, requires a mold to function",
|
||||
|
||||
|
||||
"createindustry.ponder.radial_engines.text_1": "Radial Engines are a special Type of Engine that doesn't require an exhaust block and has a shaft from both sides",
|
||||
"createindustry.ponder.radial_engines.text_2": "Clicking the Engine from one of its sides will spawn an input slot that can accept fuel and redstone signals",
|
||||
"createindustry.ponder.radial_engines.text_3": "Regular Radial Engines uses gasoline as fuel",
|
||||
"createindustry.ponder.radial_engines.text_4": "Engine will start when redstone signal is applied to the input slot or the block itself",
|
||||
"createindustry.ponder.radial_engines.text_5": "The second variant of a radial is The Large Radial Engine which uses kerosene as fuel",
|
||||
|
||||
|
||||
|
||||
"createindustry.ponder.distillation_tower.header": "Distillation Tower Setup",
|
||||
"createindustry.ponder.pumpjack.header": "Building Pumpjacks",
|
||||
"createindustry.ponder.surface_scanner.header": "Locating Oil",
|
||||
"createindustry.ponder.diesel_engine.header": "Building a Diesel Engine",
|
||||
"createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines",
|
||||
"createindustry.ponder.small_engines.header": "Building Small Engines",
|
||||
"createindustry.ponder.radial_engines.header": "Using Radial Engines",
|
||||
|
||||
"createindustry.ponder.coke_oven.header": "Building a Coke Oven",
|
||||
"createindustry.ponder.blast_furnace": "Building a Blast Furnace",
|
||||
"createindustry.ponder.blast_furnace.header": "Building a Blast Furnace",
|
||||
"createindustry.ponder.casting.header": "Casting Metal",
|
||||
|
||||
"createindustry.ponder.tag.oil": "Oil Related Machines",
|
||||
|
||||
438
src/main/resources/assets/createindustry/lang/es_es.json
Normal file
@@ -0,0 +1,438 @@
|
||||
{
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.createindustry.air_intake": "Entrada de aire",
|
||||
"block.createindustry.aluminum_bars": "Barras de aluminio",
|
||||
"block.createindustry.aluminum_block": "Bloque de aluminio",
|
||||
"block.createindustry.aluminum_fluid_valve": "Válvula de fluidos de aluminio",
|
||||
"block.createindustry.aluminum_flywheel": "Rueda de inercia de aluminio",
|
||||
"block.createindustry.aluminum_ladder": "Escalera de aluminio",
|
||||
"block.createindustry.aluminum_mechanical_pump": "Bomba mecánica de aluminio",
|
||||
"block.createindustry.aluminum_pipe": "Tubería de aluminio",
|
||||
"block.createindustry.aluminum_scaffolding": "Andamio de aluminio",
|
||||
"block.createindustry.aluminum_smart_fluid_pipe": "Tubería de fluidos inteligente de aluminio",
|
||||
"block.createindustry.aluminum_truss": "Armazón de aluminio",
|
||||
"block.createindustry.asphalt": "Asfalto",
|
||||
"block.createindustry.bauxite": "Bauxita",
|
||||
"block.createindustry.bauxite_pillar": "Pilar de bauxita",
|
||||
"block.createindustry.black_concrete": "Hormigón negro",
|
||||
"block.createindustry.black_concrete_slab": "Losa de hormigón negro",
|
||||
"block.createindustry.black_concrete_stairs": "Escaleras de hormigón negro",
|
||||
"block.createindustry.black_concrete_wall": "Muro de hormigón negro",
|
||||
"block.createindustry.blast_furnace_output": "Salida del alto horno",
|
||||
"block.createindustry.blue_concrete": "Hormigón azul",
|
||||
"block.createindustry.blue_concrete_slab": "Losa de hormigón azul",
|
||||
"block.createindustry.blue_concrete_stairs": "Escaleras de hormigón azul",
|
||||
"block.createindustry.blue_concrete_wall": "Muro de hormigón azul",
|
||||
"block.createindustry.brass_fluid_valve": "Válvula de fluidos de latón",
|
||||
"block.createindustry.brass_mechanical_pump": "Bomba mecánica de latón",
|
||||
"block.createindustry.brass_pipe": "Tubería de latón",
|
||||
"block.createindustry.brass_smart_fluid_pipe": "Tubería de fluidos inteligente de latón",
|
||||
"block.createindustry.brown_concrete": "Hormigón marrón",
|
||||
"block.createindustry.brown_concrete_slab": "Losa de hormigón marrón",
|
||||
"block.createindustry.brown_concrete_stairs": "Escaleras de hormigón marrón",
|
||||
"block.createindustry.brown_concrete_wall": "Muro de hormigón marrón",
|
||||
"block.createindustry.cast_iron_block": "Bloque de hierro fundido",
|
||||
"block.createindustry.cast_iron_distillation_controller": "Controlador de destilación de hierro fundido",
|
||||
"block.createindustry.cast_iron_distillation_output": "Salida de destilación de hierro fundido",
|
||||
"block.createindustry.cast_iron_fluid_valve": "Válvula de fluidos de hierro fundido",
|
||||
"block.createindustry.cast_iron_flywheel": "Rueda de inercia de hierro fundido",
|
||||
"block.createindustry.cast_iron_mechanical_pump": "Bomba mecánica de hierro fundido",
|
||||
"block.createindustry.cast_iron_pipe": "Tubería de hierro fundido",
|
||||
"block.createindustry.cast_iron_smart_fluid_pipe": "Tubería de fluidos inteligente de hierro fundido",
|
||||
"block.createindustry.casting_basin": "Cuenca de fundición",
|
||||
"block.createindustry.casting_spout": "Caño de fundición",
|
||||
"block.createindustry.caution_block": "Bloque de precaución",
|
||||
"block.createindustry.cement": "Cemento",
|
||||
"block.createindustry.coal_coke_block": "Bloque de coque de carbón",
|
||||
"block.createindustry.coke_oven": "Horno de coque",
|
||||
"block.createindustry.concrete": "Hormigón",
|
||||
"block.createindustry.concrete_slab": "Losa de hormigón",
|
||||
"block.createindustry.concrete_stairs": "Escaleras de hormigón",
|
||||
"block.createindustry.concrete_wall": "Muro de hormigón",
|
||||
"block.createindustry.cooling_fluid": "Líquido refrigerante",
|
||||
"block.createindustry.copper_encased_aluminum_pipe": "Tubería de aluminio revestido de cobre",
|
||||
"block.createindustry.copper_encased_brass_pipe": "Tubería de latón revestido de cobre",
|
||||
"block.createindustry.copper_encased_cast_iron_pipe": "Tubería de hierro fundido revestido de cobre",
|
||||
"block.createindustry.copper_encased_plastic_pipe": "Tubería de plástico revestida de cobre",
|
||||
"block.createindustry.copper_encased_steel_pipe": "Tubería de acero revestido de cobre",
|
||||
"block.createindustry.creosote": "Creosota",
|
||||
"block.createindustry.crude_oil_fluid": "Fluido de petróleo crudo",
|
||||
"block.createindustry.cut_bauxite": "Bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_brick_slab": "Losa de ladrillo de bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_brick_stairs": "Escaleras de ladrillo de bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_brick_wall": "Pared de ladrillos de bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_bricks": "Ladrillos de bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_slab": "Losa de bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_stairs": "Escaleras de bauxita cortada",
|
||||
"block.createindustry.cut_bauxite_wall": "Pared de bauxita cortada",
|
||||
"block.createindustry.cyan_concrete": "Hormigón cian",
|
||||
"block.createindustry.cyan_concrete_slab": "Losa de hormigón cian",
|
||||
"block.createindustry.cyan_concrete_stairs": "Escaleras de hormigón cian",
|
||||
"block.createindustry.cyan_concrete_wall": "Muro de hormigón cian",
|
||||
"block.createindustry.diesel": "Diésel",
|
||||
"block.createindustry.diesel_engine": "Motor diésel",
|
||||
"block.createindustry.diesel_engine_expansion": "Expansión del motor diésel",
|
||||
"block.createindustry.exhaust": "Tubería de escape",
|
||||
"block.createindustry.factory_floor": "Suelo de fábrica",
|
||||
"block.createindustry.factory_floor_slab": "Losa de suelo de fábrica",
|
||||
"block.createindustry.factory_floor_stairs": "Escaleras de suelo de fábrica",
|
||||
"block.createindustry.fireclay": "Arcilla refractaria",
|
||||
"block.createindustry.fireproof_brick_reinforcement": "Muro de ladrillos ignífugos",
|
||||
"block.createindustry.fireproof_bricks": "Ladrillos ignífugos",
|
||||
"block.createindustry.flarestack": "Flarestack",
|
||||
"block.createindustry.formwork_block": "Bloque de encofrado",
|
||||
"block.createindustry.fossilstone": "Piedra fósil",
|
||||
"block.createindustry.gasoline": "Gasolina",
|
||||
"block.createindustry.gasoline_engine": "Motor de gasolina",
|
||||
"block.createindustry.gasoline_engine_back": "Motor de gasolina trasero",
|
||||
"block.createindustry.glass_aluminum_pipe": "Tubería de aluminio y crista",
|
||||
"block.createindustry.glass_brass_pipe": "Tubería de latón y crista",
|
||||
"block.createindustry.glass_cast_iron_pipe": "Tubería de hierro fundido y crista",
|
||||
"block.createindustry.glass_plastic_pipe": "Tubería de plástico y cristal",
|
||||
"block.createindustry.glass_steel_pipe": "Tubería de acero y cristal",
|
||||
"block.createindustry.gray_concrete": "Hormigón gris",
|
||||
"block.createindustry.gray_concrete_slab": "Losa de hormigón gris",
|
||||
"block.createindustry.gray_concrete_stairs": "Escaleras de hormigón gris",
|
||||
"block.createindustry.gray_concrete_wall": "Muro de hormigón gris",
|
||||
"block.createindustry.green_concrete": "Hormigón verde",
|
||||
"block.createindustry.green_concrete_slab": "Losa de hormigón verde",
|
||||
"block.createindustry.green_concrete_stairs": "Escaleras de hormigón verde",
|
||||
"block.createindustry.green_concrete_wall": "Muro de hormigón verde",
|
||||
"block.createindustry.hardened_planks": "Tablas endurecidas",
|
||||
"block.createindustry.heavy_casing_door": "Puerta de carcasa pesada",
|
||||
"block.createindustry.heavy_machinery_casing": "Carcasa de maquinaria pesada",
|
||||
"block.createindustry.heavy_oil": "Petróleo pesado",
|
||||
"block.createindustry.industrial_pipe": "Tubería industrial",
|
||||
"block.createindustry.kerosene": "Queroseno",
|
||||
"block.createindustry.layered_bauxite": "Bauxita en capas",
|
||||
"block.createindustry.light_blue_concrete": "Hormigón azul claro",
|
||||
"block.createindustry.light_blue_concrete_slab": "Losa de hormigón azul claro",
|
||||
"block.createindustry.light_blue_concrete_stairs": "Escaleras de hormigón azul claro",
|
||||
"block.createindustry.light_blue_concrete_wall": "Muro de hormigón azul claro",
|
||||
"block.createindustry.light_gray_concrete": "Hormigón gris claro",
|
||||
"block.createindustry.light_gray_concrete_slab": "Losa de hormigón gris claro",
|
||||
"block.createindustry.light_gray_concrete_stairs": "Escaleras de hormigón gris claro",
|
||||
"block.createindustry.light_gray_concrete_wall": "Muro de hormigón gris claro",
|
||||
"block.createindustry.lignite": "Lignito",
|
||||
"block.createindustry.lime_concrete": "Hormigón ",
|
||||
"block.createindustry.lime_concrete_slab": "Losa de hormigón verde lima",
|
||||
"block.createindustry.lime_concrete_stairs": "Escaleras de hormigón verde lima",
|
||||
"block.createindustry.lime_concrete_wall": "Muro de hormigón verde lima",
|
||||
"block.createindustry.limesand": "Cal",
|
||||
"block.createindustry.liquid_asphalt": "Asfalto líquido",
|
||||
"block.createindustry.liquid_concrete": "Hormigón líquido",
|
||||
"block.createindustry.liquid_plastic": "Plástico líquido",
|
||||
"block.createindustry.lpg_engine": "Motor GLP",
|
||||
"block.createindustry.lpg_engine_back": "Motor GLP trasero",
|
||||
"block.createindustry.lubrication_oil": "Aceite lubricante",
|
||||
"block.createindustry.machine_input": "Entrada de Pumpjack",
|
||||
"block.createindustry.magenta_concrete": "Hormigón magenta",
|
||||
"block.createindustry.magenta_concrete_slab": "Losa de hormigón magenta",
|
||||
"block.createindustry.magenta_concrete_stairs": "Escaleras de hormigón magenta",
|
||||
"block.createindustry.magenta_concrete_wall": "Muro de hormigón magenta",
|
||||
"block.createindustry.molten_metal": "Metal fundido",
|
||||
"block.createindustry.molten_slag": "Escoria fundida",
|
||||
"block.createindustry.molten_steel": "Acero fundido",
|
||||
"block.createindustry.napalm": "Napalm",
|
||||
"block.createindustry.napalm_bomb": "Bomba de napalm",
|
||||
"block.createindustry.nafta": "Nafta",
|
||||
"block.createindustry.oil_deposit": "Depósito de petróleo",
|
||||
"block.createindustry.orange_concrete": "Hormigón naranja",
|
||||
"block.createindustry.orange_concrete_slab": "Losa de hormigón naranja",
|
||||
"block.createindustry.orange_concrete_stairs": "Escaleras de hormigón naranja",
|
||||
"block.createindustry.orange_concrete_wall": "Muro de hormigón naranja",
|
||||
"block.createindustry.pink_concrete": "Hormigón rosa",
|
||||
"block.createindustry.pink_concrete_slab": "Losa de hormigón rosa",
|
||||
"block.createindustry.pink_concrete_stairs": "Escaleras de hormigón rosa",
|
||||
"block.createindustry.pink_concrete_wall": "Muro de hormigón rosa",
|
||||
"block.createindustry.plastic_block": "Bloque de plástico",
|
||||
"block.createindustry.plastic_fluid_valve": "Válvula de fluidos de plástico",
|
||||
"block.createindustry.plastic_mechanical_pump": "Bomba mecánica de plástico",
|
||||
"block.createindustry.plastic_pipe": "Tubería de plástico",
|
||||
"block.createindustry.plastic_smart_fluid_pipe": "Tubería de fluidos inteligente de plástico",
|
||||
"block.createindustry.polished_cut_bauxite": "Bauxita cortada pulida",
|
||||
"block.createindustry.polished_cut_bauxite_slab": "Losa de bauxita cortada pulida",
|
||||
"block.createindustry.polished_cut_bauxite_stairs": "Escaleras de bauxita cortada pulida",
|
||||
"block.createindustry.polished_cut_bauxite_wall": "Muro de bauxita cortada pulida",
|
||||
"block.createindustry.pumpjack_base": "Base de Pumpjack",
|
||||
"block.createindustry.pumpjack_crank": "Manivela de Pumpjack",
|
||||
"block.createindustry.pumpjack_hammer_holder": "Soporte de Pumpjack",
|
||||
"block.createindustry.purple_concrete": "Hormigón morado",
|
||||
"block.createindustry.purple_concrete_slab": "Losa de hormigón morado",
|
||||
"block.createindustry.purple_concrete_stairs": "Escaleras de hormigón morado",
|
||||
"block.createindustry.purple_concrete_wall": "Muro de hormigón morado",
|
||||
"block.createindustry.rebar_concrete": "Hormigón reforzado",
|
||||
"block.createindustry.rebar_concrete_slab": "Losa de hormigón con barras de refuerzo",
|
||||
"block.createindustry.rebar_concrete_stairs": "Escaleras de hormigón con barras de refuerzo",
|
||||
"block.createindustry.rebar_concrete_wall": "Muro de hormigón con barras de refuerzo",
|
||||
"block.createindustry.rebar_formwork_block": "Bloque de encofrado de barras de refuerzo",
|
||||
"block.createindustry.red_caution_block": "Bloque de precaución rojo",
|
||||
"block.createindustry.red_concrete": "Hormigón rojo",
|
||||
"block.createindustry.red_concrete_slab": "Losa de hormigón rojo",
|
||||
"block.createindustry.red_concrete_stairs": "Escaleras de hormigón rojo",
|
||||
"block.createindustry.red_concrete_wall": "Muro de hormigón rojo",
|
||||
"block.createindustry.small_bauxite_brick_slab": "Pequeña losa de ladrillos de bauxita",
|
||||
"block.createindustry.small_bauxite_brick_stairs": "Escaleras pequeñas de ladrillos de bauxita",
|
||||
"block.createindustry.small_bauxite_brick_wall": "Pequeño muro de ladrillos de bauxita",
|
||||
"block.createindustry.small_bauxite_bricks": "Pequeños ladrillos de bauxita",
|
||||
"block.createindustry.steel_bars": "Barras de acero",
|
||||
"block.createindustry.steel_block": "Bloque de acero",
|
||||
"block.createindustry.steel_casing": "Carcasa de acero",
|
||||
"block.createindustry.steel_distillation_controller": "Controlador de destilación de acero",
|
||||
"block.createindustry.steel_distillation_output": "Salida de destilación de acero",
|
||||
"block.createindustry.steel_door": "Puerta de acero",
|
||||
"block.createindustry.steel_fluid_tank": "Tanque de fluidos de acero",
|
||||
"block.createindustry.steel_fluid_valve": "Válvula de fluidos de acero",
|
||||
"block.createindustry.steel_flywheel": "Rueda de inercia de acero",
|
||||
"block.createindustry.steel_ladder": "Escalera de acero",
|
||||
"block.createindustry.steel_mechanical_pump": "Bomba mecánica de acero",
|
||||
"block.createindustry.steel_pipe": "Tubería de acero",
|
||||
"block.createindustry.steel_scaffolding": "Andamios de acero",
|
||||
"block.createindustry.steel_smart_fluid_pipe": "Tubería de fluidos inteligente de acero",
|
||||
"block.createindustry.steel_truss": "Armazón de acero",
|
||||
"block.createindustry.sulfur": "Azufre",
|
||||
"block.createindustry.surface_scanner": "Escáner de superficie",
|
||||
"block.createindustry.turbine_engine": "Motor de turbina",
|
||||
"block.createindustry.turbine_engine_back": "Motor de turbina trasero",
|
||||
"block.createindustry.white_concrete": "Hormigón blanco",
|
||||
"block.createindustry.white_concrete_slab": "Losa de hormigón blanco",
|
||||
"block.createindustry.white_concrete_stairs": "Escaleras de hormigón blanco",
|
||||
"block.createindustry.white_concrete_wall": "Muro de hormigón blanco",
|
||||
"block.createindustry.Yellow_concrete": "Hormigón amarillo",
|
||||
"block.createindustry.Yellow_concrete_slab": "Losa de hormigón amarillo",
|
||||
"block.createindustry.Yellow_concrete_stairs": "Escaleras de hormigón amarillo",
|
||||
"block.createindustry.Yellow_concrete_wall": "Muro de hormigón amarillo",
|
||||
|
||||
"entity.createindustry.blue_spark": "Chispa azul",
|
||||
"entity.createindustry.copper_grenade": "Granada de cobre",
|
||||
"entity.createindustry.green_spark": "Chispa verde",
|
||||
"entity.createindustry.napalm_bomb_entity": "Entidad de la bomba de napalm",
|
||||
"entity.createindustry.spark": "Chispa",
|
||||
"entity.createindustry.thermite_grenade": "Granada termita",
|
||||
"entity.createindustry.zin_grenade": "Granada zin",
|
||||
|
||||
"fluid.createindustry.air": "Aire",
|
||||
"fluid.createindustry.butane": "Butano",
|
||||
"fluid.createindustry.carbon_dioxide": "Dióxido de carbono",
|
||||
"fluid.createindustry.cooling_fluid": "Líquido refrigerante",
|
||||
"fluid.createindustry.creosote": "Creosota",
|
||||
"fluid.createindustry.crude_oil_fluid": "Petróleo crudo",
|
||||
"fluid.createindustry.diesel": "Diésel",
|
||||
"fluid.createindustry.etileno": "Etileno",
|
||||
"fluid.createindustry.gasoline": "Gasolina",
|
||||
"fluid.createindustry.heavy_oil": "Aceite pesado",
|
||||
"fluid.createindustry.kerosene": "Queroseno",
|
||||
"fluid.createindustry.liquid_asphalt": "Asfalto líquido",
|
||||
"fluid.createindustry.liquid_concrete": "Hormigón líquido",
|
||||
"fluid.createindustry.liquid_plastic": "Plástico líquido",
|
||||
"fluid.createindustry.lpg": "GLP",
|
||||
"fluid.createindustry.lubrication_oil": "Aceite lubricante",
|
||||
"fluid.createindustry.molten_slag": "Escoria fundida",
|
||||
"fluid.createindustry.molten_steel": "Acero fundido",
|
||||
"fluid.createindustry.napalm": "Napalm",
|
||||
"fluid.createindustry.nafta": "Nafta",
|
||||
"fluid.createindustry.propane": "Propano",
|
||||
"fluid.createindustry.propylene": "Propileno",
|
||||
|
||||
"item.createindustry.aluminum_ingot": "Lingote de aluminio",
|
||||
"item.createindustry.bitumen": "Betún",
|
||||
"item.createindustry.blasting_mixture": "Mezcla de voladura",
|
||||
"item.createindustry.block_mold": "Molde de bloque",
|
||||
"item.createindustry.cast_iron_ingot": "Lingote de hierro fundido",
|
||||
"item.createindustry.charcoal_dust": "Polvo de carbón",
|
||||
"item.createindustry.coal_coke": "Coque de carbón",
|
||||
"item.createindustry.coal_coke_dust": "Polvo de coque de carbón",
|
||||
"item.createindustry.cooling_fluid_bucket": "Cubo de líquido refrigerante",
|
||||
"item.createindustry.copper_grenade": "Granada de cobre",
|
||||
"item.createindustry.creosote_bucket": "Cubo de creosota",
|
||||
"item.createindustry.crude_oil_fluid_bucket": "Cubo de petróleo crudo",
|
||||
"item.createindustry.diesel_bucket": "Cubo de diésel",
|
||||
"item.createindustry.engine_base": "Base de motor",
|
||||
"item.createindustry.engine_chamber": "Cámara de motor",
|
||||
"item.createindustry.fireclay_ball": "Bola de arcilla refractaria",
|
||||
"item.createindustry.fireproof_brick": "Ladrillo ignífugo",
|
||||
"item.createindustry.gasoline_bucket": "Cubo de gasolina",
|
||||
"item.createindustry.heavy_oil_bucket": "Cubo de petróleo pesado",
|
||||
"item.createindustry.heavy_plate": "Placa pesada",
|
||||
"item.createindustry.ingot_mold": "Lingoteador",
|
||||
"item.createindustry.kerosene_bucket": "Cubo de queroseno",
|
||||
"item.createindustry.liquid_asphalt_bucket": "Cubo de asfalto líquido",
|
||||
"item.createindustry.liquid_concrete_bucket": "Cubo de Hormigón líquido",
|
||||
"item.createindustry.liquid_plastic_bucket": "Cubo de plástico líquido",
|
||||
"item.createindustry.lubrication_oil_bucket": "Cubo de aceite lubricante",
|
||||
"item.createindustry.molten_slag_bucket": "Cubo para escoria fundida",
|
||||
"item.createindustry.molten_steel_bucket": "Cubo de acero fundido",
|
||||
"item.createindustry.napalm_bucket": "Cubo de napalm",
|
||||
"item.createindustry.naphtha_bucket": "Cubo de nafta",
|
||||
"item.createindustry.nitrate_dust": "Polvo de nitrato",
|
||||
"item.createindustry.plastic_sheet": "Hoja de plástico",
|
||||
"item.createindustry.quad_potato_cannon": "Cañón de patatas cuádruple",
|
||||
"item.createindustry.rebar": "Barra de refuerzo",
|
||||
"item.createindustry.screw": "Tornillo",
|
||||
"item.createindustry.screwdriver": "Destornillador",
|
||||
"item.createindustry.slag": "Escoria",
|
||||
"item.createindustry.spark_plug": "Bujía",
|
||||
"item.createindustry.steel_ingot": "Lingote de acero",
|
||||
"item.createindustry.steel_mechanism": "Mecanismo de acero",
|
||||
"item.createindustry.sulfur_dust": "Polvo de azufre",
|
||||
"item.createindustry.thermite_grenade": "Granada termita",
|
||||
"item.createindustry.thermite_powder": "Polvo de termita",
|
||||
"item.createindustry.turbine_blade": "Hélice de turbina",
|
||||
"item.createindustry.unfinished_gasoline_engine": "Motor de gasolina sin terminar",
|
||||
"item.createindustry.unfinished_lpg_engine": "Motor de GLP sin terminar",
|
||||
"item.createindustry.unfinished_steel_mechanism": "Mecanismo de acero sin terminar",
|
||||
"item.createindustry.unfinished_turbine_engine": "Motor de turbina sin terminar",
|
||||
"item.createindustry.unprocessed_heavy_plate": "Placa pesada sin procesar",
|
||||
"item.createindustry.zinc_grenade": "Granada de zinc",
|
||||
|
||||
"itemGroup.createindustry.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.createindustry.building": "Create: TFMG Building Blocks",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.percent_symbol": "%",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_tres": "...",
|
||||
"create.goggles.misc.storage_info": "Información de almacenamiento:",
|
||||
"create.goggles.fluid_in_tank": "Contenido del tanque:",
|
||||
"create.goggles.surface_scanner.no_rotation": "Máquina apagada",
|
||||
"create.goggles.surface_scanner.no_deposit": "No se encontró ningún depósito",
|
||||
"create.goggles.surface_scanner.deposit_found": "¡Depósito ubicado!",
|
||||
"create.goggles.surface_scanner.distance": "Distancia: %1$s Bloques",
|
||||
"create.goggles.surface_scanner.scanning_surface": "Escaneando la superficie...",
|
||||
"create.goggles.distillation_tower.status": "Información de la torre de destilación:",
|
||||
"create.goggles.distillation_tower.tank_not_found": "Tanque de fluidos de acero no encontrado",
|
||||
"create.goggles.distillation_tower.not_tall_enough": "El tanque de fluidos es demasiado corto",
|
||||
"create.goggles.distillation_tower.level": "Nivel de la torre de destilación: %1$s",
|
||||
"create.goggles.distillation_tower.found_outputs": "Número de salidas: %1$s",
|
||||
"create.goggles.distillation_tower.no_outputs": "No se encontraron bloques de salida",
|
||||
"create.goggles.blast_furnace.stats": "Alto Horno:",
|
||||
"create.goggles.blast_furnace.size_stats": "Tamaño:",
|
||||
"create.goggles.blast_furnace.fuel_amount": "Cantidad de combustible: %1$s",
|
||||
"create.goggles.blast_furnace.item_count": "Recuento de artículos: %1$s",
|
||||
"create.goggles.blast_furnace.height": "Altura: %1$s",
|
||||
"create.goggles.blast_furnace.nothing_lol": "",
|
||||
"create.goggles.blast_furnace.status.off": "Estado: Inactivo",
|
||||
"create.goggles.blast_furnace.status.running": "Estado: En ejecución",
|
||||
"create.goggles.blast_furnace.diameter.one": "Diámetro: 1",
|
||||
"create.goggles.blast_furnace.diameter.two": "Diámetro: 2",
|
||||
"create.goggles.blast_furnace.invalid": "Alto horno no válido",
|
||||
"create.goggles.coke_oven.status": "Horno de coque:",
|
||||
"create.goggles.coke_oven.fluid_amount_output": "Contenido interno del tanque: %1$s mb",
|
||||
"create.goggles.coke_oven.fluid_amount_exhaust": "Dióxido de carbono: %1$s mb",
|
||||
"create.goggles.coke_oven.item_count": "Recuento de elementos de almacenamiento interno: %1$s",
|
||||
"create.goggles.coke_oven.invalid": "Horno de coque no válido",
|
||||
"create.goggles.coke_oven.tank_full": "Un tanque interno está lleno",
|
||||
"create.goggles.coke_oven.progress": "Progreso: %1$s",
|
||||
"create.goggles.engine_stats": "Estadísticas del motor:",
|
||||
"create.goggles.engine_exhaust_stats": "Estadísticas de salida de gases del motor:",
|
||||
"create.goggles.fuel_container": "Almacenamiento de fluidos",
|
||||
"create.goggles.engine.backpartmissing": "Falta la parte trasera:",
|
||||
"create.goggles.engine_redstone_input": "Velocidad:",
|
||||
"create.goggles.engine.efficiency": "Eficiencia:",
|
||||
|
||||
"create.tooltip.engine_analog_strength": "%1$s/15",
|
||||
|
||||
"create.goggles.get_engine_efficiency": "%1$s",
|
||||
"create.goggles.engine.stress": "%1$ssu",
|
||||
"create.goggles.diesel_engine.info": "Motor diésel:",
|
||||
"create.goggles.pumpjack_info": "Información de Pumpjack:",
|
||||
"create.goggles.pumpjack.part_missing": "Falta el martillo o la manivela",
|
||||
"create.goggles.pumpjack.wrong_rotation1": "La base del Pumpjack está orientada incorrectamente, el marcador rojo debe",
|
||||
"create.goggles.pumpjack.wrong_rotation2": "estar de espaldas al soporte del martillo Pumpjack",
|
||||
"create.goggles.pumpjack_fluid_storage": "Información del tanque de fluido:",
|
||||
|
||||
"create.pumpjack_deposit_amount": "%1$s cubos",
|
||||
|
||||
"create.goggles.pumpjack.deposit_info": "Información del depósito:",
|
||||
"create.goggles.zero": "No se encontró ningún depósito",
|
||||
"create.goggles.pumpjack.fluid_amount": "Cantidad de líquido:",
|
||||
"create.goggles.machine_input.info": "Información de entrada de la máquina",
|
||||
"create.goggles.machine_input.no_rot": "¡No se ha proporcionado rotación!",
|
||||
"create.goggles.machine_input.power_level": "Nivel de potencia: ",
|
||||
|
||||
"create.recipe.distillation": "Destilación",
|
||||
"create.recipe.advanced_distillation": "Destilación avanzada",
|
||||
"create.recipe.industrial_blasting": "Voladuras industriales",
|
||||
"create.recipe.casting": "Transmisión",
|
||||
"create.recipe.coking": "Coquización",
|
||||
|
||||
|
||||
"createindustry.subtitle.engine_sounds": "Sonidos de motor",
|
||||
"createindustry.subtitle.diesel_engine_sounds": "Sonidos de motor diésel",
|
||||
|
||||
|
||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||
|
||||
|
||||
"create.distillation_tower.size": "Tamaño",
|
||||
"create.distillation_tower.heat": "Calor",
|
||||
|
||||
|
||||
"_": "->------------------------] Ponders [------------------------<-",
|
||||
|
||||
"createindustry.ponder.small_engines.text_1": "Para crear un motor pequeño, coloque las partes delantera y trasera una al lado de la otra",
|
||||
"createindustry.ponder.small_engines.text_2": "El combustible se introduce en la parte delantera y los gases deben eliminarse desde la parte trasera utilizando tubos de escape",
|
||||
"createindustry.ponder.small_engines.text_3": "Aplicar una señal de redstone a la parte delantera para arranca el motor",
|
||||
"createindustry.ponder.small_engines.text_4": "Los motores pequeños pueden ser de GLP, queroseno y gasolina",
|
||||
"createindustry.ponder.diesel_engine.text_1": "Los motores diésel se ensamblan colocando un eje delante de un bloque de motor diésel",
|
||||
"createindustry.ponder.diesel_engine.text_2": "El motor produce gases que deben eliminarse con tubos de escape",
|
||||
"createindustry.ponder.diesel_engine.text_3": "Se necesita aire para que el motor funcione, por lo que se requiere una entrada de aire",
|
||||
"createindustry.ponder.diesel_engine_expansion.text_1": "Las expansiones de motor diésel pueden darle a un motor diésel dos nuevas ranuras de entrada, para lubricación y líquido refrigerante",
|
||||
"createindustry.ponder.surface_scanner.text_1": "El escáner de superficie se utiliza para localizar depósitos de petróleo crudo",
|
||||
"createindustry.ponder.surface_scanner.text_2": "Proporcionar a la máquina rotación hace que busque el depósito más cercano",
|
||||
"createindustry.ponder.surface_scanner.text_3": "Si se encuentra un depósito, la brújula señalará su ubicación",
|
||||
"createindustry.ponder.pumpjack.text_1": "Para comenzar a extraer petróleo, primero debes construir un oleoducto encima de un depósito utilizando tuberías industriales",
|
||||
"createindustry.ponder.pumpjack.text_2": "Luego, construye un Pumpjack encima de la tubería colocando primero una base de Pumpjack...",
|
||||
"createindustry.ponder.pumpjack.text_3": "Colocando el martillo detrás...",
|
||||
"createindustry.ponder.pumpjack.text_4": "Y finalmente, colocando la entrada de rotación con una manivela Pumpjack encima, como se muestra en la escena",
|
||||
"createindustry.ponder.distillation_tower.text_1": "Un tanque de fluidos de acero suficientemente grande se puede convertir en una torre de destilación",
|
||||
"createindustry.ponder.distillation_tower.text_2": "La torre se ensambla colocando primero un controlador de torre de destilación de acero al lado del tanque...",
|
||||
"createindustry.ponder.distillation_tower.text_3": "Y colocando hasta 6 salidas de torre de destilación, todas conectadas con tuberías industriales",
|
||||
"createindustry.ponder.distillation_tower.text_4": "Se requieren quemadores Blaze para hacer funcionar la torre de destilación. El dial muestra los niveles de potencia actuales",
|
||||
"createindustry.ponder.distillation_tower.text_5": "Para ingresar petróleo crudo, se debe bombear al bloque controlador",
|
||||
"createindustry.ponder.distillation_tower.text_6": "Cada bloque de salida proporciona uno de los subproductos del petróleo",
|
||||
"createindustry.ponder.distillation_tower.text_7": "GLP",
|
||||
"createindustry.ponder.distillation_tower.text_8": "Gasolina",
|
||||
"createindustry.ponder.distillation_tower.text_9": "Nafta",
|
||||
"createindustry.ponder.distillation_tower.text_10": "Queroseno",
|
||||
"createindustry.ponder.distillation_tower.text_11": "Diésel",
|
||||
"createindustry.ponder.distillation_tower.text_12": "Petróleo pesado",
|
||||
"createindustry.ponder.blast_furnace.text_1": "La base del Alto Horno es un bloque de salida del alto horno",
|
||||
"createindustry.ponder.blast_furnace.text_2": "Para ensamblar un Alto Horno, construye una chimenea usando ladrillos ignífugos como se muestra en la escena",
|
||||
"createindustry.ponder.blast_furnace.text_3": "Es necesario reforzar la mitad inferior de la chimenea",
|
||||
"createindustry.ponder.blast_furnace.text_4": "El combustible y otros artículos se insertan a través de la abertura en la parte superior",
|
||||
"createindustry.ponder.coke_oven.text_1": "El horno de coque se construye colocando bloques de horno de coque como se muestra en la escena y haciendo clic en su costado con una llave",
|
||||
"createindustry.ponder.coke_oven.text_2": "El proceso de coquización es lento, por lo que es más eficiente tener largas filas de hornos funcionando simultáneamente",
|
||||
"createindustry.ponder.coke_oven.text_3": "El carbón se puede introducir por cualquier lado",
|
||||
"createindustry.ponder.coke_oven.text_4": "Mientras está en funcionamiento, el horno produce creosota y CO2 que deben ser expulsados para que funcione",
|
||||
"createindustry.ponder.coke_oven.text_5": "Una vez hecho esto, el coque de carbón saldrá de la abertura",
|
||||
"createindustry.ponder.casting.text_1": "La fundición es el proceso de verter metal líquido en un recipiente de fundición utilizando un caño de fundición",
|
||||
"createindustry.ponder.casting.text_2": "La cuenca de fundición, obviamente, requiere un molde para funcionar",
|
||||
|
||||
"createindustry.ponder.distillation_tower.header": "Configuración de la torre de destilación",
|
||||
|
||||
"createindustry.ponder.pumpjack.header": "Construyendo Pumpjacks",
|
||||
|
||||
"createindustry.ponder.surface_scanner.header": "Localización de petróleo",
|
||||
|
||||
"createindustry.ponder.diesel_engine.header": "Construcción de un motor diésel",
|
||||
|
||||
"createindustry.ponder.diesel_engine_expansion.header": "Motores diésel en expansión",
|
||||
|
||||
"createindustry.ponder.small_engines.header": "Construcción de motores pequeños",
|
||||
|
||||
"createindustry.ponder.coke_oven.header": "Construcción de un horno de coque",
|
||||
"createindustry.ponder.blast_furnace": "Construcción de un alto horno",
|
||||
|
||||
"createindustry.ponder.casting.header": "Fundición de metal",
|
||||
"createindustry.ponder.tag.oil": "Máquinas relacionadas con el petróleo",
|
||||
"createindustry.ponder.tag.metallurgy": "Máquinas para trabajar metales",
|
||||
"createindustry.ponder.tag.oil.description": "Máquinas que extraen, procesan o utilizan petróleo crudo y sus derivados",
|
||||
"createindustry.ponder.tag.metallurgy.description": "Máquinas que producen, procesan o utilizan metal y materias primas como tales",
|
||||
|
||||
"_": "Thank you for translating Create: The Factory Must Grow!"
|
||||
|
||||
}
|
||||
432
src/main/resources/assets/createindustry/lang/pl_pl.json
Normal file
@@ -0,0 +1,432 @@
|
||||
{
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.createindustry.air_intake": "Wlot Powietrza",
|
||||
"block.createindustry.aluminum_bars": "Aluminiowe Kraty",
|
||||
"block.createindustry.aluminum_block": "Blok Aluminium",
|
||||
"block.createindustry.aluminum_fluid_valve": "Aluminiowy Zawór",
|
||||
"block.createindustry.aluminum_flywheel": "Aluminiowe Koło Zamachowe",
|
||||
"block.createindustry.aluminum_ladder": "Aluminiowa Drabina",
|
||||
"block.createindustry.aluminum_mechanical_pump": "Aluminiowa Pompa",
|
||||
"block.createindustry.aluminum_pipe": "Aluminiowa Rura",
|
||||
"block.createindustry.aluminum_scaffolding": "Aluminiowe Rusztowanie",
|
||||
"block.createindustry.aluminum_smart_fluid_pipe": "Aluminiowa Inteligenta Rura",
|
||||
"block.createindustry.aluminum_truss": "Aluminiowa Kratownica",
|
||||
"block.createindustry.asphalt": "Asfalt",
|
||||
"block.createindustry.bauxite": "Boksyt",
|
||||
"block.createindustry.bauxite_pillar": "Boksytowy Filar",
|
||||
"block.createindustry.black_concrete": "Czarny Beton",
|
||||
"block.createindustry.black_concrete_slab": "Czarna Betonowa Płyta",
|
||||
"block.createindustry.black_concrete_stairs": "Czarne Betonowe Schody",
|
||||
"block.createindustry.black_concrete_wall": "Czarny Betonowy Murek",
|
||||
"block.createindustry.blast_furnace_output": "Wyjście Pieca Hutniczego",
|
||||
"block.createindustry.blue_concrete": "Niebieski Beton",
|
||||
"block.createindustry.blue_concrete_slab": "Niebieska Betonowa Płyta",
|
||||
"block.createindustry.blue_concrete_stairs": "Niebieskie Betonowe Schody",
|
||||
"block.createindustry.blue_concrete_wall": "Niebieski Betonowy Murek",
|
||||
"block.createindustry.brass_fluid_valve": "Mosiężny Zawór",
|
||||
"block.createindustry.brass_mechanical_pump": "Mosiężna Pompa",
|
||||
"block.createindustry.brass_pipe": "Mosiężna Rura",
|
||||
"block.createindustry.brass_smart_fluid_pipe": "Mosiężna Inteligentna Rura",
|
||||
"block.createindustry.brown_concrete": "Brązowy Beton",
|
||||
"block.createindustry.brown_concrete_slab": "Brązowa Betonowa Płyta",
|
||||
"block.createindustry.brown_concrete_stairs": "Brązowe Betonowe Schody",
|
||||
"block.createindustry.brown_concrete_wall": "Brązowy Betonowy Murek",
|
||||
"block.createindustry.cast_iron_block": "Blok Żeliwa",
|
||||
"block.createindustry.cast_iron_distillation_controller": "Żeliwny Kontroler Destylacji",
|
||||
"block.createindustry.cast_iron_distillation_output": "Żeliwne Wyjście Destylatora",
|
||||
"block.createindustry.cast_iron_fluid_valve": "Żeliwny Zawór",
|
||||
"block.createindustry.cast_iron_flywheel": "Żeliwne Koło Zamachowe",
|
||||
"block.createindustry.cast_iron_mechanical_pump": "Żeliwna Pompa",
|
||||
"block.createindustry.cast_iron_pipe": "Żeliwna Rura",
|
||||
"block.createindustry.cast_iron_smart_fluid_pipe": "Żeliwna Inteligentna Rura",
|
||||
"block.createindustry.casting_basin": "Tygiel Odlewniczy",
|
||||
"block.createindustry.casting_spout": "Napełniacz Odlewniczy",
|
||||
"block.createindustry.caution_block": "Blok Ostrzeżenia",
|
||||
"block.createindustry.cement": "Cement",
|
||||
"block.createindustry.coal_coke_block": "Blok Koksu Węglowego",
|
||||
"block.createindustry.coke_oven": "Piec Koksowniczy",
|
||||
"block.createindustry.concrete": "Beton",
|
||||
"block.createindustry.concrete_slab": "Betonowa Płyta",
|
||||
"block.createindustry.concrete_stairs": "Betonowe Schody",
|
||||
"block.createindustry.concrete_wall": "Betonowy Murek",
|
||||
"block.createindustry.cooling_fluid": "Płyn Chłodzący",
|
||||
"block.createindustry.copper_encased_aluminum_pipe": "Copper Encased Aluminum Pipe",
|
||||
"block.createindustry.copper_encased_brass_pipe": "Copper Encased Brass Pipe",
|
||||
"block.createindustry.copper_encased_cast_iron_pipe": "Copper Encased Cast Iron Pipe",
|
||||
"block.createindustry.copper_encased_plastic_pipe": "Copper Encased Plastic Pipe",
|
||||
"block.createindustry.copper_encased_steel_pipe": "Copper Encased Steel Pipe",
|
||||
"block.createindustry.creosote": "Kreozot",
|
||||
"block.createindustry.crude_oil_fluid": "Ropa Naftowa",
|
||||
"block.createindustry.cut_bauxite": "Przycięty Boksyt",
|
||||
"block.createindustry.cut_bauxite_brick_slab": "Przycięta Wypolerowana Buksytowa Płyta",
|
||||
"block.createindustry.cut_bauxite_brick_stairs": "Przycięte Buksytowe Ceglane Schody",
|
||||
"block.createindustry.cut_bauxite_brick_wall": "Przycięty Buksytowy Ceglany Murek",
|
||||
"block.createindustry.cut_bauxite_bricks": "Przycięte Buksytowe Cegły",
|
||||
"block.createindustry.cut_bauxite_slab": "Przycięta Buksytowa Płyta",
|
||||
"block.createindustry.cut_bauxite_stairs": "Przycięte Buksytowe Schody",
|
||||
"block.createindustry.cut_bauxite_wall": "Przycięty Buksytowy Murek",
|
||||
"block.createindustry.cyan_concrete": "Błękitny Beton",
|
||||
"block.createindustry.cyan_concrete_slab": "Błękitna Betonowa Płyta",
|
||||
"block.createindustry.cyan_concrete_stairs": "Błękitne Betonowe Schody",
|
||||
"block.createindustry.cyan_concrete_wall": "Błękitny Betonowy Murek",
|
||||
"block.createindustry.diesel": "Olej Napędowy",
|
||||
"block.createindustry.diesel_engine": "Silnik Wysokoprężny",
|
||||
"block.createindustry.diesel_engine_expansion": "Rozszerzenie Silnika Wysokoprężnego",
|
||||
"block.createindustry.exhaust": "Wydech",
|
||||
"block.createindustry.factory_floor": "Podłoga Fabryczna",
|
||||
"block.createindustry.factory_floor_slab": "Płyta Podłogi Fabrycznej",
|
||||
"block.createindustry.factory_floor_stairs": "Schody Podłogi Fabrycznej",
|
||||
"block.createindustry.fireclay": "Szamot",
|
||||
"block.createindustry.fireproof_brick_reinforcement": "Podpora z Cegieł Ognioodpornych",
|
||||
"block.createindustry.fireproof_bricks": "Ognioodporne Cegły",
|
||||
"block.createindustry.flarestack": "Flara Gazowa",
|
||||
"block.createindustry.formwork_block": "Formwork Block",
|
||||
"block.createindustry.fossilstone": "Skamieniały Blok",
|
||||
"block.createindustry.gasoline": "Benzyna",
|
||||
"block.createindustry.gasoline_engine": "Silnik Benzynowy",
|
||||
"block.createindustry.gasoline_engine_back": "Tył Silnika Benzynowego",
|
||||
"block.createindustry.glass_aluminum_pipe": "Glass Aluminum Pipe",
|
||||
"block.createindustry.glass_brass_pipe": "Glass Brass Pipe",
|
||||
"block.createindustry.glass_cast_iron_pipe": "Glass Cast Iron Pipe",
|
||||
"block.createindustry.glass_plastic_pipe": "Glass Plastic Pipe",
|
||||
"block.createindustry.glass_steel_pipe": "Glass Steel Pipe",
|
||||
"block.createindustry.gray_concrete": "Szary Beton",
|
||||
"block.createindustry.gray_concrete_slab": "Szara Betonowa Płyta",
|
||||
"block.createindustry.gray_concrete_stairs": "Szare Betonowe Schody",
|
||||
"block.createindustry.gray_concrete_wall": "Szary Betonowy Murek",
|
||||
"block.createindustry.green_concrete": "Zielony Beton",
|
||||
"block.createindustry.green_concrete_slab": "Zielona Betonowa Płyta",
|
||||
"block.createindustry.green_concrete_stairs": "Zielone Betonowe Schody",
|
||||
"block.createindustry.green_concrete_wall": "Zielony Betonowy Murek",
|
||||
"block.createindustry.hardened_planks": "Utwardzone Deski",
|
||||
"block.createindustry.heavy_casing_door": "Ciężkie Obudowane Drzwi",
|
||||
"block.createindustry.heavy_machinery_casing": "Ciężka Obudowa Maszynowa",
|
||||
"block.createindustry.heavy_oil": "Ciężki Olej",
|
||||
"block.createindustry.industrial_pipe": "Przemysłowa Rura",
|
||||
"block.createindustry.kerosene": "Nafta",
|
||||
"block.createindustry.layered_bauxite": "Warstwowy Boksyt",
|
||||
"block.createindustry.light_blue_concrete": "Jasnoniebieski Beton",
|
||||
"block.createindustry.light_blue_concrete_slab": "Jasnoniebieska Betonowa Płyta",
|
||||
"block.createindustry.light_blue_concrete_stairs": "Jasnoniebieskie Betonowe Schody",
|
||||
"block.createindustry.light_blue_concrete_wall": "Jasnoniebieski Betonowy Murek",
|
||||
"block.createindustry.light_gray_concrete": "Jasnoszary Beton",
|
||||
"block.createindustry.light_gray_concrete_slab": "Jasnoniebieska Betonowa Płyta",
|
||||
"block.createindustry.light_gray_concrete_stairs": "Jasnoszare Betonowe Schody",
|
||||
"block.createindustry.light_gray_concrete_wall": "Jasnoszary Betonowy Murek",
|
||||
"block.createindustry.lignite": "Węgiel Brunatny",
|
||||
"block.createindustry.lime_concrete": "Jasnozielony Beton",
|
||||
"block.createindustry.lime_concrete_slab": "Jasnozielona Betonowa Płyta",
|
||||
"block.createindustry.lime_concrete_stairs": "Jasnozielone Betonowe Schody",
|
||||
"block.createindustry.lime_concrete_wall": "Jasnozielony Betonowy Murek",
|
||||
"block.createindustry.limesand": "Piasek Wapienny",
|
||||
"block.createindustry.liquid_asphalt": "Płynny Asfalt",
|
||||
"block.createindustry.liquid_concrete": "Płynny Beton",
|
||||
"block.createindustry.liquid_plastic": "Płynny Plastik",
|
||||
"block.createindustry.lpg_engine": "Silnik LPG",
|
||||
"block.createindustry.lpg_engine_back": "Tył Silnika LPG",
|
||||
"block.createindustry.lubrication_oil": "Smar",
|
||||
"block.createindustry.machine_input": "Wejście Maszyny",
|
||||
"block.createindustry.magenta_concrete": "Karmazynowy Beton",
|
||||
"block.createindustry.magenta_concrete_slab": "Karmazynowa Betonowa Płyta",
|
||||
"block.createindustry.magenta_concrete_stairs": "Karmazynowe Betonowe Schody",
|
||||
"block.createindustry.magenta_concrete_wall": "Karmazynowy Betonowy Murek",
|
||||
"block.createindustry.molten_metal": "Stopiony Metal",
|
||||
"block.createindustry.molten_slag": "Stopiony Żużel",
|
||||
"block.createindustry.molten_steel": "Stopiona Stal",
|
||||
"block.createindustry.napalm": "Napalm",
|
||||
"block.createindustry.napalm_bomb": "Bomba Napalmowa",
|
||||
"block.createindustry.naphtha": "Benzyna Surowa",
|
||||
"block.createindustry.oil_deposit": "Złoże Ropy Naftowej",
|
||||
"block.createindustry.orange_concrete": "Pomarańczowy Beton",
|
||||
"block.createindustry.orange_concrete_slab": "Pomarańczowa Betonowa Płyta",
|
||||
"block.createindustry.orange_concrete_stairs": "Pomarańczowe Betonowe Schody",
|
||||
"block.createindustry.orange_concrete_wall": "Pomarańczowy Betonowy Murek",
|
||||
"block.createindustry.pink_concrete": "Różowy Beton",
|
||||
"block.createindustry.pink_concrete_slab": "Różowa Betonowa Płyta",
|
||||
"block.createindustry.pink_concrete_stairs": "Różowe Betonowe Schody",
|
||||
"block.createindustry.pink_concrete_wall": "Różowy Betonowy Murek",
|
||||
"block.createindustry.plastic_block": "Blok Plastiku",
|
||||
"block.createindustry.plastic_fluid_valve": "Plastikowy Zawór",
|
||||
"block.createindustry.plastic_mechanical_pump": "Plastikowa Pompa",
|
||||
"block.createindustry.plastic_pipe": "Plastikowa Pompa",
|
||||
"block.createindustry.plastic_smart_fluid_pipe": "Plastikowa Inteligentna Rura",
|
||||
"block.createindustry.polished_cut_bauxite": "Przycięty Wypolerowany Boksyt",
|
||||
"block.createindustry.polished_cut_bauxite_slab": "Przycięta Wypolerowana Buksytowa Płyta",
|
||||
"block.createindustry.polished_cut_bauxite_stairs": "Przycięte Wypolerowane Buksytowe schody",
|
||||
"block.createindustry.polished_cut_bauxite_wall": "Przycięty Wypolerowany Buksytowy Murek",
|
||||
"block.createindustry.pumpjack_base": "Podstawa Pompy Żerdziowej",
|
||||
"block.createindustry.pumpjack_crank": "Korba Pompy Żerdziowej",
|
||||
"block.createindustry.pumpjack_hammer_holder": "Uchwyt Ramienia Pompy Żerdziowej",
|
||||
"block.createindustry.purple_concrete": "Fioletowy Beton",
|
||||
"block.createindustry.purple_concrete_slab": "Fioletowa Betonowa Płyta",
|
||||
"block.createindustry.purple_concrete_stairs": "Fioletowe Betonowe Schody",
|
||||
"block.createindustry.purple_concrete_wall": "Fioletowy Betonowy Murek",
|
||||
"block.createindustry.rebar_concrete": "Zbrojony Beton",
|
||||
"block.createindustry.rebar_concrete_slab": "Zbrojona Betonowa Płyta",
|
||||
"block.createindustry.rebar_concrete_stairs": "Zbrojone Betonowe Schody",
|
||||
"block.createindustry.rebar_concrete_wall": "Zbrojony Betonowy Murek",
|
||||
"block.createindustry.rebar_formwork_block": "Szalunek Zbrojeniowy",
|
||||
"block.createindustry.red_caution_block": "Czerwony Blok Ostrzeżenia",
|
||||
"block.createindustry.red_concrete": "Czerwony Beton",
|
||||
"block.createindustry.red_concrete_slab": "Czerwona Betonowa Płyta",
|
||||
"block.createindustry.red_concrete_stairs": "Czerwone Betonowe Schody",
|
||||
"block.createindustry.red_concrete_wall": "Czerwony Betonowy Murek",
|
||||
"block.createindustry.small_bauxite_brick_slab": "Płyta z Małych Buksytowych Cegieł",
|
||||
"block.createindustry.small_bauxite_brick_stairs": "Schody z Małych Buksytowych Cegieł",
|
||||
"block.createindustry.small_bauxite_brick_wall": "Murek z Małych Buksytowych Cegieł",
|
||||
"block.createindustry.small_bauxite_bricks": "Małe Buksytowe Cegły",
|
||||
"block.createindustry.steel_bars": "Stalowe Kraty",
|
||||
"block.createindustry.steel_block": "Blok Stali",
|
||||
"block.createindustry.steel_casing": "Stalowa Obudowa",
|
||||
"block.createindustry.steel_distillation_controller": "Stalowy Kontroler Destylacji",
|
||||
"block.createindustry.steel_distillation_output": "Stalowe Wyjście Wierzy Destylacyjnej",
|
||||
"block.createindustry.steel_door": "Stalowe Drzwi",
|
||||
"block.createindustry.steel_fluid_tank": "Stalowy Zbiornik",
|
||||
"block.createindustry.steel_fluid_valve": "Stalowy Zawór",
|
||||
"block.createindustry.steel_flywheel": "Stalowe Koło Zamachowe",
|
||||
"block.createindustry.steel_ladder": "Stalowa Drabina",
|
||||
"block.createindustry.steel_mechanical_pump": "Stalowa Pompa",
|
||||
"block.createindustry.steel_pipe": "Stalowa Rura",
|
||||
"block.createindustry.steel_scaffolding": "Stalowe Rusztowanie",
|
||||
"block.createindustry.steel_smart_fluid_pipe": "Stalowa Inteligentna Rura",
|
||||
"block.createindustry.steel_truss": "Stalowa Kratownica",
|
||||
"block.createindustry.sulfur": "Siarka",
|
||||
"block.createindustry.surface_scanner": "Skaner Powierzchniowy",
|
||||
"block.createindustry.turbine_engine": "Silnik Turbinowy",
|
||||
"block.createindustry.turbine_engine_back": "Tył Silnika Turbinowego",
|
||||
"block.createindustry.white_concrete": "Biały Beton",
|
||||
"block.createindustry.white_concrete_slab": "Biała Betonowa Płyta",
|
||||
"block.createindustry.white_concrete_stairs": "Białe Betonowe Schody",
|
||||
"block.createindustry.white_concrete_wall": "Biały Betonowy Murek",
|
||||
"block.createindustry.yellow_concrete": "Żółty Beton",
|
||||
"block.createindustry.yellow_concrete_slab": "Żółta Betonowa Płyta",
|
||||
"block.createindustry.yellow_concrete_stairs": "Żółte Betonowe Schody",
|
||||
"block.createindustry.yellow_concrete_wall": "Żółty Betonowy Murek",
|
||||
|
||||
"entity.createindustry.blue_spark": "Niebieska Iskra",
|
||||
"entity.createindustry.copper_grenade": "Granat Miedziany",
|
||||
"entity.createindustry.green_spark": "Zielona Iskra",
|
||||
"entity.createindustry.napalm_bomb_entity": "Byt Bomby Napalmowej",
|
||||
"entity.createindustry.spark": "Iskra",
|
||||
"entity.createindustry.thermite_grenade": "Granat Termitowy",
|
||||
"entity.createindustry.zin_grenade": "Granat Cynkowy",
|
||||
|
||||
"fluid.createindustry.air": "Powietrze",
|
||||
"fluid.createindustry.butane": "Butan",
|
||||
"fluid.createindustry.carbon_dioxide": "Dwutlenek Węgla",
|
||||
"fluid.createindustry.cooling_fluid": "Płyn Chłodzący",
|
||||
"fluid.createindustry.creosote": "Kreozot",
|
||||
"fluid.createindustry.crude_oil_fluid": "Ropa Naftowa",
|
||||
"fluid.createindustry.diesel": "Olej Napędowy",
|
||||
"fluid.createindustry.ethylene": "Etylen",
|
||||
"fluid.createindustry.gasoline": "Benzyna",
|
||||
"fluid.createindustry.heavy_oil": "Ciężki Olej",
|
||||
"fluid.createindustry.kerosene": "Nafta",
|
||||
"fluid.createindustry.liquid_asphalt": "Płynny Asfalt",
|
||||
"fluid.createindustry.liquid_concrete": "Płynny Beton",
|
||||
"fluid.createindustry.liquid_plastic": "Płynny Plastik",
|
||||
"fluid.createindustry.lpg": "LPG",
|
||||
"fluid.createindustry.lubrication_oil": "Smar",
|
||||
"fluid.createindustry.molten_slag": "Płynny Żużel",
|
||||
"fluid.createindustry.molten_steel": "Płynna Stal",
|
||||
"fluid.createindustry.napalm": "Napalm",
|
||||
"fluid.createindustry.naphtha": "Benzyna Surowa",
|
||||
"fluid.createindustry.propane": "Propan",
|
||||
"fluid.createindustry.propylene": "Propylen",
|
||||
|
||||
"item.createindustry.aluminum_ingot": "Sztabka Aluminium",
|
||||
"item.createindustry.bitumen": "Bitumen",
|
||||
"item.createindustry.blasting_mixture": "Mieszanka Wytopnicza",
|
||||
"item.createindustry.block_mold": "Forma w Kształcie Bloku",
|
||||
"item.createindustry.cast_iron_ingot": "Sztabka Żeliwa",
|
||||
"item.createindustry.charcoal_dust": "Pył z Węgla Drzewnego",
|
||||
"item.createindustry.coal_coke": "Koks Węglowy",
|
||||
"item.createindustry.coal_coke_dust": "Pył z Koksu Węglowego",
|
||||
"item.createindustry.cooling_fluid_bucket": "Wiadro Płynu Chłodzącego",
|
||||
"item.createindustry.copper_grenade": "Granat Miedziany",
|
||||
"item.createindustry.creosote_bucket": "Wiadro Kreozytu",
|
||||
"item.createindustry.crude_oil_fluid_bucket": "Wiadro Ropy Naftowej",
|
||||
"item.createindustry.diesel_bucket": "Wiadro Oleju Napędowego",
|
||||
"item.createindustry.engine_base": "Podstawa Silnika",
|
||||
"item.createindustry.engine_chamber": "Komora Silnika",
|
||||
"item.createindustry.fireclay_ball": "Kulka Szamotu",
|
||||
"item.createindustry.fireproof_brick": "Ognioodporna Cegła",
|
||||
"item.createindustry.gasoline_bucket": "Wiadro Benzyny",
|
||||
"item.createindustry.heavy_oil_bucket": "Wiadro Ciężkiego Oleju",
|
||||
"item.createindustry.heavy_plate": "Ciężka Płyta",
|
||||
"item.createindustry.ingot_mold": "Forma Odlewnicza w Kształcie Sztabki",
|
||||
"item.createindustry.kerosene_bucket": "Wiadro Nafty",
|
||||
"item.createindustry.liquid_asphalt_bucket": "Wiadro Płynnego Asfaltu",
|
||||
"item.createindustry.liquid_concrete_bucket": "Wiadro Płynnego Betonu",
|
||||
"item.createindustry.liquid_plastic_bucket": "Wiadro Płynnego Plastiku",
|
||||
"item.createindustry.lubrication_oil_bucket": "Wiadro Smaru",
|
||||
"item.createindustry.molten_slag_bucket": "Wiadro Stopionego Żużlu",
|
||||
"item.createindustry.molten_steel_bucket": "Wiadro Stopionej Stali",
|
||||
"item.createindustry.napalm_bucket": "Wiadro Napalmu",
|
||||
"item.createindustry.naphtha_bucket": "Wiadro Benzyny Surowej",
|
||||
"item.createindustry.nitrate_dust": "Pył Saletrzany",
|
||||
"item.createindustry.plastic_sheet": "Arkusz Plastiku",
|
||||
"item.createindustry.quad_potato_cannon": "Poczwórna Armata Na Ziemniaki",
|
||||
"item.createindustry.rebar": "Pręt Zbrojeniowy",
|
||||
"item.createindustry.screw": "Śruba",
|
||||
"item.createindustry.screwdriver": "Śrubokręt",
|
||||
"item.createindustry.slag": "Żużel",
|
||||
"item.createindustry.spark_plug": "Świeca Zapłonowa",
|
||||
"item.createindustry.steel_ingot": "Sztabka Stali",
|
||||
"item.createindustry.steel_mechanism": "Stalowy Mechanizm",
|
||||
"item.createindustry.sulfur_dust": "Pył Śarkowy",
|
||||
"item.createindustry.thermite_grenade": "Granat Termitowy",
|
||||
"item.createindustry.thermite_powder": "Proch Termitowy",
|
||||
"item.createindustry.turbine_blade": "Łopata Turbiny",
|
||||
"item.createindustry.unfinished_gasoline_engine": "Niedokończony Silnik Benzynowy",
|
||||
"item.createindustry.unfinished_lpg_engine": "Niedokończony Silnik LPG",
|
||||
"item.createindustry.unfinished_steel_mechanism": "Niedokończony Stalowy Mechanizm",
|
||||
"item.createindustry.unfinished_turbine_engine": "Niedokończony Silnik Turbinowy",
|
||||
"item.createindustry.unprocessed_heavy_plate": "Nieprzerobiona Ciężka Płyta",
|
||||
"item.createindustry.zinc_grenade": "Granat Cynkowy",
|
||||
|
||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||
|
||||
"itemGroup.createindustry.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.createindustry.building": "Create: TFMG Bloki Budowlane",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.percent_symbol": "%",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_three": "...",
|
||||
"create.goggles.misc.storage_info": "Informacje o Zawartości:",
|
||||
"create.goggles.fluid_in_tank": "Zawartość Zbiornika:",
|
||||
"create.goggles.surface_scanner.no_rotation": "Brak Siły Obrotowej!",
|
||||
"create.goggles.surface_scanner.no_deposit": "Brak Pobliskich Złoż",
|
||||
"create.goggles.surface_scanner.deposit_found": "Złoże Ropy Naftowej Znalezione!",
|
||||
"create.goggles.surface_scanner.distance": "Odległość: %1$s Bloki",
|
||||
"create.goggles.surface_scanner.scanning_surface": "Skanowanie Powierzchni...",
|
||||
"create.goggles.distillation_tower.status": "Distillation Tower Info:",
|
||||
"create.goggles.distillation_tower.tank_not_found": "Nie Znaleziono Stalowego Zbiornika",
|
||||
"create.goggles.distillation_tower.not_tall_enough": "Zbiornik Jest Za Niski",
|
||||
"create.goggles.distillation_tower.level": "Poziom Wierzy Destylacyjnej: %1$s",
|
||||
"create.goggles.distillation_tower.found_outputs": "Ilość Wyjść: %1$s",
|
||||
"create.goggles.distillation_tower.no_outputs": "Nie Znaleziono Wyjść",
|
||||
"create.goggles.blast_furnace.stats": "Piec Hutniczy:",
|
||||
"create.goggles.blast_furnace.size_stats": "Wielkość:",
|
||||
"create.goggles.blast_furnace.fuel_amount": "Ilość Paliwa: %1$s",
|
||||
"create.goggles.blast_furnace.item_count": "Ilość Przedmiotów: %1$s",
|
||||
"create.goggles.blast_furnace.height": "Wysokość: %1$s",
|
||||
"create.goggles.blast_furnace.nothing_lol": "",
|
||||
"create.goggles.blast_furnace.status.off": "Stan: Bezczynny",
|
||||
"create.goggles.blast_furnace.status.running": "Status: Działa",
|
||||
"create.goggles.blast_furnace.diameter.one": "Średnica: 1",
|
||||
"create.goggles.blast_furnace.diameter.two": "Średnica: 2",
|
||||
"create.goggles.blast_furnace.invalid": "Piec Hutniczy Nieprawidłowy",
|
||||
"create.goggles.coke_oven.status": "Piec Koksowniczy:",
|
||||
"create.goggles.coke_oven.fluid_amount_output": "Zawartość Wewnętrznego Zbiornika: %1$s mb",
|
||||
"create.goggles.coke_oven.fluid_amount_exhaust": "Dwutlenek Węgla: %1$s mb",
|
||||
"create.goggles.coke_oven.item_count": "W Wewnętrznym Magazynie: %1$s",
|
||||
"create.goggles.coke_oven.invalid": "Piec Koksowniczy Nieprawidłowy",
|
||||
"create.goggles.coke_oven.tank_full": "Wewnętrzny Zbiornik Jest Pełny",
|
||||
"create.goggles.coke_oven.progress": "Postęp: %1$s",
|
||||
"create.goggles.engine_stats": "Statystyki Silnika:",
|
||||
"create.goggles.engine_exhaust_stats": "Statystyki Wydechu Silnika:",
|
||||
"create.goggles.fuel_container": "Paliwo",
|
||||
"create.goggles.engine.backpartmissing": "Brakuje Tylnej Części:",
|
||||
"create.goggles.engine_redstone_input": "Prędkość:",
|
||||
"create.goggles.engine.efficiency": "Efektywność:",
|
||||
"create.distillation_tower.size": "Wielkość:",
|
||||
"create.distillation_tower.heat": "Temperatura:",
|
||||
"create.tooltip.engine_analog_strength": "%1$s/15",
|
||||
|
||||
"create.goggles.get_engine_efficiency": "%1$s",
|
||||
"create.goggles.engine.stress": "%1$ssu",
|
||||
"create.goggles.diesel_engine.info": "Silnik Wysokoprężny:",
|
||||
"create.goggles.pumpjack_info": "Informacje o Pompie Żerdziowej:",
|
||||
"create.goggles.pumpjack.part_missing": "Brakująca Korba lub Ramię Pompy Żerdziowej",
|
||||
"create.goggles.pumpjack.wrong_rotation1": "Podstawa Pompy Żerdziowej jest skierowana nieprawidłowo, czerwony znacznik musi",
|
||||
"create.goggles.pumpjack.wrong_rotation2": "być skierowany odwrotnie od Uchwytu Ramienia Pompy Żerdziowej",
|
||||
"create.goggles.pumpjack_fluid_storage": "Informacje o Zbiorniku:",
|
||||
|
||||
"create.pumpjack_deposit_amount": "%1$s Wiader",
|
||||
|
||||
"create.goggles.pumpjack.deposit_info": "Informacje o Złożu:",
|
||||
"create.goggles.zero": "Nie Znaleziono Złoża",
|
||||
"create.goggles.pumpjack.fluid_amount": "Ilość Cieczy:",
|
||||
"create.goggles.machine_input.info": "Informacje Wejścia Maszynowego",
|
||||
"create.goggles.machine_input.no_rot": "Brak Siły Obrotowej!",
|
||||
"create.goggles.machine_input.power_level": "Poziom Mocy: ",
|
||||
|
||||
"create.recipe.distillation": "Destylacja",
|
||||
"create.recipe.advanced_distillation": "Zaawansowana Destylacja",
|
||||
"create.recipe.industrial_blasting": "Wytapianie Przemysłowe",
|
||||
"create.recipe.casting": "Odlewanie",
|
||||
"create.recipe.coking": "Spiekanie",
|
||||
|
||||
"_": "->------------------------] Ponders [------------------------<-",
|
||||
|
||||
"createindustry.ponder.small_engines.text_1": "Aby stworzyć mały silnik, umieść przednią i tylną część obok siebie",
|
||||
"createindustry.ponder.small_engines.text_2": "Paliwo podawane jest do przedniej części, a spaliny odprowadzane są z tylnej części za pomocą rur i pompy",
|
||||
"createindustry.ponder.small_engines.text_3": "Silnik uruchomi się po podaniu sygnału redstone na przednią część",
|
||||
"createindustry.ponder.small_engines.text_4": "Istnieją silniki zasilane Benzyną, LPG i Naftą",
|
||||
"createindustry.ponder.diesel_engine.text_1": "Silnik Wysokoprężny jest montowany poprzez umieszczenie Wału nad blokiem Silnika Wysokoprężnego",
|
||||
"createindustry.ponder.diesel_engine.text_2": "Dwutlenek Węgla musi być odprowadzany Rurami i Wydechem",
|
||||
"createindustry.ponder.diesel_engine.text_3": "Powietrze jest potrzebne do funkcjonowania silnika, więc Wlot Powietrza jest wymagany",
|
||||
"createindustry.ponder.diesel_engine_expansion.text_1": "Rozszerzenia Silnika Wysokoprężniowego umożliwiają wprowadzenie dwóch nowych cieczy: Smaru i Płynu Chłodzącego",
|
||||
"createindustry.ponder.surface_scanner.text_1": "Skaner Powierzchniowy służy do wyszukiwania złóż ropy naftowej",
|
||||
"createindustry.ponder.surface_scanner.text_2": "Po podaniu Siły Obrotowej maszyna zaczyna szukać najbliższego złoża ropy",
|
||||
"createindustry.ponder.surface_scanner.text_3": "Po znalezieniu złoża, wbudowany w blok kompas wskaże w jego kierunku",
|
||||
"createindustry.ponder.pumpjack.text_1": "Pierwszym etapem wydobycia Ropy Naftowej jest budowa Rur Przemysłowych od złoża do powierzchni",
|
||||
"createindustry.ponder.pumpjack.text_2": "Następnie należy zbudować Pompę Żerdiową na szczycie odwertu poprzez postawienie Podstawy Pompy Żerdziowej...",
|
||||
"createindustry.ponder.pumpjack.text_3": "Postawienie Uchwytu Ramienia Pompy Żerdiowej za nią...",
|
||||
"createindustry.ponder.pumpjack.text_4": "I wreszcie, postawienie Wejścia Maszyny i Korby Pompy Żerdziowej na Wejściu, tak jak pokazano na tej Analizie",
|
||||
"createindustry.ponder.distillation_tower.text_1": "Podstawą Wieży Destylacyjnej są Stalowe Zbiorniki",
|
||||
"createindustry.ponder.distillation_tower.text_2": "Wieżę montuje się, umieszczając Stalowy Kontroler Destylacji obok Zbiorników...",
|
||||
"createindustry.ponder.distillation_tower.text_3": "I umieszczenie do 6 Wyjść Wierzy Destylacyjnej, oraz połączenie ich Rurami Przemysłowymi",
|
||||
"createindustry.ponder.distillation_tower.text_4": "Umieść Płomienne Palniki (lub inne źródło ciepła) pod zbiornikami, aby je zasilić, Wskaźnik na Wieży pokazuje poziom mocy konstrukcji",
|
||||
"createindustry.ponder.distillation_tower.text_5": "Ropa Naftowa jest wprowadzana do bloku Kontrolera Destylacji",
|
||||
"createindustry.ponder.distillation_tower.text_6": "Każdy Blok Wyjściowy wyprowadza jeden z produktów Destylacji naftowej",
|
||||
"createindustry.ponder.distillation_tower.text_7": "LPG",
|
||||
"createindustry.ponder.distillation_tower.text_8": "Benzyna",
|
||||
"createindustry.ponder.distillation_tower.text_9": "Benzyna Surowa",
|
||||
"createindustry.ponder.distillation_tower.text_10": "Nafta",
|
||||
"createindustry.ponder.distillation_tower.text_11": "Olej Napędowy",
|
||||
"createindustry.ponder.distillation_tower.text_12": "Ciężki Olej",
|
||||
"createindustry.ponder.blast_furnace.text_1": "Podstawą Pieca Hutniczego jest Wyjście Pieca Hutniczego",
|
||||
"createindustry.ponder.blast_furnace.text_2": "Żeby Zbudować Piec Hutniczy, Należy zbudować komin z Cegieł Ognioodpornych, tak jak pokazano w Analizie",
|
||||
"createindustry.ponder.blast_furnace.text_3": "Dolna połowa komina musi być wzmocniona (tak jak pokazano)",
|
||||
"createindustry.ponder.blast_furnace.text_4": "Paliwo i inne przedmioty są podawane przez górny otwór",
|
||||
"createindustry.ponder.coke_oven.text_1": "Piec Koksowniczy jest konstruowany przez stawianie bloków Pieca Koksowniczego tak jak w analizie, i użyciem klucz na jego boku",
|
||||
"createindustry.ponder.coke_oven.text_2": "Proces spiekania jest powolny, więc bardziej efektywne jest mieć kilka długich szyków tych pieców pracujących w tym samym czasie",
|
||||
"createindustry.ponder.coke_oven.text_3": "Węgiel może być dostarczany z każdej strony",
|
||||
"createindustry.ponder.coke_oven.text_4": "Kiedy aktywny, Piec produkuje Kreozot i CO2, które muszą być odpompowywane z niego żeby piec mógł działać",
|
||||
"createindustry.ponder.coke_oven.text_5": "Gdy proces się skończy, Koks węglowy wypadnie z przodu",
|
||||
"createindustry.ponder.casting.text_1": "Odlewanie, jest to proces wlewania stopionego metalu w Tygiel Odlewniczy używając Napełniacza Odlewniczego",
|
||||
"createindustry.ponder.casting.text_2": "Tygiel Odlewniczy, oczywiście, potrzebuje formy do funkcjonowania",
|
||||
|
||||
"createindustry.ponder.distillation_tower.header": "Konfiguracja Wieży Destylacyjnej",
|
||||
|
||||
"createindustry.ponder.pumpjack.header": "Budowa Pompy Żerdziowej",
|
||||
|
||||
"createindustry.ponder.surface_scanner.header": "Znajdowanie Ropy Naftowej",
|
||||
|
||||
"createindustry.ponder.diesel_engine.header": "Budowa Silników Wysokoprężnych",
|
||||
|
||||
"createindustry.ponder.diesel_engine_expansion.header": "Rozszeżanie Silników Wysokoprężnych",
|
||||
|
||||
"createindustry.ponder.small_engines.header": "Budowa Małych Silników",
|
||||
|
||||
"createindustry.ponder.coke_oven.header": "Budowa a Piecu Koksowniczego",
|
||||
"createindustry.ponder.blast_furnace": "Budowa Pieca Hutniczego",
|
||||
|
||||
"createindustry.ponder.casting.header": "Odlewanie Metalu",
|
||||
"createindustry.ponder.tag.oil": "Maszyny związane z Ropą Naftową",
|
||||
"createindustry.ponder.tag.metallurgy": "Maszyny do Obróbki Metalu",
|
||||
"createindustry.ponder.tag.oil.description": "Maszyny, które wydobywają, przetwarzają lub wykorzystują Ropę Naftową i wytworzone z niej produkty",
|
||||
"createindustry.ponder.tag.metallurgy.description": "Maszyny, które produkują, przetwarzają lub wykorzystują Metal i związane z nim surowce",
|
||||
|
||||
"createindustry.subtitle.engine_sounds": "Odgłosy Silnika",
|
||||
"createindustry.subtitle.diesel_engine_sounds": "Odgłosy Silnika Wysokoprężnego",
|
||||
|
||||
"_": "Thank you for translating Create: The Factory Must Grow!"
|
||||
|
||||
}
|
||||
572
src/main/resources/assets/createindustry/lang/ru_ru.json
Normal file
@@ -0,0 +1,572 @@
|
||||
{
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.createindustry.air_intake": "Воздухозаборник",
|
||||
"block.createindustry.aluminum_bars": "Алюминиевый столб",
|
||||
"block.createindustry.aluminum_block": "Блок алюминия",
|
||||
"block.createindustry.aluminum_fluid_valve": "Алюминиевый жидкостный вентиль",
|
||||
"block.createindustry.aluminum_flywheel": "Алюминиевый маховик",
|
||||
"block.createindustry.aluminum_ladder": "Алюминиевая лестница",
|
||||
"block.createindustry.aluminum_mechanical_pump": "Алюминиевая механическая помпа",
|
||||
"block.createindustry.aluminum_pipe": "Алюминиевая жидкостная труба",
|
||||
"block.createindustry.aluminum_scaffolding": "Алюминиевые подмостки",
|
||||
"block.createindustry.aluminum_smart_fluid_pipe": "Умная алюминиевая умная труба",
|
||||
"block.createindustry.aluminum_truss": "Алюминиевые балки",
|
||||
"block.createindustry.asphalt": "Асфальт",
|
||||
"block.createindustry.bauxite": "Боксит",
|
||||
"block.createindustry.bauxite_pillar": "Бокситовая колонна",
|
||||
"block.createindustry.black_concrete": "Черный бетон",
|
||||
"block.createindustry.black_concrete_slab": "Черная бетонная плита",
|
||||
"block.createindustry.black_concrete_stairs": "Черные бетонные ступеньки",
|
||||
"block.createindustry.black_concrete_wall": "Черная бетонная ограда",
|
||||
"block.createindustry.blast_furnace_output": "Выход доменной печи",
|
||||
"block.createindustry.blue_concrete": "Синий бетон",
|
||||
"block.createindustry.blue_concrete_slab": "Синяя бетонная плита",
|
||||
"block.createindustry.blue_concrete_stairs": "Синие бетонные ступеньки",
|
||||
"block.createindustry.blue_concrete_wall": "Синяя бетонная ограда",
|
||||
"block.createindustry.brass_fluid_valve": "Латунный жидкостный вентиль",
|
||||
"block.createindustry.brass_mechanical_pump": "Латунная механическая помпа",
|
||||
"block.createindustry.brass_pipe": "Латунная жидкостная труба",
|
||||
"block.createindustry.brass_smart_fluid_pipe": "Умная латунная жидкостная труба",
|
||||
"block.createindustry.brown_concrete": "Коричневый бетон",
|
||||
"block.createindustry.brown_concrete_slab": "Коричневая бетонная плита",
|
||||
"block.createindustry.brown_concrete_stairs": "Коричневые бетонные ступеньки",
|
||||
"block.createindustry.brown_concrete_wall": "Коричневая бетонная ограда",
|
||||
"block.createindustry.cast_iron_block": "Чугунный блок",
|
||||
"block.createindustry.cast_iron_distillation_controller": "Чугунный контроллер дистиллятора",
|
||||
"block.createindustry.cast_iron_distillation_output": "Чугунный выход дистиллятора",
|
||||
"block.createindustry.cast_iron_fluid_valve": "Чугунный жидкостный вентиль",
|
||||
"block.createindustry.cast_iron_flywheel": "Чугунный маховик",
|
||||
"block.createindustry.cast_iron_mechanical_pump": "Чугунная механическая помпа",
|
||||
"block.createindustry.cast_iron_pipe": "Чугунная жидкостная труба",
|
||||
"block.createindustry.cast_iron_smart_fluid_pipe": "Умная чугунная жидкостная труба",
|
||||
"block.createindustry.casting_basin": "Литейная чаша",
|
||||
"block.createindustry.casting_spout": "Литейный дозатор",
|
||||
"block.createindustry.caution_block": "Желтый сигнальный блок",
|
||||
"block.createindustry.cement": "Цемент",
|
||||
"block.createindustry.coal_coke_block": "Блок коксового угля",
|
||||
"block.createindustry.coke_oven": "Коксовая печь",
|
||||
"block.createindustry.concrete": "Бетон",
|
||||
"block.createindustry.concrete_slab": "Бетонная плита",
|
||||
"block.createindustry.concrete_stairs": "Бетонные ступеньки",
|
||||
"block.createindustry.concrete_wall": "Бетонная ограда",
|
||||
"block.createindustry.cooling_fluid": "Охлаждающая жидкость",
|
||||
"block.createindustry.copper_encased_aluminum_pipe": "Алюминиевая труба в медном корпусе",
|
||||
"block.createindustry.copper_encased_brass_pipe": "Латунная труба в медном корпусе",
|
||||
"block.createindustry.copper_encased_cast_iron_pipe": "Чугунная труба в медном корпусе",
|
||||
"block.createindustry.copper_encased_plastic_pipe": "Пластиковая труба в медном корпусе",
|
||||
"block.createindustry.copper_encased_steel_pipe": "Стальная труба в медном корпусе",
|
||||
"block.createindustry.creosote": "Креозот",
|
||||
"block.createindustry.crude_oil_fluid": "Сырая нефть",
|
||||
"block.createindustry.cut_bauxite": "Резной боксит",
|
||||
"block.createindustry.cut_bauxite_brick_slab": "Плита из резного бокситового кирпича",
|
||||
"block.createindustry.cut_bauxite_brick_stairs": "Ступеньки из резного бокситового кирпича",
|
||||
"block.createindustry.cut_bauxite_brick_wall": "Ограда из резного бокситового кирпича",
|
||||
"block.createindustry.cut_bauxite_bricks": "Резный бокситовый кирпич",
|
||||
"block.createindustry.cut_bauxite_slab": "Плита из резного боксита",
|
||||
"block.createindustry.cut_bauxite_stairs": "Ступеньки из резного боксита",
|
||||
"block.createindustry.cut_bauxite_wall": "Ограда из резного боксита",
|
||||
"block.createindustry.cyan_concrete": "Бирюзовый бетон",
|
||||
"block.createindustry.cyan_concrete_slab": "Бирюзовая бетонная плита",
|
||||
"block.createindustry.cyan_concrete_stairs": "Бирюзовые бетонные ступеньки",
|
||||
"block.createindustry.cyan_concrete_wall": "Бирюзовая бетонная ограда",
|
||||
"block.createindustry.diesel": "Дизель",
|
||||
"block.createindustry.diesel_engine": "Дизельный двигатель",
|
||||
"block.createindustry.diesel_engine_expansion": "Расширенный ввод для дизельного двигателя",
|
||||
"block.createindustry.exhaust": "Выхлопная труба",
|
||||
"block.createindustry.factory_floor": "Заводской пол",
|
||||
"block.createindustry.factory_floor_slab": "Плита из заводского пола",
|
||||
"block.createindustry.factory_floor_stairs": "Ступеньки из заводского пола",
|
||||
"block.createindustry.fireclay": "Огнеупорная глина",
|
||||
"block.createindustry.fireproof_brick_reinforcement": "Огнеупорное кирпичное укрепление",
|
||||
"block.createindustry.fireproof_bricks": "Огнеупорные кирпичи",
|
||||
"block.createindustry.flarestack": "Факельная труба",
|
||||
"block.createindustry.formwork_block": "Опалубка",
|
||||
"block.createindustry.fossilstone": "Окаменелость",
|
||||
"block.createindustry.gasoline": "Бензин",
|
||||
"block.createindustry.gasoline_engine": "Бензиновый двигатель",
|
||||
"block.createindustry.gasoline_engine_back": "Задняя часть бензинового двигателя",
|
||||
"block.createindustry.glass_aluminum_pipe": "Застекленная алюминиевая жидкостная труба",
|
||||
"block.createindustry.glass_brass_pipe": "Застекленная латунная жидкостная труба",
|
||||
"block.createindustry.glass_cast_iron_pipe": "Застекленная чугунная жидкостная труба",
|
||||
"block.createindustry.glass_plastic_pipe": "Застекленная пластиковая жидкостная труба",
|
||||
"block.createindustry.glass_steel_pipe": "Застекленная стальная жидкостная труба",
|
||||
"block.createindustry.gray_concrete": "Серый бетон",
|
||||
"block.createindustry.gray_concrete_slab": "Серая бетонная плита",
|
||||
"block.createindustry.gray_concrete_stairs": "Серые бетонные ступеньки",
|
||||
"block.createindustry.gray_concrete_wall": "Серая бетонная ограда",
|
||||
"block.createindustry.green_concrete": "Зеленый бетон",
|
||||
"block.createindustry.green_concrete_slab": "Зеленая бетонная плита",
|
||||
"block.createindustry.green_concrete_stairs": "Зеленые бетонные ступеньки",
|
||||
"block.createindustry.green_concrete_wall": "Зеленая бетонная ограда",
|
||||
"block.createindustry.hardened_planks": "Закаленные доски",
|
||||
"block.createindustry.heavy_casing_door": "Тяжёлая стальная дверь",
|
||||
"block.createindustry.heavy_machinery_casing": "Тяжёлый машинный корпус",
|
||||
"block.createindustry.heavy_oil": "Мазут",
|
||||
"block.createindustry.industrial_pipe": "Промышленная труба",
|
||||
"block.createindustry.kerosene": "Керосин",
|
||||
"block.createindustry.layered_bauxite": "Слоистый боксит",
|
||||
"block.createindustry.light_blue_concrete": "Голубой бетон",
|
||||
"block.createindustry.light_blue_concrete_slab": "Голубая бетонная плита",
|
||||
"block.createindustry.light_blue_concrete_stairs": "Голубые бетонный ступеньки",
|
||||
"block.createindustry.light_blue_concrete_wall": "Голубая бетонная ограда",
|
||||
"block.createindustry.light_gray_concrete": "Светло-серый бетон",
|
||||
"block.createindustry.light_gray_concrete_slab": "Светло-серая бетонная плита",
|
||||
"block.createindustry.light_gray_concrete_stairs": "Светло-серые бетонные ступеньки",
|
||||
"block.createindustry.light_gray_concrete_wall": "Светло-серая бетонная ограда",
|
||||
"block.createindustry.lignite": "Бурый уголь",
|
||||
"block.createindustry.lime_concrete": "Лаймовый бетон",
|
||||
"block.createindustry.lime_concrete_slab": "Лаймовая бетонная плита",
|
||||
"block.createindustry.lime_concrete_stairs": "Лаймовые бетонные ступеньки",
|
||||
"block.createindustry.lime_concrete_wall": "Лаймовая бетонная ограда",
|
||||
"block.createindustry.limesand": "Известняковый песок",
|
||||
"block.createindustry.liquid_asphalt": "Жидкий асфальт",
|
||||
"block.createindustry.liquid_concrete": "Жидкий бетон",
|
||||
"block.createindustry.liquid_plastic": "Жидкий пластик",
|
||||
"block.createindustry.lpg_engine": "СНГ двигатель",
|
||||
"block.createindustry.lpg_engine_back": "Задняя часть СНГ двигателя",
|
||||
"block.createindustry.lubrication_oil": "Смазочное масло",
|
||||
"block.createindustry.machine_input": "Машинный ввод",
|
||||
"block.createindustry.magenta_concrete": "Пурпурный бетон",
|
||||
"block.createindustry.magenta_concrete_slab": "Пурпурная бетонная плита",
|
||||
"block.createindustry.magenta_concrete_stairs": "Пурпурные бетонные ступеньки",
|
||||
"block.createindustry.magenta_concrete_wall": "Пурпурная бетонная ограда",
|
||||
"block.createindustry.molten_metal": "Расплавленный металл",
|
||||
"block.createindustry.molten_slag": "расплавленный шлак",
|
||||
"block.createindustry.molten_steel": "Расплавленная сталь",
|
||||
"block.createindustry.napalm": "Напалм",
|
||||
"block.createindustry.napalm_bomb": "Напалмовая бомба",
|
||||
"block.createindustry.naphtha": "Лигроин",
|
||||
"block.createindustry.oil_deposit": "Месторождение нефти",
|
||||
"block.createindustry.orange_concrete": "Оранжевый бетон",
|
||||
"block.createindustry.orange_concrete_slab": "Оранжевая бетонная плита",
|
||||
"block.createindustry.orange_concrete_stairs": "Оранжевая бетонные ступеньки",
|
||||
"block.createindustry.orange_concrete_wall": "Оранжевая бетонная ограда",
|
||||
"block.createindustry.pink_concrete": "Розовый бетон",
|
||||
"block.createindustry.pink_concrete_slab": "Розовая бетонная плита",
|
||||
"block.createindustry.pink_concrete_stairs": "Розовая бетонные ступеньки",
|
||||
"block.createindustry.pink_concrete_wall": "Розовая бетонная ограда",
|
||||
"block.createindustry.plastic_block": "Блок пластика",
|
||||
"block.createindustry.plastic_fluid_valve": "Пластиковый жидкостный вентиль",
|
||||
"block.createindustry.plastic_mechanical_pump": "Пластиковая механическая помпа",
|
||||
"block.createindustry.plastic_pipe": "Пластиковая жидкостная труба",
|
||||
"block.createindustry.plastic_smart_fluid_pipe": "Умная пластиковая жидкостная труба",
|
||||
"block.createindustry.polished_cut_bauxite": "Полированный резной боксит",
|
||||
"block.createindustry.polished_cut_bauxite_slab": "Полированная плита из боксита",
|
||||
"block.createindustry.polished_cut_bauxite_stairs": "Полированные ступеньки из боксита",
|
||||
"block.createindustry.polished_cut_bauxite_wall": "Полированная ограда из боксита",
|
||||
"block.createindustry.pumpjack_base": "Основа нефтяного насоса",
|
||||
"block.createindustry.pumpjack_crank": "Нефтяной насос",
|
||||
"block.createindustry.pumpjack_hammer_holder": "Балансир нефтяного насоса",
|
||||
"block.createindustry.purple_concrete": "Фиолетовый бетон",
|
||||
"block.createindustry.purple_concrete_slab": "Фиолетовая бетонная плита",
|
||||
"block.createindustry.purple_concrete_stairs": "Фиолетовые бетонные ступеньки",
|
||||
"block.createindustry.purple_concrete_wall": "Фиолетовая бетонная ограда",
|
||||
"block.createindustry.rebar_concrete": "Армированный бетон",
|
||||
"block.createindustry.rebar_concrete_slab": "Армированная бетонная плита",
|
||||
"block.createindustry.rebar_concrete_stairs": "Армированные бетонные ступеньки",
|
||||
"block.createindustry.rebar_concrete_wall": "Армированная бетонная плита",
|
||||
"block.createindustry.rebar_formwork_block": "Арматурная опалубка",
|
||||
"block.createindustry.red_caution_block": "Красный сигнальный блок",
|
||||
"block.createindustry.red_concrete": "Красный бетон",
|
||||
"block.createindustry.red_concrete_slab": "Красная бетонная плита",
|
||||
"block.createindustry.red_concrete_stairs": "Красные бетонные ступеньки",
|
||||
"block.createindustry.red_concrete_wall": "Красная бетонная ограда",
|
||||
"block.createindustry.small_bauxite_brick_slab": "Плита из мелкого бокситового кирпича",
|
||||
"block.createindustry.small_bauxite_brick_stairs": "Ступеньки из мелкого бокситового кирпича",
|
||||
"block.createindustry.small_bauxite_brick_wall": "Ограда из мелкого бокситового кирпича",
|
||||
"block.createindustry.small_bauxite_bricks": "Мелкие кирпичи из боксита",
|
||||
"block.createindustry.steel_bars": "Стальные прутья",
|
||||
"block.createindustry.steel_block": "Блок стали",
|
||||
"block.createindustry.steel_casing": "Стальной корпус",
|
||||
"block.createindustry.steel_distillation_controller": "Стальной контроллер дистилляционной башни",
|
||||
"block.createindustry.steel_distillation_output": "Стальной выход дистилляционной дистилляции башни",
|
||||
"block.createindustry.steel_door": "Стальная дверь",
|
||||
"block.createindustry.steel_fluid_tank": "Стальной жидкостный бак",
|
||||
"block.createindustry.steel_fluid_valve": "Стальной жидкостный вентиль",
|
||||
"block.createindustry.steel_flywheel": "Стальной маховик",
|
||||
"block.createindustry.steel_ladder": "Стальная лестница",
|
||||
"block.createindustry.steel_mechanical_pump": "Стальная механическая помпа",
|
||||
"block.createindustry.steel_pipe": "Стальная жидкостная труба",
|
||||
"block.createindustry.steel_scaffolding": "Стальные подмостки",
|
||||
"block.createindustry.steel_smart_fluid_pipe": "Умная стальная жидкостная труба",
|
||||
"block.createindustry.steel_truss": "Стальные балки",
|
||||
"block.createindustry.sulfur": "Сера",
|
||||
"block.createindustry.surface_scanner": "Сканер поверхности",
|
||||
"block.createindustry.turbine_engine": "Турбинный двигатель",
|
||||
"block.createindustry.turbine_engine_back": "Задняя часть турбинного двигатель",
|
||||
"block.createindustry.white_concrete": "Белый бетон",
|
||||
"block.createindustry.white_concrete_slab": "Белая бетонная плита",
|
||||
"block.createindustry.white_concrete_stairs": "Белые бетонные ступеньки",
|
||||
"block.createindustry.white_concrete_wall": "Белая бетонная ограда",
|
||||
"block.createindustry.yellow_concrete": "Желтый бетон",
|
||||
"block.createindustry.yellow_concrete_slab": "Желтая бетонная плита",
|
||||
"block.createindustry.yellow_concrete_stairs": "Желтые бетонные ступеньки",
|
||||
"block.createindustry.yellow_concrete_wall": "Желтая бетонная ограда",
|
||||
|
||||
"entity.createindustry.blue_spark": "Голубая искра",
|
||||
"entity.createindustry.copper_grenade": "Медная граната",
|
||||
"entity.createindustry.green_spark": "Зеленая искра",
|
||||
"entity.createindustry.napalm_bomb_entity": "Активированная напалмовая бомба",
|
||||
"entity.createindustry.spark": "Искра",
|
||||
"entity.createindustry.thermite_grenade": "Термитная граната",
|
||||
"entity.createindustry.zinc_grenade": "Цинковая граната",
|
||||
|
||||
"fluid.createindustry.air": "Воздух",
|
||||
"fluid.createindustry.butane": "Бутан",
|
||||
"fluid.createindustry.carbon_dioxide": "Углекислый газ",
|
||||
"fluid.createindustry.cooling_fluid": "Охлаждающая жидкость",
|
||||
"fluid.createindustry.creosote": "Креозот",
|
||||
"fluid.createindustry.crude_oil_fluid": "Сырая нефть",
|
||||
"fluid.createindustry.diesel": "Дизель",
|
||||
"fluid.createindustry.ethylene": "Этилен",
|
||||
"fluid.createindustry.gasoline": "Бензин",
|
||||
"fluid.createindustry.heavy_oil": "Мазут",
|
||||
"fluid.createindustry.kerosene": "Керосин",
|
||||
"fluid.createindustry.liquid_asphalt": "Жидкий асфальт",
|
||||
"fluid.createindustry.liquid_concrete": "Жидкий бетон",
|
||||
"fluid.createindustry.liquid_plastic": "Жидкий пластик",
|
||||
"fluid.createindustry.lpg": "СНГ",
|
||||
"fluid.createindustry.lubrication_oil": "Смазочное масло",
|
||||
"fluid.createindustry.molten_slag": "Расплавленный шлак",
|
||||
"fluid.createindustry.molten_steel": "Расплавленная сталь",
|
||||
"fluid.createindustry.napalm": "Напалм",
|
||||
"fluid.createindustry.naphtha": "Лигроин",
|
||||
"fluid.createindustry.propane": "Пропан",
|
||||
"fluid.createindustry.propylene": "Пропилен",
|
||||
|
||||
"item.createindustry.aluminum_ingot": "Алюминиевый слиток",
|
||||
"item.createindustry.bitumen": "Битум",
|
||||
"item.createindustry.blasting_mixture": "Смесь для плавки",
|
||||
"item.createindustry.block_mold": "Форма блока для выплавки",
|
||||
"item.createindustry.cast_iron_ingot": "Чугунный слиток",
|
||||
"item.createindustry.charcoal_dust": "Пыль древесного угля",
|
||||
"item.createindustry.coal_coke": "Коксовый уголь",
|
||||
"item.createindustry.coal_coke_dust": "Коксовая пыль",
|
||||
"item.createindustry.cooling_fluid_bucket": "Ведро охлаждающей жидкости",
|
||||
"item.createindustry.copper_grenade": "Медная граната",
|
||||
"item.createindustry.creosote_bucket": "Ведро креозота",
|
||||
"item.createindustry.crude_oil_fluid_bucket": "Ведро сырой нефти",
|
||||
"item.createindustry.diesel_bucket": "Ведро дизеля",
|
||||
"item.createindustry.engine_base": "Основа двигателя",
|
||||
"item.createindustry.engine_chamber": "Камера сгорания",
|
||||
"item.createindustry.fireclay_ball": "Шарик из огнеупорной глины",
|
||||
"item.createindustry.fireproof_brick": "Огнеупорный кирпич",
|
||||
"item.createindustry.gasoline_bucket": "Ведро бензина",
|
||||
"item.createindustry.heavy_oil_bucket": "Ведро мазута",
|
||||
"item.createindustry.heavy_plate": "Тяжёлая пластина",
|
||||
"item.createindustry.ingot_mold": "Форма слитка для выплавки",
|
||||
"item.createindustry.kerosene_bucket": "Ведро керосина",
|
||||
"item.createindustry.liquid_asphalt_bucket": "Ведро жидкого асфальта",
|
||||
"item.createindustry.liquid_concrete_bucket": "Ведро жидкого бетона",
|
||||
"item.createindustry.liquid_plastic_bucket": "Ведро расплавленного пластика",
|
||||
"item.createindustry.lubrication_oil_bucket": "Ведро смазочного масла",
|
||||
"item.createindustry.molten_slag_bucket": "Ведро расплавленного шлака",
|
||||
"item.createindustry.molten_steel_bucket": "Ведро расплавленной стали",
|
||||
"item.createindustry.napalm_bucket": "Ведро напалма",
|
||||
"item.createindustry.naphtha_bucket": "Ведро лигроина",
|
||||
"item.createindustry.nitrate_dust": "Нитратная пыль",
|
||||
"item.createindustry.plastic_sheet": "Пластиковый лист",
|
||||
"item.createindustry.quad_potato_cannon": "Четырёхствольная картофельная пушка",
|
||||
"item.createindustry.rebar": "Арматура",
|
||||
"item.createindustry.screw": "Винты",
|
||||
"item.createindustry.screwdriver": "Отвёртка",
|
||||
"item.createindustry.slag": "Шлак",
|
||||
"item.createindustry.spark_plug": "Свеча зажигания",
|
||||
"item.createindustry.steel_ingot": "Стальной слиток",
|
||||
"item.createindustry.steel_mechanism": "Стальной механизм",
|
||||
"item.createindustry.sulfur_dust": "Серная пыль",
|
||||
"item.createindustry.thermite_grenade": "Термитная граната",
|
||||
"item.createindustry.thermite_powder": "Термитный порошок",
|
||||
"item.createindustry.turbine_blade": "Лопасти турбины",
|
||||
"item.createindustry.unfinished_gasoline_engine": "Незаконченный бензиновый двигатель",
|
||||
"item.createindustry.unfinished_lpg_engine": "Незаконченный СНГ двигатель",
|
||||
"item.createindustry.unfinished_steel_mechanism": "Незаконченный стальной механизм",
|
||||
"item.createindustry.unfinished_turbine_engine": "Незаконченный турбинный двигатель",
|
||||
"item.createindustry.unprocessed_heavy_plate": "Незаконченная тяжёлая плита",
|
||||
"item.createindustry.zinc_grenade": "Цинковая граната",
|
||||
|
||||
"itemGroup.createindustry.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.createindustry.building": "Create: TFMG Building Blocks",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.percent_symbol": "%",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_three": "...",
|
||||
"create.goggles.misc.storage_info": "Информация о хранилище:",
|
||||
"create.goggles.fluid_in_tank": "Содержимое бака:",
|
||||
"create.goggles.surface_scanner.no_rotation": "Подключите вращение",
|
||||
"create.goggles.surface_scanner.no_deposit": "Месторождений нефти не найдено",
|
||||
"create.goggles.surface_scanner.deposit_found": "Найдено месторождение нефти!",
|
||||
"create.goggles.surface_scanner.distance": "Дистанция: %1$s блоков",
|
||||
"create.goggles.surface_scanner.scanning_surface": "Сканирование поверхности...",
|
||||
"create.goggles.distillation_tower.status": "Информация о дистилляционной башне:",
|
||||
"create.goggles.distillation_tower.tank_not_found": "Стальной жидкостный бак не найден",
|
||||
"create.goggles.distillation_tower.not_tall_enough": "Жидкостный бак слишком низкий",
|
||||
"create.goggles.distillation_tower.level": "Уровень дистилляционной башни: %1$s",
|
||||
"create.goggles.distillation_tower.found_outputs": "Количество выходов: %1$s",
|
||||
"create.goggles.distillation_tower.no_outputs": "Блоки вывода не найдены",
|
||||
"create.goggles.blast_furnace.stats": "Доменная печь:",
|
||||
"create.goggles.blast_furnace.size_stats": "Размер:",
|
||||
"create.goggles.blast_furnace.fuel_amount": "Количество топлива: %1$s",
|
||||
"create.goggles.blast_furnace.item_count": "Количество предметов: %1$s",
|
||||
"create.goggles.blast_furnace.height": "Высота: %1$s",
|
||||
"create.goggles.blast_furnace.nothing_lol": "",
|
||||
"create.goggles.blast_furnace.status.off": "Статус: Неактивена",
|
||||
"create.goggles.blast_furnace.status.running": "Статус: Работает",
|
||||
"create.goggles.blast_furnace.diameter.one": "Диаметр: 1",
|
||||
"create.goggles.blast_furnace.diameter.two": "Диаметр: 2",
|
||||
"create.goggles.blast_furnace.invalid": "Доменная печь недействительна",
|
||||
"create.goggles.coke_oven.status": "Коксовая печь:",
|
||||
"create.goggles.coke_oven.fluid_amount_output": "Внутреннее содержимое резервуара: %1$s mb",
|
||||
"create.goggles.coke_oven.fluid_amount_exhaust": "Углекислый газ: %1$s mb",
|
||||
"create.goggles.coke_oven.item_count": "Внутренне содержимое: %1$s",
|
||||
"create.goggles.coke_oven.invalid": "Коксовая печь недействительна",
|
||||
"create.goggles.coke_oven.tank_full": "Внутренний резервуар заполнен",
|
||||
"create.goggles.coke_oven.progress": "Коксование: %1$s",
|
||||
"create.goggles.engine_stats": "Статистика двигателя:",
|
||||
"create.goggles.engine_exhaust_stats": "Статистика выхлопа двигателя:",
|
||||
"create.goggles.fuel_container": "Хранение жидкости",
|
||||
"create.goggles.engine.backpartmissing": "Задняя часть отсутствует:",
|
||||
"create.goggles.engine_redstone_input": "Скорость:",
|
||||
"create.goggles.engine.efficiency": "Эффективность:",
|
||||
|
||||
"create.tooltip.engine_analog_strength": "%1$s/15",
|
||||
|
||||
"create.goggles.get_engine_efficiency": "%1$s",
|
||||
"create.goggles.engine.stress": "%1$sЕН",
|
||||
"create.goggles.diesel_engine.info": "Дизельный двигатель:",
|
||||
"create.goggles.pumpjack_info": "Информация о нефтяном насосе:",
|
||||
"create.goggles.pumpjack.part_missing": "Насос или балансир отсутствует",
|
||||
"create.goggles.pumpjack.wrong_rotation1": "Основа повёрнута неправильно, красный маркер должен",
|
||||
"create.goggles.pumpjack.wrong_rotation2": "смотреть ОТ балансира",
|
||||
"create.goggles.pumpjack_fluid_storage": "Информация о жидкостном баке:",
|
||||
|
||||
"create.pumpjack_deposit_amount": "%1$s Buckets",
|
||||
|
||||
"create.goggles.pumpjack.deposit_info": "Информация о месторождении:",
|
||||
"create.goggles.zero": "Месторождение не найдено",
|
||||
"create.goggles.pumpjack.fluid_amount": "Количество жидкости:",
|
||||
"create.goggles.machine_input.info": "Информация о машинном вводе",
|
||||
"create.goggles.machine_input.no_rot": "Подключите вращение!",
|
||||
"create.goggles.machine_input.power_level": "Уровень мощности: ",
|
||||
|
||||
"create.recipe.distillation": "Дистилляция",
|
||||
"create.recipe.advanced_distillation": "Расширенная дистилляция",
|
||||
"create.recipe.industrial_blasting": "Промышленная плавка",
|
||||
"create.recipe.casting": "Литьё",
|
||||
"create.recipe.coking": "Коксование",
|
||||
|
||||
"createindustry.ponder.small_engines.text_1": "Чтобы создать небольшой двигатель, расположите переднюю и заднюю части рядом друг с другом",
|
||||
"createindustry.ponder.small_engines.text_2": "Топливо подается в переднюю часть, а выхлопные газы необходимо отводить из задней части с помощью труб и Выхлопной трубы",
|
||||
"createindustry.ponder.small_engines.text_3": "Подача сигнала редстоуна на переднюю часть запускает двигатель",
|
||||
"createindustry.ponder.small_engines.text_4": "К малогабаритным двигателям относятся двигатели, работающие на Сжиженном Нефтяном Газе, Керосине и Бензине",
|
||||
"createindustry.ponder.diesel_engine.text_1": "Дизельные двигатели собираются путем размещения Вала перед блоком Дизельного двигателя",
|
||||
"createindustry.ponder.diesel_engine.text_2": "Двигатель вырабатывает выхлопные газы, которые необходимо отводить с помощью труб и Выхлопной трубы",
|
||||
"createindustry.ponder.diesel_engine.text_3": "Для работы двигателя необходим Воздух, поэтому нужен Воздухозаборник",
|
||||
"createindustry.ponder.diesel_engine_expansion.text_1": "Расширенный ввод дизельного двигателя может предоставить Дизельному двигателю два новых входных слота для Смазочного масла и Охлаждающей жидкости",
|
||||
"createindustry.ponder.surface_scanner.text_1": "Сканер поверхности используется для обнаружения Месторождений сырой нефти",
|
||||
"createindustry.ponder.surface_scanner.text_2": "Подача вращения к Сканеру позволяет ему сканировать ближайшее месторождение",
|
||||
"createindustry.ponder.surface_scanner.text_3": "Если месторождение обнаружено, компас на Сканере укажет на его местонахождение",
|
||||
"createindustry.ponder.pumpjack.text_1": "Чтобы начать добывать Нефть, вы должны сначала построить трубопровод поверх Месторождения, используя Промышленные трубы",
|
||||
"createindustry.ponder.pumpjack.text_2": "Затем постройте Нефтяной насос поверх трубопровода, Сначала установив основу....",
|
||||
"createindustry.ponder.pumpjack.text_3": "Поставьте за ним Балансир....",
|
||||
"createindustry.ponder.pumpjack.text_4": "И, наконец, разместите Машинный ввод с Насосом над ним, как показано на экране",
|
||||
"createindustry.ponder.distillation_tower.text_1": "Достаточно большой Стальной бак можно превратить в Дистилляционную башню",
|
||||
"createindustry.ponder.distillation_tower.text_2": "Башня собирается путем размещения Стального контроллера дистилляционной башни рядом с резервуаром....",
|
||||
"createindustry.ponder.distillation_tower.text_3": "И размещения до 6 Выходов дистилляционной башни, соединенных Промышленными трубами",
|
||||
"createindustry.ponder.distillation_tower.text_4": "Горелки всполоха необходимы для работы дистилляционной башни. На индикаторе снизу башни отображается текущий уровень мощности.",
|
||||
"createindustry.ponder.distillation_tower.text_5": "Что бы ввести Сырую нефть, её необходимо закачать в блок Контроллера",
|
||||
"createindustry.ponder.distillation_tower.text_6": "Каждый Выходной блок обеспечивает выход одного из побочных продуктов нефти",
|
||||
"createindustry.ponder.distillation_tower.text_7": "СНГ",
|
||||
"createindustry.ponder.distillation_tower.text_8": "Бензин",
|
||||
"createindustry.ponder.distillation_tower.text_9": "Лигроин",
|
||||
"createindustry.ponder.distillation_tower.text_10": "Керосин",
|
||||
"createindustry.ponder.distillation_tower.text_11": "Дизель",
|
||||
"createindustry.ponder.distillation_tower.text_12": "Мазут",
|
||||
"createindustry.ponder.blast_furnace.text_1": "Основой Доменной печи является блок Вывода доменной печи.",
|
||||
"createindustry.ponder.blast_furnace.text_2": "Чтобы собрать Доменную печь, постройте дымоход из Огнеупорных кирпичей, как показано на экране.",
|
||||
"createindustry.ponder.blast_furnace.text_3": "Нижнюю половину дымохода необходимо укрепить.",
|
||||
"createindustry.ponder.blast_furnace.text_4": "Топливо и другие предметы вводятся через отверстие вверху.",
|
||||
"createindustry.ponder.coke_oven.text_1": "Коксовая печь строится путем размещения блоков Коксовой печи, как показано на экране, включая направление блоков, и клика Гаечным ключём по узкой стороне.",
|
||||
"createindustry.ponder.coke_oven.text_2": "Процесс коксования достаточно медленный, поэтому эффективнее иметь длинные ряды одновременно работающих печей.",
|
||||
"createindustry.ponder.coke_oven.text_3": "Уголь может быть введён через любую из сторон",
|
||||
"createindustry.ponder.coke_oven.text_4": "Во время работы печь вырабатывает Креозот и Углекислый газ, которые необходимо откачивать для продолжения работы.",
|
||||
"createindustry.ponder.coke_oven.text_5": "После этого Коксовый уголь выпадет из отверстия.",
|
||||
"createindustry.ponder.casting.text_1": "Литье — это процесс заливки Жидкого металла в Литейную форму с помощью Литейного дозатора.",
|
||||
"createindustry.ponder.casting.text_2": "Литейная чаша, очевидно, требует Формы литья для работы.",
|
||||
|
||||
"createindustry.ponder.distillation_tower.header": "Установка дистилляционной башни",
|
||||
|
||||
"createindustry.ponder.pumpjack.header": "Строительство нефтяных насосов",
|
||||
|
||||
"createindustry.ponder.surface_scanner.header": "Поиск нефти",
|
||||
|
||||
"createindustry.ponder.diesel_engine.header": "Сборка дизельного двигателя",
|
||||
|
||||
"createindustry.ponder.diesel_engine_expansion.header": "Расширение дизельных двигателей",
|
||||
|
||||
"createindustry.ponder.small_engines.header": "Создание небольших двигателей",
|
||||
|
||||
"createindustry.ponder.coke_oven.header": "Строительство коксовой печи",
|
||||
"createindustry.ponder.blast_furnace": "Строительство доменной печи",
|
||||
|
||||
"createindustry.ponder.casting.header": "Литье металла",
|
||||
"createindustry.ponder.tag.oil": "Машины, связанные с нефтью",
|
||||
"createindustry.ponder.tag.metallurgy": "Металлообрабатывающие машины",
|
||||
"createindustry.ponder.tag.oil.description": "Машины, которые добывают, перерабатывают или используют сырую нефть и ее побочные продукты.",
|
||||
"createindustry.ponder.tag.metallurgy.description": "Машины, которые производят, обрабатывают или используют металл и сырье как таковое.",
|
||||
|
||||
"createindustry.subtitle.engine_sounds": "Звуки двигателя",
|
||||
"createindustry.subtitle.diesel_engine_sounds": "Звуки дизельного двигателя",
|
||||
|
||||
|
||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||
|
||||
"itemGroup.createindustry.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.createindustry.building": "Create: TFMG Строительные блоки",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.percent_symbol": "%",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_three": "...",
|
||||
"create.goggles.misc.storage_info": "Информация о хранилище:",
|
||||
"create.goggles.fluid_in_tank": "Содержимое бака:",
|
||||
"create.goggles.surface_scanner.no_rotation": "Подключите вращение",
|
||||
"create.goggles.surface_scanner.no_deposit": "Месторождений нефти не найдено",
|
||||
"create.goggles.surface_scanner.deposit_found": "Найдено месторождение нефти!",
|
||||
"create.goggles.surface_scanner.distance": "Дистанция: %1$s блоков",
|
||||
"create.goggles.surface_scanner.scanning_surface": "Сканирование поверхности...",
|
||||
"create.goggles.distillation_tower.status": "Информация о дистилляционной башне:",
|
||||
"create.goggles.distillation_tower.tank_not_found": "Стальной жидкостный бак не найден",
|
||||
"create.goggles.distillation_tower.not_tall_enough": "Жидкостный бак слишком низкий",
|
||||
"create.goggles.distillation_tower.level": "Уровень дистилляционной башни: %1$s",
|
||||
"create.goggles.distillation_tower.found_outputs": "Количество выходов: %1$s",
|
||||
"create.goggles.distillation_tower.no_outputs": "Блоки вывода не найдены",
|
||||
"create.goggles.blast_furnace.stats": "Доменная печь:",
|
||||
|
||||
"create.distillation_tower.size": "Размер",
|
||||
"create.distillation_tower.heat": "Нагрев",
|
||||
|
||||
"create.goggles.blast_furnace.fuel_amount": "Количество топлива: %1$s",
|
||||
"create.goggles.blast_furnace.item_count": "Количество предметов: %1$s",
|
||||
"create.goggles.blast_furnace.height": "Высота: %1$s",
|
||||
"create.goggles.blast_furnace.nothing_lol": "",
|
||||
"create.goggles.blast_furnace.status.off": "Статус: Неактивена",
|
||||
"create.goggles.blast_furnace.status.running": "Статус: Работает",
|
||||
"create.goggles.blast_furnace.diameter.one": "Диаметр: 1",
|
||||
"create.goggles.blast_furnace.diameter.two": "Диаметр: 2",
|
||||
"create.goggles.blast_furnace.invalid": "Доменная печь недействительна",
|
||||
"create.goggles.coke_oven.status": "Коксовая печь:",
|
||||
"create.goggles.coke_oven.fluid_amount_output": "Внутреннее содержимое резервуара: %1$s mb",
|
||||
"create.goggles.coke_oven.fluid_amount_exhaust": "Углекислый газ: %1$s mb",
|
||||
"create.goggles.coke_oven.item_count": "Внутренне содержимое: %1$s",
|
||||
"create.goggles.coke_oven.invalid": "Коксовая печь недействительна",
|
||||
"create.goggles.coke_oven.tank_full": "Внутренний резервуар заполнен",
|
||||
"create.goggles.coke_oven.progress": "Коксование: %1$s",
|
||||
"create.goggles.engine_stats": "Статистика двигателя:",
|
||||
"create.goggles.engine_exhaust_stats": "Статистика выхлопа двигателя:",
|
||||
"create.goggles.fuel_container": "Хранение жидкости",
|
||||
"create.goggles.engine.backpartmissing": "Задняя часть отсутствует:",
|
||||
"create.goggles.engine_redstone_input": "Скорость:",
|
||||
"create.goggles.engine.efficiency": "Эффективность:",
|
||||
|
||||
"create.tooltip.engine_analog_strength": "%1$s/15",
|
||||
|
||||
"create.goggles.get_engine_efficiency": "%1$s",
|
||||
"create.goggles.engine.stress": "%1$sЕН",
|
||||
"create.goggles.diesel_engine.info": "Дизельный двигатель:",
|
||||
"create.goggles.pumpjack_info": "Информация о нефтяном насосе:",
|
||||
"create.goggles.pumpjack.part_missing": "Насос или балансир отсутствует",
|
||||
"create.goggles.pumpjack.wrong_rotation1": "Основа повёрнута неправильно, красный маркер должен",
|
||||
"create.goggles.pumpjack.wrong_rotation2": "смотреть ОТ балансира",
|
||||
"create.goggles.pumpjack_fluid_storage": "Информация о жидкостном баке:",
|
||||
|
||||
"create.pumpjack_deposit_amount": "%1$s Buckets",
|
||||
|
||||
"create.goggles.pumpjack.deposit_info": "Информация о месторождении:",
|
||||
"create.goggles.zero": "Месторождение не найдено",
|
||||
"create.goggles.pumpjack.fluid_amount": "Количество жидкости:",
|
||||
"create.goggles.machine_input.info": "Информация о машинном вводе",
|
||||
"create.goggles.machine_input.no_rot": "Подключите вращение!",
|
||||
"create.goggles.machine_input.power_level": "Уровень мощности: ",
|
||||
|
||||
"create.recipe.distillation": "Дистилляция",
|
||||
"create.recipe.advanced_distillation": "Расширенная дистилляция",
|
||||
"create.recipe.industrial_blasting": "Промышленная плавка",
|
||||
"create.recipe.casting": "Литьё",
|
||||
"create.recipe.coking": "Коксование",
|
||||
|
||||
"createindustry.subtitle.engine_sounds": "Звуки двигателя",
|
||||
"createindustry.subtitle.diesel_engine_sounds": "Звуки дизельного двигателя",
|
||||
|
||||
|
||||
"_": "->------------------------] Ponders [------------------------<-",
|
||||
|
||||
"createindustry.ponder.small_engines.text_1": "Чтобы создать небольшой двигатель, расположите переднюю и заднюю части рядом друг с другом",
|
||||
"createindustry.ponder.small_engines.text_2": "Топливо подается в переднюю часть, а выхлопные газы необходимо отводить из задней части с помощью труб и Выхлопной трубы",
|
||||
"createindustry.ponder.small_engines.text_3": "Подача сигнала редстоуна на переднюю часть запускает двигатель",
|
||||
"createindustry.ponder.small_engines.text_4": "К малогабаритным двигателям относятся двигатели, работающие на Сжиженном Нефтяном Газе, Керосине и Кензине",
|
||||
"createindustry.ponder.diesel_engine.text_1": "Дизельные двигатели собираются путем размещения Вала перед блоком дизельного Двигателя",
|
||||
"createindustry.ponder.diesel_engine.text_2": "Двигатель вырабатывает выхлопные газы, которые необходимо отводить с помощью труб и Выхлопной трубы",
|
||||
"createindustry.ponder.diesel_engine.text_3": "Для работы двигателя необходим Воздух, поэтому нужен Воздухозаборник",
|
||||
"createindustry.ponder.diesel_engine_expansion.text_1": "Расширенный ввод дизельного двигателя может предоставить Дизельному двигателю два новых входных слота для Смазочного масла и Охлаждающей жидкости",
|
||||
"createindustry.ponder.surface_scanner.text_1": "Сканер поверхности используется для обнаружения Месторождений сырой нефти",
|
||||
"createindustry.ponder.surface_scanner.text_2": "Подача вращения к Сканеру позволяет ему сканировать ближайшее месторождение",
|
||||
"createindustry.ponder.surface_scanner.text_3": "Если месторождение обнаружено, компас на Сканере укажет на его местонахождение",
|
||||
"createindustry.ponder.pumpjack.text_1": "Чтобы начать добывать Нефть, вы должны сначала построить трубопровод поверх Месторождения, используя Промышленные трубы",
|
||||
"createindustry.ponder.pumpjack.text_2": "Затем постройте Нефтяной насос поверх трубопровода, сначала установив Основу...",
|
||||
"createindustry.ponder.pumpjack.text_3": "За ним поставьте Балансир...",
|
||||
"createindustry.ponder.pumpjack.text_4": "И, наконец, разместите Машинный ввод с Насосом над ним, как показано на экране",
|
||||
"createindustry.ponder.distillation_tower.text_1": "Достаточно большой Стальной бак можно превратить в Дистилляционную башню",
|
||||
"createindustry.ponder.distillation_tower.text_2": "Башня собирается путем размещения Стального контроллера дистилляционной башни рядом с резервуаром...",
|
||||
"createindustry.ponder.distillation_tower.text_3": "И размещения до 6 Выходов дистилляционной башни, соединенных Промышленными трубами",
|
||||
"createindustry.ponder.distillation_tower.text_4": "Горелки всполоха необходимы для работы Дистилляционной башни. На индикаторе снизу башни отображается текущий уровень мощности",
|
||||
"createindustry.ponder.distillation_tower.text_5": "Что бы закачать Сырую нефть в башню, её необходимо ввести в блок Контроллера",
|
||||
"createindustry.ponder.distillation_tower.text_6": "Каждый Выходной блок обеспечивает выход одного из побочных продуктов нефти",
|
||||
"createindustry.ponder.distillation_tower.text_7": "СНГ",
|
||||
"createindustry.ponder.distillation_tower.text_8": "Безнин",
|
||||
"createindustry.ponder.distillation_tower.text_9": "Лигроин",
|
||||
"createindustry.ponder.distillation_tower.text_10": "Керосин",
|
||||
"createindustry.ponder.distillation_tower.text_11": "Дизель",
|
||||
"createindustry.ponder.distillation_tower.text_12": "Мазут",
|
||||
"createindustry.ponder.blast_furnace.text_1": "Основой Доменной печи является блок Вывода доменной печи",
|
||||
"createindustry.ponder.blast_furnace.text_2": "Чтобы собрать Доменную печь, постройте дымоход из Огнеупорных кирпичей, как показано на экране",
|
||||
"createindustry.ponder.blast_furnace.text_3": "Нижнюю половину дымохода необходимо укрепить",
|
||||
"createindustry.ponder.blast_furnace.text_4": "Топливо и другие предметы вводятся через отверстие вверху",
|
||||
"createindustry.ponder.coke_oven.text_1": "Коксовая печь строится путем размещения блоков Коксовой печи, как показано на экране, включая направление блоков, и клика Гаечным ключём по узкой стороне",
|
||||
"createindustry.ponder.coke_oven.text_2": "Процесс коксования достаточно медленный, поэтому эффективнее иметь длинные ряды одновременно работающих печей",
|
||||
"createindustry.ponder.coke_oven.text_3": "Уголь может быть введён через любую из сторон",
|
||||
"createindustry.ponder.coke_oven.text_4": "Во время работы Печь вырабатывает Креозот и Углекислый газ, которые необходимо откачивать для продолжения работы",
|
||||
"createindustry.ponder.coke_oven.text_5": "После этого Коксовый уголь выпадет из отверстия",
|
||||
"createindustry.ponder.casting.text_1": "Литье — это процесс заливки Жидкого металла в Литейную форму с помощью Литейного дозатора",
|
||||
"createindustry.ponder.casting.text_2": "Литейная чаша, очевидно, требует Формы литья для работы",
|
||||
|
||||
"createindustry.ponder.distillation_tower.header": "Установка дистилляционной башни",
|
||||
|
||||
"createindustry.ponder.pumpjack.header": "Строительство нефтяных насосов",
|
||||
|
||||
"createindustry.ponder.surface_scanner.header": "Поиск нефти",
|
||||
|
||||
"createindustry.ponder.diesel_engine.header": "Сборка дизельного двигателя",
|
||||
|
||||
"createindustry.ponder.diesel_engine_expansion.header": "Расширение дизельных двигателей",
|
||||
|
||||
"createindustry.ponder.small_engines.header": "Создание небольших двигателей",
|
||||
|
||||
"createindustry.ponder.coke_oven.header": "Строительство коксовой печи",
|
||||
"createindustry.ponder.blast_furnace": "Строительство доменной печи",
|
||||
|
||||
"createindustry.ponder.casting.header": "Литье металла",
|
||||
"createindustry.ponder.tag.oil": "Машины, связанные с нефтью",
|
||||
"createindustry.ponder.tag.metallurgy": "Металлообрабатывающие машины",
|
||||
"createindustry.ponder.tag.oil.description": "Машины, которые добывают, перерабатывают или используют сырую нефть и ее побочные продукты",
|
||||
"createindustry.ponder.tag.metallurgy.description": "Машины, которые производят, обрабатывают или используют металл и сырье как таковое",
|
||||
|
||||
"_": "Thank you for translating Create: The Factory Must Grow!" ,
|
||||
"_": "No Problem))))))spend 4 hours........"
|
||||
|
||||
}
|
||||
437
src/main/resources/assets/createindustry/lang/zh_cn.json
Normal file
@@ -0,0 +1,437 @@
|
||||
{
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
"block.createindustry.air_intake": "进气扇",
|
||||
"block.createindustry.aluminum_bars": "铝栏杆",
|
||||
"block.createindustry.aluminum_block": "铝块",
|
||||
"block.createindustry.aluminum_fluid_valve": "铝流体阀门",
|
||||
"block.createindustry.aluminum_flywheel": "铝飞轮",
|
||||
"block.createindustry.aluminum_ladder": "铝梯子",
|
||||
"block.createindustry.aluminum_mechanical_pump": "铝动力泵",
|
||||
"block.createindustry.aluminum_pipe": "铝流体管道",
|
||||
"block.createindustry.aluminum_scaffolding": "铝脚手架",
|
||||
"block.createindustry.aluminum_smart_fluid_pipe": "铝智能流体管道",
|
||||
"block.createindustry.aluminum_truss": "铝桁架",
|
||||
"block.createindustry.asphalt": "沥青",
|
||||
"block.createindustry.bauxite": "铝土矿",
|
||||
"block.createindustry.bauxite_pillar": "竖纹铝土矿",
|
||||
"block.createindustry.black_concrete": "黑色混凝土",
|
||||
"block.createindustry.black_concrete_slab": "黑色混凝土台阶",
|
||||
"block.createindustry.black_concrete_stairs": "黑色混凝土楼梯",
|
||||
"block.createindustry.black_concrete_wall": "黑色混凝土墙",
|
||||
"block.createindustry.blast_furnace_output": "高炉输出口",
|
||||
"block.createindustry.blue_concrete": "蓝色混凝土",
|
||||
"block.createindustry.blue_concrete_slab": "蓝色混凝土台阶",
|
||||
"block.createindustry.blue_concrete_stairs": "蓝色混凝土楼梯",
|
||||
"block.createindustry.blue_concrete_wall": "蓝色混凝土墙",
|
||||
"block.createindustry.brass_fluid_valve": "黄铜流体阀门",
|
||||
"block.createindustry.brass_mechanical_pump": "黄铜动力泵",
|
||||
"block.createindustry.brass_pipe": "黄铜流体管道",
|
||||
"block.createindustry.brass_smart_fluid_pipe": "黄铜智能流体管道",
|
||||
"block.createindustry.brown_concrete": "棕色混凝土",
|
||||
"block.createindustry.brown_concrete_slab": "棕色混凝土台阶",
|
||||
"block.createindustry.brown_concrete_stairs": "棕色混凝土楼梯",
|
||||
"block.createindustry.brown_concrete_wall": "棕色混凝土墙",
|
||||
"block.createindustry.cast_iron_block": "铸铁块",
|
||||
"block.createindustry.cast_iron_distillation_controller": "铸铁分馏塔控制器",
|
||||
"block.createindustry.cast_iron_distillation_output": "铸铁分馏塔输出口",
|
||||
"block.createindustry.cast_iron_fluid_valve": "铸铁流体阀门",
|
||||
"block.createindustry.cast_iron_flywheel": "铸铁飞轮",
|
||||
"block.createindustry.cast_iron_mechanical_pump": "铸铁动力泵",
|
||||
"block.createindustry.cast_iron_pipe": "铸铁流体管道",
|
||||
"block.createindustry.cast_iron_smart_fluid_pipe": "铸铁智能流体管道",
|
||||
"block.createindustry.casting_basin": "铸造盆",
|
||||
"block.createindustry.casting_spout": "注模器",
|
||||
"block.createindustry.caution_block": "警示方块",
|
||||
"block.createindustry.cement": "水泥",
|
||||
"block.createindustry.coal_coke_block": "焦煤块",
|
||||
"block.createindustry.coke_oven": "焦炉",
|
||||
"block.createindustry.concrete": "混凝土",
|
||||
"block.createindustry.concrete_slab": "混凝土台阶",
|
||||
"block.createindustry.concrete_stairs": "混凝土楼梯",
|
||||
"block.createindustry.concrete_wall": "混凝土墙",
|
||||
"block.createindustry.cooling_fluid": "冷却液",
|
||||
"block.createindustry.copper_encased_aluminum_pipe": "铝流体管道箱",
|
||||
"block.createindustry.copper_encased_brass_pipe": "黄铜流体管道箱",
|
||||
"block.createindustry.copper_encased_cast_iron_pipe": "铸铁流体管道箱",
|
||||
"block.createindustry.copper_encased_plastic_pipe": "塑料流体管道箱",
|
||||
"block.createindustry.copper_encased_steel_pipe": "钢流体管道箱",
|
||||
"block.createindustry.creosote": "杂酚油",
|
||||
"block.createindustry.crude_oil_fluid": "原油",
|
||||
"block.createindustry.cut_bauxite": "切制铝土矿",
|
||||
"block.createindustry.cut_bauxite_brick_slab": "切制铝土砖块台阶",
|
||||
"block.createindustry.cut_bauxite_brick_stairs": "切制铝土砖块楼梯",
|
||||
"block.createindustry.cut_bauxite_brick_wall": "切制铝土砖块墙",
|
||||
"block.createindustry.cut_bauxite_bricks": "切制铝土砖块",
|
||||
"block.createindustry.cut_bauxite_slab": "切制铝土台阶",
|
||||
"block.createindustry.cut_bauxite_stairs": "切制铝土楼梯",
|
||||
"block.createindustry.cut_bauxite_wall": "切制铝土墙",
|
||||
"block.createindustry.cyan_concrete": "青色混凝土",
|
||||
"block.createindustry.cyan_concrete_slab": "青色混凝土台阶",
|
||||
"block.createindustry.cyan_concrete_stairs": "青色混凝土楼梯",
|
||||
"block.createindustry.cyan_concrete_wall": "青色混凝土墙",
|
||||
"block.createindustry.diesel": "柴油",
|
||||
"block.createindustry.diesel_engine": "柴油引擎",
|
||||
"block.createindustry.diesel_engine_expansion": "柴油引擎扩充件",
|
||||
"block.createindustry.exhaust": "排气管",
|
||||
"block.createindustry.factory_floor": "工厂地板",
|
||||
"block.createindustry.factory_floor_slab": "工厂地板台阶",
|
||||
"block.createindustry.factory_floor_stairs": "工厂地板楼梯",
|
||||
"block.createindustry.fireclay": "耐火黏土",
|
||||
"block.createindustry.fireproof_brick_reinforcement": "耐火砖固墙",
|
||||
"block.createindustry.fireproof_bricks": "耐火砖",
|
||||
"block.createindustry.flarestack": "焚油火炬",
|
||||
"block.createindustry.formwork_block": "浇筑模板",
|
||||
"block.createindustry.fossilstone": "化石",
|
||||
"block.createindustry.gasoline": "汽油",
|
||||
"block.createindustry.gasoline_engine": "汽油引擎",
|
||||
"block.createindustry.gasoline_engine_back": "汽油引擎机尾",
|
||||
"block.createindustry.glass_aluminum_pipe": "玻璃铝流体管道",
|
||||
"block.createindustry.glass_brass_pipe": "玻璃黄铜流体管道",
|
||||
"block.createindustry.glass_cast_iron_pipe": "玻璃铸铁流体管道",
|
||||
"block.createindustry.glass_plastic_pipe": "玻璃塑料流体管道",
|
||||
"block.createindustry.glass_steel_pipe": "玻璃钢流体管道",
|
||||
"block.createindustry.gray_concrete": "灰色混凝土",
|
||||
"block.createindustry.gray_concrete_slab": "灰色混凝土台阶",
|
||||
"block.createindustry.gray_concrete_stairs": "灰色混凝土楼梯",
|
||||
"block.createindustry.gray_concrete_wall": "灰色混凝土墙",
|
||||
"block.createindustry.green_concrete": "绿色混凝土",
|
||||
"block.createindustry.green_concrete_slab": "绿色混凝土台阶",
|
||||
"block.createindustry.green_concrete_stairs": "绿色混凝土楼梯",
|
||||
"block.createindustry.green_concrete_wall": "绿色混凝土墙",
|
||||
"block.createindustry.hardened_planks": "硬化木板",
|
||||
"block.createindustry.heavy_casing_door": "坚固门",
|
||||
"block.createindustry.heavy_machinery_casing": "重型机械机壳",
|
||||
"block.createindustry.heavy_oil": "重油",
|
||||
"block.createindustry.industrial_pipe": "工业级流体管道",
|
||||
"block.createindustry.kerosene": "煤油",
|
||||
"block.createindustry.layered_bauxite": "层叠铝土矿",
|
||||
"block.createindustry.light_blue_concrete": "淡蓝色混凝土",
|
||||
"block.createindustry.light_blue_concrete_slab": "淡蓝色混凝土台阶",
|
||||
"block.createindustry.light_blue_concrete_stairs": "淡蓝色混凝土楼梯",
|
||||
"block.createindustry.light_blue_concrete_wall": "淡蓝色混凝土墙",
|
||||
"block.createindustry.light_gray_concrete": "淡灰色混凝土",
|
||||
"block.createindustry.light_gray_concrete_slab": "淡灰色混凝土台阶",
|
||||
"block.createindustry.light_gray_concrete_stairs": "淡灰色混凝土楼梯",
|
||||
"block.createindustry.light_gray_concrete_wall": "淡灰色混凝土墙",
|
||||
"block.createindustry.lignite": "褐煤",
|
||||
"block.createindustry.lime_concrete": "黄绿色混凝土",
|
||||
"block.createindustry.lime_concrete_slab": "黄绿色混凝土台阶",
|
||||
"block.createindustry.lime_concrete_stairs": "黄绿色混凝土楼梯",
|
||||
"block.createindustry.lime_concrete_wall": "黄绿色混凝土墙",
|
||||
"block.createindustry.limesand": "石灰砂",
|
||||
"block.createindustry.liquid_asphalt": "液态沥青",
|
||||
"block.createindustry.liquid_concrete": "液态混凝土",
|
||||
"block.createindustry.liquid_plastic": "液态塑料",
|
||||
"block.createindustry.lpg_engine": "液化石油气引擎",
|
||||
"block.createindustry.lpg_engine_back": "液化石油气引擎机尾",
|
||||
"block.createindustry.lubrication_oil": "润滑油",
|
||||
"block.createindustry.machine_input": "动力输入口",
|
||||
"block.createindustry.magenta_concrete": "品红色混凝土",
|
||||
"block.createindustry.magenta_concrete_slab": "品红色混凝土台阶",
|
||||
"block.createindustry.magenta_concrete_stairs": "品红色混凝土楼梯",
|
||||
"block.createindustry.magenta_concrete_wall": "品红色混凝土墙",
|
||||
"block.createindustry.molten_metal": "熔融金属",
|
||||
"block.createindustry.molten_slag": "熔融炉渣",
|
||||
"block.createindustry.molten_steel": "熔融钢",
|
||||
"block.createindustry.napalm": "凝固汽油",
|
||||
"block.createindustry.napalm_bomb": "凝固汽油弹",
|
||||
"block.createindustry.naphtha": "石脑油",
|
||||
"block.createindustry.oil_deposit": "油田",
|
||||
"block.createindustry.orange_concrete": "橙色混凝土",
|
||||
"block.createindustry.orange_concrete_slab": "橙色混凝土台阶",
|
||||
"block.createindustry.orange_concrete_stairs": "橙色混凝土楼梯",
|
||||
"block.createindustry.orange_concrete_wall": "橙色混凝土墙",
|
||||
"block.createindustry.pink_concrete": "粉红色混凝土",
|
||||
"block.createindustry.pink_concrete_slab": "粉红色混凝土台阶",
|
||||
"block.createindustry.pink_concrete_stairs": "粉红色混凝土楼梯",
|
||||
"block.createindustry.pink_concrete_wall": "粉红色混凝土墙",
|
||||
"block.createindustry.plastic_block": "塑料块",
|
||||
"block.createindustry.plastic_fluid_valve": "塑料流体阀门",
|
||||
"block.createindustry.plastic_mechanical_pump": "塑料动力泵",
|
||||
"block.createindustry.plastic_pipe": "塑料流体管道",
|
||||
"block.createindustry.plastic_smart_fluid_pipe": "塑料智能流体管道",
|
||||
"block.createindustry.polished_cut_bauxite": "磨制切制铝土矿",
|
||||
"block.createindustry.polished_cut_bauxite_slab": "磨制切制铝土台阶",
|
||||
"block.createindustry.polished_cut_bauxite_stairs": "磨制切制铝土楼梯",
|
||||
"block.createindustry.polished_cut_bauxite_wall": "磨制切制铝土墙",
|
||||
"block.createindustry.pumpjack_base": "抽油机油泵",
|
||||
"block.createindustry.pumpjack_crank": "抽油机曲柄",
|
||||
"block.createindustry.pumpjack_hammer_holder": "抽油机游梁架",
|
||||
"block.createindustry.purple_concrete": "紫色混凝土",
|
||||
"block.createindustry.purple_concrete_slab": "紫色混凝土台阶",
|
||||
"block.createindustry.purple_concrete_stairs": "紫色混凝土楼梯",
|
||||
"block.createindustry.purple_concrete_wall": "紫色混凝土墙",
|
||||
"block.createindustry.rebar_concrete": "钢筋混凝土",
|
||||
"block.createindustry.rebar_concrete_slab": "钢筋混凝土台阶",
|
||||
"block.createindustry.rebar_concrete_stairs": "钢筋混凝土楼梯",
|
||||
"block.createindustry.rebar_concrete_wall": "钢筋混凝土墙",
|
||||
"block.createindustry.rebar_formwork_block": "钢筋浇筑模板",
|
||||
"block.createindustry.red_caution_block": "红色警示方块",
|
||||
"block.createindustry.red_concrete": "红色混凝土",
|
||||
"block.createindustry.red_concrete_slab": "红色混凝土台阶",
|
||||
"block.createindustry.red_concrete_stairs": "红色混凝土楼梯",
|
||||
"block.createindustry.red_concrete_wall": "红色混凝土墙",
|
||||
"block.createindustry.small_bauxite_brick_slab": "铝土小砖块台阶",
|
||||
"block.createindustry.small_bauxite_brick_stairs": "铝土小砖块楼梯",
|
||||
"block.createindustry.small_bauxite_brick_wall": "铝土小砖块墙",
|
||||
"block.createindustry.small_bauxite_bricks": "铝土小砖块",
|
||||
"block.createindustry.steel_bars": "钢筋",
|
||||
"block.createindustry.steel_block": "钢块",
|
||||
"block.createindustry.steel_casing": "钢机壳",
|
||||
"block.createindustry.steel_distillation_controller": "钢分馏塔控制器",
|
||||
"block.createindustry.steel_distillation_output": "钢分馏塔输出口",
|
||||
"block.createindustry.steel_door": "钢门",
|
||||
"block.createindustry.steel_fluid_tank": "钢流体储罐",
|
||||
"block.createindustry.steel_fluid_valve": "钢流体阀门",
|
||||
"block.createindustry.steel_flywheel": "钢飞轮",
|
||||
"block.createindustry.steel_ladder": "钢梯子",
|
||||
"block.createindustry.steel_mechanical_pump": "钢动力泵",
|
||||
"block.createindustry.steel_pipe": "钢流体管道",
|
||||
"block.createindustry.steel_scaffolding": "钢脚手架",
|
||||
"block.createindustry.steel_smart_fluid_pipe": "钢智能流体管道",
|
||||
"block.createindustry.steel_truss": "钢桁架",
|
||||
"block.createindustry.sulfur": "硫磺",
|
||||
"block.createindustry.surface_scanner": "原油探测器",
|
||||
"block.createindustry.turbine_engine": "涡轮引擎",
|
||||
"block.createindustry.turbine_engine_back": "涡轮引擎机尾",
|
||||
"block.createindustry.white_concrete": "白色混凝土",
|
||||
"block.createindustry.white_concrete_slab": "白色混凝土台阶",
|
||||
"block.createindustry.white_concrete_stairs": "白色混凝土楼梯",
|
||||
"block.createindustry.white_concrete_wall": "白色混凝土墙",
|
||||
"block.createindustry.yellow_concrete": "黄色混凝土",
|
||||
"block.createindustry.yellow_concrete_slab": "黄色混凝土台阶",
|
||||
"block.createindustry.yellow_concrete_stairs": "黄色混凝土楼梯",
|
||||
"block.createindustry.yellow_concrete_wall": "黄色混凝土墙",
|
||||
|
||||
"entity.createindustry.blue_spark": "蓝火花",
|
||||
"entity.createindustry.copper_grenade": "铜焰铝热弹",
|
||||
"entity.createindustry.green_spark": "绿火花",
|
||||
"entity.createindustry.napalm_bomb_entity": "凝固汽油弹",
|
||||
"entity.createindustry.spark": "火花",
|
||||
"entity.createindustry.thermite_grenade": "铝热弹",
|
||||
"entity.createindustry.zin_grenade": "锌焰铝热弹",
|
||||
|
||||
"fluid.createindustry.air": "空气",
|
||||
"fluid.createindustry.butane": "丁烷",
|
||||
"fluid.createindustry.carbon_dioxide": "二氧化碳",
|
||||
"fluid.createindustry.cooling_fluid": "冷却液",
|
||||
"fluid.createindustry.creosote": "杂酚油",
|
||||
"fluid.createindustry.crude_oil_fluid": "原油",
|
||||
"fluid.createindustry.diesel": "柴油",
|
||||
"fluid.createindustry.ethylene": "乙烯",
|
||||
"fluid.createindustry.gasoline": "汽油",
|
||||
"fluid.createindustry.heavy_oil": "重油",
|
||||
"fluid.createindustry.kerosene": "煤油",
|
||||
"fluid.createindustry.liquid_asphalt": "液态沥青",
|
||||
"fluid.createindustry.liquid_concrete": "液态混凝土",
|
||||
"fluid.createindustry.liquid_plastic": "液态塑料",
|
||||
"fluid.createindustry.lpg": "液化石油气",
|
||||
"fluid.createindustry.lubrication_oil": "润滑油",
|
||||
"fluid.createindustry.molten_slag": "熔融炉渣",
|
||||
"fluid.createindustry.molten_steel": "熔融钢",
|
||||
"fluid.createindustry.napalm": "凝固汽油",
|
||||
"fluid.createindustry.naphtha": "石脑油",
|
||||
"fluid.createindustry.propane": "丙烷",
|
||||
"fluid.createindustry.propylene": "丙烯",
|
||||
|
||||
"item.createindustry.aluminum_ingot": "铝锭",
|
||||
"item.createindustry.bitumen": "沥青",
|
||||
"item.createindustry.blasting_mixture": "铁矿混合粉",
|
||||
"item.createindustry.block_mold": "块状铸模",
|
||||
"item.createindustry.cast_iron_ingot": "铸铁锭",
|
||||
"item.createindustry.charcoal_dust": "木炭粉",
|
||||
"item.createindustry.coal_coke": "焦煤",
|
||||
"item.createindustry.coal_coke_dust": "焦煤粉",
|
||||
"item.createindustry.cooling_fluid_bucket": "冷却液桶",
|
||||
"item.createindustry.copper_grenade": "铜焰铝热弹",
|
||||
"item.createindustry.creosote_bucket": "杂酚油桶",
|
||||
"item.createindustry.crude_oil_fluid_bucket": "原油桶",
|
||||
"item.createindustry.diesel_bucket": "柴油桶",
|
||||
"item.createindustry.engine_base": "引擎基座",
|
||||
"item.createindustry.engine_chamber": "引擎燃烧室",
|
||||
"item.createindustry.fireclay_ball": "耐火黏土球",
|
||||
"item.createindustry.fireproof_brick": "耐火砖",
|
||||
"item.createindustry.gasoline_bucket": "汽油桶",
|
||||
"item.createindustry.heavy_oil_bucket": "重油桶",
|
||||
"item.createindustry.heavy_plate": "厚钢板",
|
||||
"item.createindustry.ingot_mold": "锭状铸模",
|
||||
"item.createindustry.kerosene_bucket": "煤油桶",
|
||||
"item.createindustry.liquid_asphalt_bucket": "液态沥青桶",
|
||||
"item.createindustry.liquid_concrete_bucket": "液态混凝土桶",
|
||||
"item.createindustry.liquid_plastic_bucket": "液态塑料桶",
|
||||
"item.createindustry.lubrication_oil_bucket": "润滑油桶",
|
||||
"item.createindustry.molten_slag_bucket": "熔融炉渣桶",
|
||||
"item.createindustry.molten_steel_bucket": "熔融钢桶",
|
||||
"item.createindustry.napalm_bucket": "凝固汽油桶",
|
||||
"item.createindustry.naphtha_bucket": "石脑油桶",
|
||||
"item.createindustry.nitrate_dust": "硝酸盐粉",
|
||||
"item.createindustry.plastic_sheet": "塑料板",
|
||||
"item.createindustry.quad_potato_cannon": "四管土豆加农炮",
|
||||
"item.createindustry.rebar": "钢筋",
|
||||
"item.createindustry.screw": "螺丝",
|
||||
"item.createindustry.screwdriver": "螺丝刀",
|
||||
"item.createindustry.slag": "炉渣",
|
||||
"item.createindustry.spark_plug": "火花塞",
|
||||
"item.createindustry.steel_ingot": "钢锭",
|
||||
"item.createindustry.steel_mechanism": "钢铁构件",
|
||||
"item.createindustry.sulfur_dust": "硫磺粉",
|
||||
"item.createindustry.thermite_grenade": "铝热弹",
|
||||
"item.createindustry.thermite_powder": "铝热粉",
|
||||
"item.createindustry.turbine_blade": "涡轮叶片",
|
||||
"item.createindustry.unfinished_gasoline_engine": "汽油引擎(半成品)",
|
||||
"item.createindustry.unfinished_lpg_engine": "液化石油气引擎(半成品)",
|
||||
"item.createindustry.unfinished_steel_mechanism": "钢铁构件(半成品)",
|
||||
"item.createindustry.unfinished_turbine_engine": "涡轮引擎(半成品)",
|
||||
"item.createindustry.unprocessed_heavy_plate": "未加工的厚钢板",
|
||||
"item.createindustry.zinc_grenade": "锌焰铝热弹",
|
||||
|
||||
|
||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||
|
||||
"itemGroup.createindustry.base": "机械动力:工业长路",
|
||||
"itemGroup.createindustry.building": "机械动力:工业长路丨建筑方块",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.percent_symbol": "%",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_three": "...",
|
||||
"create.goggles.misc.storage_info": "存储容器信息:",
|
||||
"create.goggles.fluid_in_tank": "储罐内容物:",
|
||||
"create.goggles.surface_scanner.no_rotation": "未提供旋转力",
|
||||
"create.goggles.surface_scanner.no_deposit": "没有找到油田",
|
||||
"create.goggles.surface_scanner.deposit_found": "发现油田!",
|
||||
"create.goggles.surface_scanner.distance": "距离:%1$s 格",
|
||||
"create.goggles.surface_scanner.scanning_surface": "探测油田中",
|
||||
"create.goggles.distillation_tower.status": "分馏塔信息:",
|
||||
"create.goggles.distillation_tower.tank_not_found": "缺失钢流体储罐",
|
||||
"create.goggles.distillation_tower.not_tall_enough": "流体储罐高度不足",
|
||||
"create.goggles.distillation_tower.level": "分馏塔等级:%1$s",
|
||||
"create.goggles.distillation_tower.found_outputs": "输出口数量:%1$s",
|
||||
"create.goggles.distillation_tower.no_outputs": "没有找到输出口",
|
||||
"create.goggles.blast_furnace.stats": "高炉信息:",
|
||||
|
||||
"create.distillation_tower.size": "尺寸",
|
||||
"create.distillation_tower.heat": "热量",
|
||||
|
||||
"create.goggles.blast_furnace.size_stats": "尺寸:",
|
||||
"create.goggles.blast_furnace.fuel_amount": "燃料储量:%1$s",
|
||||
"create.goggles.blast_furnace.item_count": "原料储量:%1$s",
|
||||
"create.goggles.blast_furnace.height": "高度:%1$s",
|
||||
"create.goggles.blast_furnace.nothing_lol": "",
|
||||
"create.goggles.blast_furnace.status.off": "状态:空闲",
|
||||
"create.goggles.blast_furnace.status.running": "状态:运行",
|
||||
"create.goggles.blast_furnace.diameter.one": "内径:1",
|
||||
"create.goggles.blast_furnace.diameter.two": "内径:2",
|
||||
"create.goggles.blast_furnace.invalid": "高炉结构无效",
|
||||
"create.goggles.coke_oven.status": "焦炉:",
|
||||
"create.goggles.coke_oven.fluid_amount_output": "内部流体储量:%1$s mb",
|
||||
"create.goggles.coke_oven.fluid_amount_exhaust": "二氧化碳:%1$s mb",
|
||||
"create.goggles.coke_oven.item_count": "内部物品储量:%1$s",
|
||||
"create.goggles.coke_oven.invalid": "焦炉结构无效",
|
||||
"create.goggles.coke_oven.tank_full": "内部储量已满",
|
||||
"create.goggles.coke_oven.progress": "进度:%1$s",
|
||||
"create.goggles.engine_stats": "引擎状态:",
|
||||
"create.goggles.engine_exhaust_stats": "引擎废气状态:",
|
||||
"create.goggles.fuel_container": "燃料:",
|
||||
"create.goggles.engine.backpartmissing": "引擎缺失机尾:",
|
||||
"create.goggles.engine_redstone_input": "转速:",
|
||||
"create.goggles.engine.efficiency": "效率:",
|
||||
|
||||
"create.tooltip.engine_analog_strength": "%1$s/15",
|
||||
|
||||
"create.goggles.get_engine_efficiency": "%1$s",
|
||||
"create.goggles.engine.stress": "%1$ssu",
|
||||
"create.goggles.diesel_engine.info": "柴油引擎信息:",
|
||||
"create.goggles.pumpjack_info": "抽油机信息:",
|
||||
"create.goggles.pumpjack.part_missing": "缺失抽油机曲柄或游梁",
|
||||
"create.goggles.pumpjack.wrong_rotation1": "抽油机油泵放置方向有误,顶端的红色标记需要",
|
||||
"create.goggles.pumpjack.wrong_rotation2": "指向远离抽油机游梁的方向",
|
||||
"create.goggles.pumpjack_fluid_storage": "流体容器信息:",
|
||||
|
||||
"create.pumpjack_deposit_amount": "%1$s桶",
|
||||
|
||||
"create.goggles.pumpjack.deposit_info": "油田信息:",
|
||||
"create.goggles.zero": "未找到油田",
|
||||
"create.goggles.pumpjack.fluid_amount": "原油储量:",
|
||||
"create.goggles.machine_input.info": "动力输入口信息:",
|
||||
"create.goggles.machine_input.no_rot": "未提供旋转力",
|
||||
"create.goggles.machine_input.power_level": "功率等级:",
|
||||
|
||||
"create.recipe.distillation": "分馏",
|
||||
"create.recipe.advanced_distillation": "大型分馏",
|
||||
"create.recipe.industrial_blasting": "工业烧炼",
|
||||
"create.recipe.casting": "铸造",
|
||||
"create.recipe.coking": "焦化",
|
||||
|
||||
"createindustry.subtitle.engine_sounds": "引擎轰鸣",
|
||||
"createindustry.subtitle.diesel_engine_sounds": "柴油引擎轰鸣",
|
||||
|
||||
|
||||
"_": "->------------------------] Ponders [------------------------<-",
|
||||
|
||||
"createindustry.ponder.small_engines.text_1": "要搭建一个小型引擎,需要同时放置它的头部和尾部",
|
||||
"createindustry.ponder.small_engines.text_2": "使用时要从引擎的头部输入燃料,并用管道或排气管从尾部排出废气",
|
||||
"createindustry.ponder.small_engines.text_3": "提供了红石信号后,引擎才会开始工作",
|
||||
"createindustry.ponder.small_engines.text_4": "这里有以汽油、液化石油气和煤油为燃料的引擎",
|
||||
"createindustry.ponder.diesel_engine.text_1": "手执传动杆点击引擎来创建应力输出",
|
||||
"createindustry.ponder.diesel_engine.text_2": "燃料燃烧产生的二氧化碳需要通过管道或排气管排出",
|
||||
"createindustry.ponder.diesel_engine.text_3": "引擎需要消耗空气,所以还需要放置一个进气扇",
|
||||
"createindustry.ponder.diesel_engine_expansion.text_1": "柴油引擎扩充件为引擎提供了两个新的输入口,可以通入给引擎润滑或降温的液体",
|
||||
"createindustry.ponder.surface_scanner.text_1": "原油探测器是用来探测油田的器械",
|
||||
"createindustry.ponder.surface_scanner.text_2": "为探测器提供旋转力时,它会寻找距离最近的油田",
|
||||
"createindustry.ponder.surface_scanner.text_3": "检测到油田后,顶部的指针会指向具体的方位",
|
||||
"createindustry.ponder.pumpjack.text_1": "要开采石油,先用工业级流体管道连接油田和地表",
|
||||
"createindustry.ponder.pumpjack.text_2": "再在管道顶部放置一个抽油机油泵……",
|
||||
"createindustry.ponder.pumpjack.text_3": "然后在油泵后放置游梁架……",
|
||||
"createindustry.ponder.pumpjack.text_4": "最后,就像展示的一样,放置一个上方置有抽油机曲柄的动力输入口",
|
||||
"createindustry.ponder.distillation_tower.text_1": "组装分馏塔需要一个足够大的钢流体储罐",
|
||||
"createindustry.ponder.distillation_tower.text_2": "组装时,先将一个钢分馏塔控制器放置在储罐旁……",
|
||||
"createindustry.ponder.distillation_tower.text_3": "再在上方放置总共六个输出口,并用工业级流体管道连接",
|
||||
"createindustry.ponder.distillation_tower.text_4": "在流体储罐下放置烈焰人燃烧室来提供热量,塔上的仪表盘会显示分馏塔的供能等级",
|
||||
"createindustry.ponder.distillation_tower.text_5": "原油需要泵入分馏塔控制器",
|
||||
"createindustry.ponder.distillation_tower.text_6": "每个输出口会输出一种分馏产物",
|
||||
"createindustry.ponder.distillation_tower.text_7": "液化石油气",
|
||||
"createindustry.ponder.distillation_tower.text_8": "汽油",
|
||||
"createindustry.ponder.distillation_tower.text_9": "石脑油",
|
||||
"createindustry.ponder.distillation_tower.text_10": "煤油",
|
||||
"createindustry.ponder.distillation_tower.text_11": "柴油",
|
||||
"createindustry.ponder.distillation_tower.text_12": "重油",
|
||||
"createindustry.ponder.blast_furnace.text_1": "高炉输出口是搭建高炉的基础",
|
||||
"createindustry.ponder.blast_furnace.text_2": "组装高炉,需要用耐火砖搭建起烟囱",
|
||||
"createindustry.ponder.blast_furnace.text_3": "还需要用加固墙加固烟囱的下半部分",
|
||||
"createindustry.ponder.blast_furnace.text_4": "需要从顶部投入燃料和原料",
|
||||
"createindustry.ponder.coke_oven.text_1": "用焦炉块搭建如图所示的结构后,持扳手右击可以组装成焦炉",
|
||||
"createindustry.ponder.coke_oven.text_2": "煤炭的焦化是一个缓慢的过程,可以堆叠焦炉阵列来提高效率",
|
||||
"createindustry.ponder.coke_oven.text_3": "可以从任意位置输入煤炭",
|
||||
"createindustry.ponder.coke_oven.text_4": "焦炉会在工作时产出杂酚油和二氧化碳,这些产物需要及时排出焦炉",
|
||||
"createindustry.ponder.coke_oven.text_5": "完成后,焦煤就会从开口中掉出来",
|
||||
"createindustry.ponder.casting.text_1": "铸造是用注模器将熔融金属注入铸造盆的工序",
|
||||
"createindustry.ponder.casting.text_2": "显然,铸造盆需要放入一个模具",
|
||||
|
||||
"createindustry.ponder.distillation_tower.header": "搭建分馏塔",
|
||||
|
||||
"createindustry.ponder.pumpjack.header": "搭建抽油机",
|
||||
|
||||
"createindustry.ponder.surface_scanner.header": "定位油田",
|
||||
|
||||
"createindustry.ponder.diesel_engine.header": "组装柴油引擎",
|
||||
|
||||
"createindustry.ponder.diesel_engine_expansion.header": "引擎扩充件",
|
||||
|
||||
"createindustry.ponder.small_engines.header": "组装小型引擎",
|
||||
|
||||
"createindustry.ponder.coke_oven.header": "搭建焦炉",
|
||||
"createindustry.ponder.blast_furnace.header": "搭建高炉",
|
||||
|
||||
"createindustry.ponder.casting.header": "铸造金属",
|
||||
"createindustry.ponder.tag.oil": "原油相关器械",
|
||||
"createindustry.ponder.tag.metallurgy": "金属加工器械",
|
||||
"createindustry.ponder.tag.oil.description": "这些组件与原油及其副产品的生产,处理和运用有关",
|
||||
"createindustry.ponder.tag.metallurgy.description": "用于生产和处理金属及金属原料的组件",
|
||||
|
||||
"_": "Thank you for translating Create: The Factory Must Grow!"
|
||||
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"12": "createindustry:block/casting_basin",
|
||||
"particle": "createindustry:block/industrial_iron_block"
|
||||
"particle": "create:block/industrial_iron_block"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"1": "createindustry:block/casting_spout",
|
||||
"particle": "createindustry:block/industrial_iron_block"
|
||||
"particle": "create:block/industrial_iron_block"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/engines/compact",
|
||||
"particle": "createindustry:block/engines/compact"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [3, 3, 2],
|
||||
"to": [13, 13, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 5, 2.5, 7.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 3, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 5, 2.5, 7.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 2.5, 3, 5], "texture": "#0"},
|
||||
"up": {"uv": [5.5, 3, 3, 0], "texture": "#0"},
|
||||
"down": {"uv": [5.5, 0, 3, 3], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 4, 14],
|
||||
"to": [12, 12, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 10, 2], "texture": "#0"},
|
||||
"east": {"uv": [12.75, 13, 13, 15], "texture": "#0"},
|
||||
"south": {"uv": [8, 7.5, 10, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 13, 10.25, 15], "texture": "#0"},
|
||||
"up": {"uv": [12.5, 13, 10.5, 12.75], "texture": "#0"},
|
||||
"down": {"uv": [12.5, 15, 10.5, 15.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 6, 3],
|
||||
"to": [16, 10, 7],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [1, 10.5, 2, 11.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"west": {"uv": [2, 10.5, 3, 11.5], "texture": "#0"},
|
||||
"up": {"uv": [4, 8.5, 0, 7.5], "texture": "#0"},
|
||||
"down": {"uv": [4, 7.5, 0, 8.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 6, 9],
|
||||
"to": [16, 10, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [10, 8.25, 11, 9.25], "texture": "#0"},
|
||||
"south": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 10.25, 10.5, 11.25], "texture": "#0"},
|
||||
"up": {"uv": [4, 8.5, 0, 7.5], "texture": "#0"},
|
||||
"down": {"uv": [4, 7.5, 0, 8.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 1],
|
||||
"to": [5, 4, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"east": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"south": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"west": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"up": {"uv": [8, 12, 7, 8.5], "texture": "#0"},
|
||||
"down": {"uv": [1, 9.5, 0, 13], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 0, 4],
|
||||
"to": [11, 3, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0.75, 11.5, 1.5], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 9.5, 11.5, 10.25], "texture": "#0"},
|
||||
"south": {"uv": [10, 0.75, 11.5, 1.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12, 0.75], "texture": "#0"},
|
||||
"up": {"uv": [7, 11.5, 5.5, 9.5], "texture": "#0"},
|
||||
"down": {"uv": [9.5, 9.5, 8, 11.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 0, 1],
|
||||
"to": [15, 4, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"east": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"south": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"west": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"up": {"uv": [8, 15.5, 7, 12], "texture": "#0"},
|
||||
"down": {"uv": [5.5, 9.5, 4.5, 13], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/engines/compact",
|
||||
"particle": "createindustry:block/engines/compact",
|
||||
"1_0": "create:block/axis"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [3, 3, 2],
|
||||
"to": [13, 13, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 5, 2.5, 7.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 3, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 5, 2.5, 7.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 2.5, 3, 5], "texture": "#0"},
|
||||
"up": {"uv": [5.5, 3, 3, 0], "texture": "#0"},
|
||||
"down": {"uv": [5.5, 0, 3, 3], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 4, 14],
|
||||
"to": [12, 12, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 10, 2], "texture": "#0"},
|
||||
"east": {"uv": [12.75, 13, 13, 15], "texture": "#0"},
|
||||
"south": {"uv": [8, 7.5, 10, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 13, 10.25, 15], "texture": "#0"},
|
||||
"up": {"uv": [12.5, 13, 10.5, 12.75], "texture": "#0"},
|
||||
"down": {"uv": [12.5, 15, 10.5, 15.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 6, 3],
|
||||
"to": [16, 10, 7],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [1, 10.5, 2, 11.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"west": {"uv": [2, 10.5, 3, 11.5], "texture": "#0"},
|
||||
"up": {"uv": [4, 8.5, 0, 7.5], "texture": "#0"},
|
||||
"down": {"uv": [4, 7.5, 0, 8.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 6, 9],
|
||||
"to": [16, 10, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [10, 8.25, 11, 9.25], "texture": "#0"},
|
||||
"south": {"uv": [0, 7.5, 4, 8.5], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 10.25, 10.5, 11.25], "texture": "#0"},
|
||||
"up": {"uv": [4, 8.5, 0, 7.5], "texture": "#0"},
|
||||
"down": {"uv": [4, 7.5, 0, 8.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 1],
|
||||
"to": [5, 4, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"east": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"south": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"west": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"up": {"uv": [8, 12, 7, 8.5], "texture": "#0"},
|
||||
"down": {"uv": [1, 9.5, 0, 13], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 0, 4],
|
||||
"to": [11, 3, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0.75, 11.5, 1.5], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 9.5, 11.5, 10.25], "texture": "#0"},
|
||||
"south": {"uv": [10, 0.75, 11.5, 1.5], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 12, 0.75], "texture": "#0"},
|
||||
"up": {"uv": [7, 11.5, 5.5, 9.5], "texture": "#0"},
|
||||
"down": {"uv": [9.5, 9.5, 8, 11.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 0, 1],
|
||||
"to": [15, 4, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"east": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"south": {"uv": [10.5, 4, 11.5, 5], "texture": "#0"},
|
||||
"west": {"uv": [1, 9.5, 4.5, 10.5], "texture": "#0"},
|
||||
"up": {"uv": [8, 15.5, 7, 12], "texture": "#0"},
|
||||
"down": {"uv": [5.5, 9.5, 4.5, 13], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Axis",
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 10],
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 10, 10], "rotation": 180, "texture": "#1_0"},
|
||||
"east": {"uv": [6, 0, 10, 10], "rotation": 270, "texture": "#1_0"},
|
||||
"west": {"uv": [6, 0, 10, 10], "rotation": 90, "texture": "#1_0"},
|
||||
"up": {"uv": [6, 0, 10, 10], "rotation": 180, "texture": "#1_0"},
|
||||
"down": {"uv": [6, 0, 10, 10], "texture": "#1_0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/large_pumpjack_hammer_part",
|
||||
"2": "createindustry:block/pumpjack_hammer_connector",
|
||||
"particle": "createindustry:block/large_pumpjack_hammer_part"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 16, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#0"},
|
||||
"south": {"uv": [8, 0.05, 16, 8.05], "texture": "#0"},
|
||||
"west": {"uv": [0, 0.05, 8, 8.05], "texture": "#0"},
|
||||
"up": {"uv": [8, 8, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [8, 8, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6, 6],
|
||||
"to": [17, 10, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 9, 9, 11], "texture": "#2"},
|
||||
"east": {"uv": [0, 12, 2, 14], "texture": "#2"},
|
||||
"south": {"uv": [0, 9, 9, 11], "texture": "#2"},
|
||||
"west": {"uv": [0, 12, 2, 14], "texture": "#2"},
|
||||
"up": {"uv": [0, 9, 9, 11], "texture": "#2"},
|
||||
"down": {"uv": [0, 9, 9, 11], "texture": "#2"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/large_pumpjack_hammer_head",
|
||||
"particle": "createindustry:block/large_pumpjack_hammer_head"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 8, 16], "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 16, 8], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 8, 8, 16], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [8, 0, 16, 8], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 8, 8], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 8, 8], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/large_pumpjack_hammer_part",
|
||||
"particle": "createindustry:block/large_pumpjack_hammer_part"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 16, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#0"},
|
||||
"south": {"uv": [8, 0.05, 16, 8.05], "texture": "#0"},
|
||||
"west": {"uv": [0, 0.05, 8, 8.05], "texture": "#0"},
|
||||
"up": {"uv": [8, 8, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [8, 8, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 16, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#0"},
|
||||
"south": {"uv": [8, 0.05, 16, 8.05], "texture": "#0"},
|
||||
"west": {"uv": [0, 0.05, 8, 8.05], "texture": "#0"},
|
||||
"up": {"uv": [8, 8, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [8, 8, 16, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "createindustry:block/large_radial_engine",
|
||||
"particle": "createindustry:block/large_radial_engine"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-3, -3, 3],
|
||||
"to": [19, 19, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 5.5, 5.5], "texture": "#0"},
|
||||
"east": {"uv": [7, 4, 9.5, 9.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 5.5, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [7, 4, 9.5, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [7, 4, 9.5, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [7, 4, 9.5, 9.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 2],
|
||||
"to": [16, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 5.5, 4, 9.5], "texture": "#0"},
|
||||
"east": {"uv": [4, 5.5, 7, 9.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 5.5, 4, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [4, 5.5, 7, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [4, 5.5, 7, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [4, 5.5, 7, 9.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 5, 5],
|
||||
"to": [28, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "texture": "#0"},
|
||||
"east": {"uv": [15, 7, 13.5, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [15, 5.5, 13.5, 7], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -12, 5],
|
||||
"to": [11, 28, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [15, 5.5, 13.5, 7], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [15, 7, 13.5, 5.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 5, 5],
|
||||
"to": [28, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "texture": "#0"},
|
||||
"east": {"uv": [15, 7, 13.5, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [15, 5.5, 13.5, 7], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -12, 5],
|
||||
"to": [11, 28, 11],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [15, 5.5, 13.5, 7], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [15, 7, 13.5, 5.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, -12, 4],
|
||||
"to": [12, 28, 12],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [15.5, 5.5, 13.5, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 3.5, 13.5, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 4, 4],
|
||||
"to": [28, 12, 12],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "texture": "#0"},
|
||||
"east": {"uv": [15.5, 5.5, 13.5, 3.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [15.5, 3.5, 13.5, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.5, 0, 15.5, 2], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [5.5, 0, 15.5, 2], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, -12, 4],
|
||||
"to": [12, 28, 12],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [15.5, 5.5, 13.5, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 3.5, 13.5, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 4, 4],
|
||||
"to": [28, 12, 12],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "texture": "#0"},
|
||||
"east": {"uv": [13.5, 3.5, 15.5, 5.5], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "texture": "#0"},
|
||||
"west": {"uv": [13.5, 3.5, 15.5, 5.5], "texture": "#0"},
|
||||
"up": {"uv": [15.5, 2, 5.5, 0], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 0, 5.5, 2], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "createindustry:block/large_radial_engine",
|
||||
"particle": "createindustry:block/large_radial_engine"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-3, -3, 3],
|
||||
"to": [19, 19, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 5.5, 5.5], "texture": "#0"},
|
||||
"east": {"uv": [7, 4, 9.5, 9.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 5.5, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [7, 4, 9.5, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [7, 4, 9.5, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [7, 4, 9.5, 9.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "shaft",
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 11.25, 7, 12.25], "texture": "#0"},
|
||||
"east": {"uv": [2, 11, 3, 15], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [6, 11.25, 7, 12.25], "texture": "#0"},
|
||||
"west": {"uv": [2, 11, 3, 15], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [3, 15, 2, 11], "texture": "#0"},
|
||||
"down": {"uv": [3, 11, 2, 15], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 2],
|
||||
"to": [16, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 5.5, 4, 9.5], "texture": "#0"},
|
||||
"east": {"uv": [4, 5.5, 7, 9.5], "texture": "#0"},
|
||||
"south": {"uv": [0, 5.5, 4, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [4, 5.5, 7, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [4, 5.5, 7, 9.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [4, 5.5, 7, 9.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 5, 5],
|
||||
"to": [28, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "texture": "#0"},
|
||||
"east": {"uv": [15, 7, 13.5, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [15, 5.5, 13.5, 7], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -12, 5],
|
||||
"to": [11, 28, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [15, 5.5, 13.5, 7], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [15, 7, 13.5, 5.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 5, 5],
|
||||
"to": [28, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "texture": "#0"},
|
||||
"east": {"uv": [15, 7, 13.5, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [15, 5.5, 13.5, 7], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -12, 5],
|
||||
"to": [11, 28, 11],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 2, 15.5, 3.5], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [15, 5.5, 13.5, 7], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [15, 7, 13.5, 5.5], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, -12, 4],
|
||||
"to": [12, 28, 12],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [15.5, 5.5, 13.5, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 3.5, 13.5, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 4, 4],
|
||||
"to": [28, 12, 12],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "texture": "#0"},
|
||||
"east": {"uv": [15.5, 5.5, 13.5, 3.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [15.5, 3.5, 13.5, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [5.5, 0, 15.5, 2], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [5.5, 0, 15.5, 2], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, -12, 4],
|
||||
"to": [12, 28, 12],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [5.5, 0, 15.5, 2], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [15.5, 5.5, 13.5, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 3.5, 13.5, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-12, 4, 4],
|
||||
"to": [28, 12, 12],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 0, 15.5, 2], "texture": "#0"},
|
||||
"east": {"uv": [13.5, 3.5, 15.5, 5.5], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 0, 15.5, 2], "texture": "#0"},
|
||||
"west": {"uv": [13.5, 3.5, 15.5, 5.5], "texture": "#0"},
|
||||
"up": {"uv": [15.5, 2, 5.5, 0], "texture": "#0"},
|
||||
"down": {"uv": [15.5, 0, 5.5, 2], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"gui": {
|
||||
"rotation": [36, 41, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_base",
|
||||
"particle": "createindustry:block/pumpjack_base"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [3, 0, 3],
|
||||
"to": [13, 14, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 5, 9], "texture": "#0"},
|
||||
"east": {"uv": [0, 2, 5, 9], "texture": "#0"},
|
||||
"south": {"uv": [0, 2, 5, 9], "texture": "#0"},
|
||||
"west": {"uv": [0, 2, 5, 9], "texture": "#0"},
|
||||
"up": {"uv": [10.5, 0, 14, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 11, 5, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 2],
|
||||
"to": [14, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [10, 0, 16, 1], "texture": "#0"},
|
||||
"east": {"uv": [10, 0, 16, 1], "texture": "#0"},
|
||||
"south": {"uv": [10, 0, 16, 1], "texture": "#0"},
|
||||
"west": {"uv": [10, 0, 16, 1], "texture": "#0"},
|
||||
"up": {"uv": [10, 0, 16, 6], "texture": "#0"},
|
||||
"down": {"uv": [10, 0, 16, 6], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_crank",
|
||||
"1": "createindustry:block/heavy_machinery_casing",
|
||||
@@ -8,158 +9,100 @@
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-2, 2, 6],
|
||||
"to": [18, 6, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
|
||||
"south": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
|
||||
"up": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"}
|
||||
"north": {"uv": [0, 9, 8, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 7], "texture": "#0"},
|
||||
"south": {"uv": [0, 9, 8, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 7], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-3, 13, 2],
|
||||
"to": [0, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"from": [0, 6, 6],
|
||||
"to": [16, 10, 10],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 3, 12], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 6, 6],
|
||||
"to": [0, 9, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
|
||||
"north": {"uv": [8.5, 3.5, 10.5, 11.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [8.5, 4.5, 10.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [8.5, 4.5, 10.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [8.5, 4.5, 10.5, 10.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 0, 6],
|
||||
"to": [0, 2, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"to": [0, 17, 10],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
|
||||
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
|
||||
"north": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"east": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"south": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"west": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"down": {"uv": [12, 3, 13, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 14, 6],
|
||||
"to": [18, 16, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"from": [-3, 17, 1],
|
||||
"to": [0, 21, 15],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 13, 2],
|
||||
"to": [19, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"south": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 3, 12], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 9, 1],
|
||||
"to": [19, 13, 15],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 6, 6],
|
||||
"to": [18, 9, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
|
||||
"north": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"west": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"},
|
||||
"down": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 0, 6],
|
||||
"to": [18, 2, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"to": [18, 17, 10],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
|
||||
"north": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"east": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"south": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"west": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"down": {"uv": [12, 3, 13, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 14, 6],
|
||||
"to": [0, 16, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"from": [16, 17, 1],
|
||||
"to": [19, 21, 15],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
|
||||
"north": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"west": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"},
|
||||
"down": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-3, 9, 1],
|
||||
"to": [0, 13, 15],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"from": [16, 21, 2],
|
||||
"to": [19, 22, 14],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
|
||||
"north": {"uv": [14, 5.5, 14.5, 7], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 5.5, 14.5, 7], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 3, 15.5, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"from": [-3, 21, 2],
|
||||
"to": [0, 22, 14],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
|
||||
"north": {"uv": [14, 4.5, 14.5, 6], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 4.5, 14.5, 6], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 3, 15.5, 9], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
{
|
||||
"parent": "block/air"
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_crank",
|
||||
"1": "createindustry:block/heavy_machinery_casing",
|
||||
"particle": "createindustry:block/pumpjack_crank"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 9, 8, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 7], "texture": "#0"},
|
||||
"south": {"uv": [0, 9, 8, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 7], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_crank",
|
||||
"1": "createindustry:block/heavy_machinery_casing",
|
||||
"particle": "createindustry:block/pumpjack_crank"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 8.01, 1],
|
||||
"to": [9, 8.01, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 4, 0], "texture": "#missing"},
|
||||
"east": {"uv": [0, 0, 2, 0], "texture": "#missing"},
|
||||
"south": {"uv": [0, 0, 4, 0], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 0], "texture": "#missing"},
|
||||
"up": {"uv": [9.5, 3, 10.5, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 4, 2], "texture": "#missing"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_crank",
|
||||
"particle": "createindustry:block/pumpjack_crank"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 6, 6],
|
||||
"to": [16, 10, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 3.5, 10.5, 11.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [8.5, 4.5, 10.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [8.5, 4.5, 10.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [8.5, 4.5, 10.5, 10.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 0, 6],
|
||||
"to": [0, 17, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"east": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"south": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"west": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"down": {"uv": [12, 3, 13, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-3, 17, 1],
|
||||
"to": [0, 21, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"west": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"},
|
||||
"down": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 0, 6],
|
||||
"to": [18, 17, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"east": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"south": {"uv": [12, 2.5, 13, 11], "texture": "#0"},
|
||||
"west": {"uv": [11.5, 2.5, 13.5, 11], "texture": "#0"},
|
||||
"down": {"uv": [12, 3, 13, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 17, 1],
|
||||
"to": [19, 21, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 6, 15.5, 8], "texture": "#0"},
|
||||
"west": {"uv": [9, 0.5, 16, 2.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"},
|
||||
"down": {"uv": [14, 2.5, 15.5, 9.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-3, 21, 2],
|
||||
"to": [0, 22, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 4.5, 14.5, 6], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 4.5, 14.5, 6], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 3, 15.5, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 21, 2],
|
||||
"to": [19, 22, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 5.5, 14.5, 7], "texture": "#0"},
|
||||
"east": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [14, 5.5, 14.5, 7], "texture": "#0"},
|
||||
"west": {"uv": [9.5, 0, 15.5, 0.5], "texture": "#0"},
|
||||
"up": {"uv": [14, 3, 15.5, 9], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,166 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_crank",
|
||||
"1": "createindustry:block/heavy_machinery_casing",
|
||||
"particle": "createindustry:block/pumpjack_crank"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [-2, 2, 6],
|
||||
"to": [18, 6, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
|
||||
"south": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
|
||||
"up": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-3, 13, 2],
|
||||
"to": [0, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 3, 12], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 6, 6],
|
||||
"to": [0, 9, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 0, 6],
|
||||
"to": [0, 2, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
|
||||
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 14, 6],
|
||||
"to": [18, 16, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 13, 2],
|
||||
"to": [19, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"south": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
|
||||
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 3, 12], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 9, 1],
|
||||
"to": [19, 13, 15],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 6, 6],
|
||||
"to": [18, 9, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [16, 0, 6],
|
||||
"to": [18, 2, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-2, 14, 6],
|
||||
"to": [0, 16, 10],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
|
||||
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-3, 9, 1],
|
||||
"to": [0, 13, 15],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
|
||||
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 4, 8, 8], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 4], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "createindustry:block/modular_pumpjack",
|
||||
"particle": "createindustry:block/modular_pumpjack"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 7, 2],
|
||||
"to": [2, 9, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"east": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"west": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [2.25, 1.5, 2, 0], "texture": "#0"},
|
||||
"down": {"uv": [2.25, 0, 2, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 7, 2],
|
||||
"to": [16, 9, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"east": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"west": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [2.25, 1.5, 2, 0], "texture": "#0"},
|
||||
"down": {"uv": [2.25, 0, 2, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 2],
|
||||
"to": [15, 7, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"up": {"uv": [0, 1.5, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 0, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 1],
|
||||
"to": [14, 32, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 32, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 32, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 2],
|
||||
"to": [1, 7, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"up": {"uv": [0, 1.5, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 0, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [2, 32, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 15],
|
||||
"to": [14, 32, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 14],
|
||||
"to": [16, 32, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 22, -3],
|
||||
"to": [10, 26, 19],
|
||||
"faces": {
|
||||
"north": {"uv": [2.375, 2.375, 2.875, 2.875], "texture": "#0"},
|
||||
"east": {"uv": [2.375, 0, 2.875, 2.25], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [2.375, 2.375, 2.875, 2.875], "texture": "#0"},
|
||||
"west": {"uv": [2.375, 0, 2.875, 2.25], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [2.875, 2.25, 2.375, 0], "texture": "#0"},
|
||||
"down": {"uv": [2.875, 0, 2.375, 2.25], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"1": "createindustry:block/modular_pumpjack",
|
||||
"particle": "createindustry:block/modular_pumpjack"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 7, -2],
|
||||
"to": [2, 32, 0],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"west": {"uv": [1.875, 0.875, 1.625, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 7, 16],
|
||||
"to": [2, 32, 18],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"south": {"uv": [1.875, 0.875, 1.625, 4], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 11, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 1],
|
||||
"to": [14, 11, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2.625, 1.5, 4], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 11, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 14],
|
||||
"to": [16, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 15],
|
||||
"to": [14, 11, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 4], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [2, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.625, 1.875, 2], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 7, 2],
|
||||
"to": [2, 9, 14],
|
||||
"faces": {
|
||||
"east": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [2.25, 1.5, 2, 0], "texture": "#1"},
|
||||
"down": {"uv": [2.25, 0, 2, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 7, 2],
|
||||
"to": [16, 9, 14],
|
||||
"faces": {
|
||||
"east": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [2.25, 1.5, 2, 0], "texture": "#1"},
|
||||
"down": {"uv": [2.25, 0, 2, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 7, -2],
|
||||
"to": [16, 32, 0],
|
||||
"faces": {
|
||||
"north": {"uv": [1.875, 0.875, 1.625, 4], "texture": "#1"},
|
||||
"east": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 7, 16],
|
||||
"to": [16, 32, 18],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"east": {"uv": [1.875, 0.875, 1.625, 4], "texture": "#1"},
|
||||
"south": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"west": {"uv": [1.625, 0.875, 1.875, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#1"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 22, -3],
|
||||
"to": [10, 26, 19],
|
||||
"faces": {
|
||||
"north": {"uv": [2.375, 2.375, 2.875, 2.875], "texture": "#1"},
|
||||
"east": {"uv": [2.375, 0, 2.875, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [2.375, 2.375, 2.875, 2.875], "texture": "#1"},
|
||||
"west": {"uv": [2.375, 0, 2.875, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [2.875, 2.25, 2.375, 0], "texture": "#1"},
|
||||
"down": {"uv": [2.875, 0, 2.375, 2.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 2],
|
||||
"to": [1, 7, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0.875], "texture": "#1"},
|
||||
"east": {"uv": [0, 4, 1.5, 4.875], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 0.875], "texture": "#1"},
|
||||
"west": {"uv": [0, 4, 1.5, 4.875], "texture": "#1"},
|
||||
"up": {"uv": [0, 1.5, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 2],
|
||||
"to": [15, 7, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0.875], "texture": "#1"},
|
||||
"east": {"uv": [0, 4, 1.5, 4.875], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 0.875], "texture": "#1"},
|
||||
"west": {"uv": [0, 4, 1.5, 4.875], "texture": "#1"},
|
||||
"up": {"uv": [0, 1.5, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 0, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 7, 17],
|
||||
"to": [14, 32, 17],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 4], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 9, -1],
|
||||
"to": [14, 32, -1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 2.875], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 1.5, 2.875], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#1"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#1"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "createindustry:block/modular_pumpjack",
|
||||
"particle": "createindustry:block/modular_pumpjack"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 7, 2],
|
||||
"to": [2, 9, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"east": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"west": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [2.25, 1.5, 2, 0], "texture": "#0"},
|
||||
"down": {"uv": [2.25, 0, 2, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 7, 2],
|
||||
"to": [16, 9, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"east": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0], "texture": "#0"},
|
||||
"west": {"uv": [2, 0, 2.25, 1.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [2.25, 1.5, 2, 0], "texture": "#0"},
|
||||
"down": {"uv": [2.25, 0, 2, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 2],
|
||||
"to": [15, 7, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"up": {"uv": [0, 1.5, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 0, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 1],
|
||||
"to": [14, 32, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 32, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 32, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 2],
|
||||
"to": [1, 7, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"east": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 0.875], "texture": "#0"},
|
||||
"west": {"uv": [0, 4, 1.5, 4.875], "texture": "#0"},
|
||||
"up": {"uv": [0, 1.5, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 0, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [2, 32, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 15],
|
||||
"to": [14, 32, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1.5, 4], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 0, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.5, 0, 0, 0], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 0, 0, 0], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 14],
|
||||
"to": [16, 32, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"east": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"south": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"west": {"uv": [1.625, 0, 1.875, 4], "texture": "#0"},
|
||||
"up": {"uv": [1.875, 4.375, 1.625, 4.125], "texture": "#0"},
|
||||
"down": {"uv": [1.875, 4.125, 1.625, 4.375], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 22, -3],
|
||||
"to": [10, 26, 19],
|
||||
"faces": {
|
||||
"north": {"uv": [2.375, 2.375, 2.875, 2.875], "texture": "#0"},
|
||||
"east": {"uv": [2.375, 0, 2.875, 2.25], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [2.375, 2.375, 2.875, 2.875], "texture": "#0"},
|
||||
"west": {"uv": [2.375, 0, 2.875, 2.25], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [2.875, 2.25, 2.375, 0], "texture": "#0"},
|
||||
"down": {"uv": [2.875, 0, 2.375, 2.25], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"gui": {
|
||||
"rotation": [24, -45, 0],
|
||||
"translation": [0, -2.75, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"1": "createindustry:block/pumpjack_hammer_part",
|
||||
"particle": "createindustry:block/pumpjack_hammer_part"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [14, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [9, 0, 15, 8], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#1"},
|
||||
"south": {"uv": [9, 0, 15, 8], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 8, 8], "texture": "#1"},
|
||||
"up": {"uv": [9, 8, 15, 16], "texture": "#1"},
|
||||
"down": {"uv": [9, 8, 15, 16], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-1, 6, 6],
|
||||
"to": [17, 10, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 9, 8.9375, 11], "texture": "#1"},
|
||||
"east": {"uv": [0, 12, 2, 14], "texture": "#1"},
|
||||
"south": {"uv": [0, 9, 9, 11], "texture": "#1"},
|
||||
"west": {"uv": [0, 12, 2, 14], "texture": "#1"},
|
||||
"up": {"uv": [0, 9, 9, 11], "texture": "#1"},
|
||||
"down": {"uv": [0, 9, 9, 11], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_hammer_head",
|
||||
"particle": "createindustry:block/pumpjack_hammer_head"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, -8, 2],
|
||||
"to": [15, 20, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 14], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 14], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 8, 14], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 14], "texture": "#0"},
|
||||
"up": {"uv": [8, 0, 15, 7], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [8, 0, 15, 7], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"gui": {
|
||||
"rotation": [18, 28, 0],
|
||||
"translation": [-0.25, 1, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"0": "createindustry:block/aluminum_post",
|
||||
"1": "createindustry:block/steel_truss",
|
||||
"particle": "createindustry:block/aluminum_post"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 6, 6],
|
||||
"to": [16, 10, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 10, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [8, 0, 10, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 2],
|
||||
"to": [1, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 8], "texture": "#1"},
|
||||
"east": {"uv": [2, 0, 14, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 8], "texture": "#1"},
|
||||
"west": {"uv": [2, 0, 14, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 6, 0], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 6, 0], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 3, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [2, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 14],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 8], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 2],
|
||||
"to": [15, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 8], "texture": "#1"},
|
||||
"east": {"uv": [2, 0, 14, 16], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0, 8], "texture": "#1"},
|
||||
"west": {"uv": [2, 0, 14, 16], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 6, 0], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [0, 0, 6, 0], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"groups": [
|
||||
{
|
||||
"name": "bone",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": []
|
||||
},
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/pumpjack_hammer_part",
|
||||
"particle": "createindustry:block/pumpjack_hammer_part"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [14, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [9, 0, 15, 8], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#0"},
|
||||
"south": {"uv": [9, 0, 15, 8], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 8], "texture": "#0"},
|
||||
"up": {"uv": [9, 8, 15, 16], "texture": "#0"},
|
||||
"down": {"uv": [9, 8, 15, 16], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"1": "createindustry:block/radial_engine",
|
||||
"particle": "createindustry:block/steel_block"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5, 5, 3],
|
||||
"to": [11, 11, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [6.25, 2.875, 7, 3.625], "texture": "#1"},
|
||||
"east": {"uv": [6.125, 0.875, 7.375, 1.625], "texture": "#1"},
|
||||
"south": {"uv": [6.25, 2.875, 7, 3.625], "texture": "#1"},
|
||||
"west": {"uv": [6.125, 0.875, 7.375, 1.625], "texture": "#1"},
|
||||
"up": {"uv": [7.375, 1.625, 6.125, 0.875], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [6.125, 1.625, 7.375, 0.875], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 4],
|
||||
"to": [15, 15, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.75, 1.75], "texture": "#1"},
|
||||
"east": {"uv": [6, 1.75, 7.75, 2.75], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [0, 1.75, 1.75, 3.5], "texture": "#1"},
|
||||
"west": {"uv": [6, 1.75, 7.75, 2.75], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [7.75, 2.75, 6, 1.75], "texture": "#1"},
|
||||
"down": {"uv": [7.75, 1.75, 6, 2.75], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, -6, 6],
|
||||
"to": [10, 22, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [5.75, 3.375, 5.25, 2.875], "texture": "#1"},
|
||||
"down": {"uv": [5.75, 2.875, 5.25, 3.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 6, 6],
|
||||
"to": [22, 10, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 3.875, 1.75, 3.375], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 3.375, 1.75, 3.875], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, -6, 6],
|
||||
"to": [10, 22, 10],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [5.75, 3.375, 5.25, 2.875], "texture": "#1"},
|
||||
"down": {"uv": [5.75, 2.875, 5.25, 3.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 6, 6],
|
||||
"to": [22, 10, 10],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 3.875, 1.75, 3.375], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 3.375, 1.75, 3.875], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -6, 5],
|
||||
"to": [11, 22, 11],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [6, 1.5, 5.25, 0.75], "texture": "#1"},
|
||||
"down": {"uv": [6, 0.75, 5.25, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 5, 5],
|
||||
"to": [22, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 2.25, 1.75, 1.5], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 1.5, 1.75, 2.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -6, 5],
|
||||
"to": [11, 22, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [6, 1.5, 5.25, 0.75], "texture": "#1"},
|
||||
"down": {"uv": [6, 0.75, 5.25, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 5, 5],
|
||||
"to": [22, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 2.25, 1.75, 1.5], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 1.5, 1.75, 2.25], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"1": "createindustry:block/radial_engine",
|
||||
"particle": "createindustry:block/steel_block"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "shaft",
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 16],
|
||||
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [3, 5.625, 3.5, 6.125], "texture": "#1"},
|
||||
"east": {"uv": [1, 5.5, 1.5, 7.5], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [3, 5.625, 3.5, 6.125], "texture": "#1"},
|
||||
"west": {"uv": [1, 5.5, 1.5, 7.5], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [1.5, 7.5, 1, 5.5], "texture": "#1"},
|
||||
"down": {"uv": [1.5, 5.5, 1, 7.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 5, 3],
|
||||
"to": [11, 11, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [6.25, 2.875, 7, 3.625], "texture": "#1"},
|
||||
"east": {"uv": [6.125, 0.875, 7.375, 1.625], "texture": "#1"},
|
||||
"south": {"uv": [6.25, 2.875, 7, 3.625], "texture": "#1"},
|
||||
"west": {"uv": [6.125, 0.875, 7.375, 1.625], "texture": "#1"},
|
||||
"up": {"uv": [7.375, 1.625, 6.125, 0.875], "rotation": 90, "texture": "#1"},
|
||||
"down": {"uv": [6.125, 1.625, 7.375, 0.875], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 4],
|
||||
"to": [15, 15, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.75, 1.75], "texture": "#1"},
|
||||
"east": {"uv": [6, 1.75, 7.75, 2.75], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [0, 1.75, 1.75, 3.5], "texture": "#1"},
|
||||
"west": {"uv": [6, 1.75, 7.75, 2.75], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [7.75, 2.75, 6, 1.75], "texture": "#1"},
|
||||
"down": {"uv": [7.75, 1.75, 6, 2.75], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, -6, 6],
|
||||
"to": [10, 22, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [5.75, 3.375, 5.25, 2.875], "texture": "#1"},
|
||||
"down": {"uv": [5.75, 2.875, 5.25, 3.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 6, 6],
|
||||
"to": [22, 10, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 3.875, 1.75, 3.375], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 3.375, 1.75, 3.875], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, -6, 6],
|
||||
"to": [10, 22, 10],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 3.375, 5.25, 3.875], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [5.75, 3.375, 5.25, 2.875], "texture": "#1"},
|
||||
"down": {"uv": [5.75, 2.875, 5.25, 3.375], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 6, 6],
|
||||
"to": [22, 10, 10],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 2.375, 5.25, 2.875], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 2.875, 5.25, 3.375], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 2.875, 5.75, 3.375], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 3.875, 1.75, 3.375], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 3.375, 1.75, 3.875], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -6, 5],
|
||||
"to": [11, 22, 11],
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [6, 1.5, 5.25, 0.75], "texture": "#1"},
|
||||
"down": {"uv": [6, 0.75, 5.25, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 5, 5],
|
||||
"to": [22, 11, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 2.25, 1.75, 1.5], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 1.5, 1.75, 2.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, -6, 5],
|
||||
"to": [11, 22, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "rotation": 90, "texture": "#1"},
|
||||
"east": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "rotation": 90, "texture": "#1"},
|
||||
"west": {"uv": [1.75, 1.5, 5.25, 2.25], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [6, 1.5, 5.25, 0.75], "texture": "#1"},
|
||||
"down": {"uv": [6, 0.75, 5.25, 1.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [-6, 5, 5],
|
||||
"to": [22, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1.75, 0, 5.25, 0.75], "texture": "#1"},
|
||||
"east": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"south": {"uv": [1.75, 0.75, 5.25, 1.5], "texture": "#1"},
|
||||
"west": {"uv": [5.25, 0.75, 6, 1.5], "texture": "#1"},
|
||||
"up": {"uv": [5.25, 2.25, 1.75, 1.5], "texture": "#1"},
|
||||
"down": {"uv": [5.25, 1.5, 1.75, 2.25], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "createindustry:block/radial_engine",
|
||||
"particle": "createindustry:block/radial_engine"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 5.01, 6],
|
||||
"to": [10, 16.01, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [6.125, 4.25, 6.625, 5.625], "texture": "#0"},
|
||||
"east": {"uv": [6.125, 4.25, 6.625, 5.625], "texture": "#0"},
|
||||
"south": {"uv": [6.125, 4.25, 6.625, 5.625], "texture": "#0"},
|
||||
"west": {"uv": [6.125, 4.25, 6.625, 5.625], "texture": "#0"},
|
||||
"up": {"uv": [6.75, 4.25, 7.25, 4.75], "texture": "#0"},
|
||||
"down": {"uv": [6.75, 4.25, 7.25, 4.75], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "createindustry:block/radial_engine",
|
||||
"particle": "createindustry:block/radial_engine"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 5, 6.01],
|
||||
"to": [10, 9, 17.01],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 7, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [6.75, 4.25, 7.25, 4.75], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [6.125, 4.25, 6.625, 5.625], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [6.75, 4.25, 7.25, 4.75], "texture": "#0"},
|
||||
"west": {"uv": [6.125, 4.25, 6.625, 5.625], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [6.125, 4.25, 6.625, 5.625], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [6.125, 4.25, 6.625, 5.625], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [128, 128],
|
||||
"textures": {
|
||||
"0": "createindustry:block/radial_engine",
|
||||
"particle": "createindustry:block/radial_engine"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 5, 6.01],
|
||||
"to": [10, 9, 17.01],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 7, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [6.75, 4.25, 7.25, 4.75], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [6.125, 4.25, 6.625, 5.625], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [6.75, 4.25, 7.25, 4.75], "texture": "#0"},
|
||||
"west": {"uv": [6.125, 4.25, 6.625, 5.625], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [6.125, 4.25, 6.625, 5.625], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [6.125, 4.25, 6.625, 5.625], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/steel_frame_2",
|
||||
"particle": "createindustry:block/steel_frame_2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"down": {"uv": [0, 14, 2, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [14, 0, 16, 2], "texture": "#0"},
|
||||
"down": {"uv": [14, 14, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [2, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 14, 2, 16], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 14],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"south": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [14, 14, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [14, 0, 16, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 14, 2],
|
||||
"to": [16, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [14, 2, 16, 14], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 2],
|
||||
"to": [2, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 12], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 2],
|
||||
"to": [2, 2, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 12], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 2],
|
||||
"to": [16, 2, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 2, 2, 14], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [14, 2, 16, 14], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 0],
|
||||
"to": [14, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 16, 14], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 14],
|
||||
"to": [14, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 14],
|
||||
"to": [14, 2, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [14, 2, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 2, 14], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 1],
|
||||
"to": [15, 15, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"south": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"west": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "createindustry:block/steel_frame_2",
|
||||
"particle": "createindustry:block/steel_frame_2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"down": {"uv": [0, 14, 2, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [14, 0, 16, 2], "texture": "#0"},
|
||||
"down": {"uv": [14, 14, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [2, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"west": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 14, 2, 16], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 14],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"south": {"uv": [14, 0, 16, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 16], "texture": "#0"},
|
||||
"up": {"uv": [14, 14, 16, 16], "texture": "#0"},
|
||||
"down": {"uv": [14, 0, 16, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 14, 2],
|
||||
"to": [16, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [14, 2, 16, 14], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 2],
|
||||
"to": [2, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 12], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 2],
|
||||
"to": [2, 2, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 12], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 2],
|
||||
"to": [16, 2, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 2, 2, 14], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [14, 2, 16, 14], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 0],
|
||||
"to": [14, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 16, 14], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 14, 14],
|
||||
"to": [14, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 14],
|
||||
"to": [14, 2, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 12], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [14, 2, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 2, 14], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 2, 12], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 2, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 2, 2, 14], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [14, 2, 16, 14], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 1],
|
||||
"to": [15, 15, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"east": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"south": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"west": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#0"},
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 873 B After Width: | Height: | Size: 964 B |
|
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 332 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 583 B |
|
Before Width: | Height: | Size: 727 B After Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 431 B After Width: | Height: | Size: 278 B |
|
Before Width: | Height: | Size: 214 B After Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 259 B After Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 344 B |
|
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 225 B |
|
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
|
Before Width: | Height: | Size: 255 B After Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 415 B |
|
Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 231 B |
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 426 B |