Alt-Shift-R

- Axis -> Shaft
- Gear -> Cogwheel
- Large_Gear -> Large_Cogwheel
- Axis_Tunnel -> Encased_Shaft
- Half_Axis -> Shaft_Half
- Fixed further name inconsistencies in other Object Holders
- Added Skeleton for Encased Fan
This commit is contained in:
simibubi 2019-08-29 01:51:28 +02:00
parent cb366a287a
commit 14b06ec22a
76 changed files with 511 additions and 191 deletions

View file

@ -4,12 +4,12 @@ import com.simibubi.create.foundation.block.IWithoutBlockItem;
import com.simibubi.create.foundation.block.ProperStairsBlock;
import com.simibubi.create.foundation.block.RenderUtilityAxisBlock;
import com.simibubi.create.foundation.block.RenderUtilityBlock;
import com.simibubi.create.modules.contraptions.base.HalfAxisBlock;
import com.simibubi.create.modules.contraptions.generators.MotorBlock;
import com.simibubi.create.modules.contraptions.generators.WaterWheelBlock;
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelBlock;
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelControllerBlock;
import com.simibubi.create.modules.contraptions.receivers.DrillBlock;
import com.simibubi.create.modules.contraptions.receivers.EncasedFanBlock;
import com.simibubi.create.modules.contraptions.receivers.HarvesterBlock;
import com.simibubi.create.modules.contraptions.receivers.TurntableBlock;
import com.simibubi.create.modules.contraptions.receivers.constructs.ChassisBlock;
@ -17,14 +17,15 @@ import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalP
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonHeadBlock;
import com.simibubi.create.modules.contraptions.receivers.constructs.PistonPoleBlock;
import com.simibubi.create.modules.contraptions.redstone.ContactBlock;
import com.simibubi.create.modules.contraptions.relays.AxisBlock;
import com.simibubi.create.modules.contraptions.relays.AxisTunnelBlock;
import com.simibubi.create.modules.contraptions.relays.BeltBlock;
import com.simibubi.create.modules.contraptions.relays.ClutchBlock;
import com.simibubi.create.modules.contraptions.relays.CogWheelBlock;
import com.simibubi.create.modules.contraptions.relays.EncasedBeltBlock;
import com.simibubi.create.modules.contraptions.relays.EncasedShaftBlock;
import com.simibubi.create.modules.contraptions.relays.GearboxBlock;
import com.simibubi.create.modules.contraptions.relays.GearshiftBlock;
import com.simibubi.create.modules.contraptions.relays.ShaftBlock;
import com.simibubi.create.modules.contraptions.relays.ShaftHalfBlock;
import com.simibubi.create.modules.economy.ShopShelfBlock;
import com.simibubi.create.modules.gardens.CocoaLogBlock;
import com.simibubi.create.modules.logistics.block.ExtractorBlock;
@ -62,10 +63,10 @@ public enum AllBlocks {
SCHEMATIC_TABLE(new SchematicTableBlock()),
// Kinetics
AXIS(new AxisBlock(Properties.from(Blocks.ANDESITE))),
GEAR(new CogWheelBlock(false)),
LARGE_GEAR(new CogWheelBlock(true)),
AXIS_TUNNEL(new AxisTunnelBlock()),
SHAFT(new ShaftBlock(Properties.from(Blocks.ANDESITE))),
COGWHEEL(new CogWheelBlock(false)),
LARGE_COGWHEEL(new CogWheelBlock(true)),
ENCASED_SHAFT(new EncasedShaftBlock()),
ENCASED_BELT(new EncasedBeltBlock()),
CLUTCH(new ClutchBlock()),
GEARSHIFT(new GearshiftBlock()),
@ -77,8 +78,10 @@ public enum AllBlocks {
MOTOR(new MotorBlock()),
WATER_WHEEL(new WaterWheelBlock()),
ENCASED_FAN(new EncasedFanBlock()),
ENCASED_FAN_INNER(new RenderUtilityAxisBlock()),
TURNTABLE(new TurntableBlock()),
HALF_AXIS(new HalfAxisBlock()),
SHAFT_HALF(new ShaftHalfBlock()),
CRUSHING_WHEEL(new CrushingWheelBlock()),
CRUSHING_WHEEL_CONTROLLER(new CrushingWheelControllerBlock()),

View file

@ -28,11 +28,11 @@ import net.minecraftforge.fml.network.IContainerFactory;
@EventBusSubscriber(bus = Bus.MOD)
public enum AllContainers {
SchematicTable(SchematicTableContainer::new),
Schematicannon(SchematicannonContainer::new),
FlexCrate(FlexcrateContainer::new),
SCHEMATIC_TABLE(SchematicTableContainer::new),
SCHEMATICANNON(SchematicannonContainer::new),
FLEXCRATE(FlexcrateContainer::new),
ShopShelf(ShopShelfContainer::new),
SHOP_SHELF(ShopShelfContainer::new),
;
@ -55,10 +55,10 @@ public enum AllContainers {
@OnlyIn(Dist.CLIENT)
public static void registerScreenFactories() {
bind(SchematicTable, SchematicTableScreen::new);
bind(Schematicannon, SchematicannonScreen::new);
bind(FlexCrate, FlexcrateScreen::new);
bind(ShopShelf, ShopShelfScreen::new);
bind(SCHEMATIC_TABLE, SchematicTableScreen::new);
bind(SCHEMATICANNON, SchematicannonScreen::new);
bind(FLEXCRATE, FlexcrateScreen::new);
bind(SHOP_SHELF, ShopShelfScreen::new);
}
@OnlyIn(Dist.CLIENT)

View file

@ -16,9 +16,9 @@ import net.minecraftforge.event.RegistryEvent;
public enum AllRecipes {
Placement_Handgun_Upgrade(BuilderGunUpgradeRecipe.Serializer::new, IRecipeType.CRAFTING),
PLACEMENT_HANDGUN_UPGRADE(BuilderGunUpgradeRecipe.Serializer::new, IRecipeType.CRAFTING),
Crushing(() -> {
CRUSHING(() -> {
return new ProcessingRecipeSerializer<>(CrushingRecipe::new);
}, Types.CRUSHING),

View file

@ -8,7 +8,7 @@ import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
@EventBusSubscriber(value = Dist.CLIENT)
public enum AllSpecialTextures {
Selection("selection.png"),
SELECTION("selection.png"),
;

View file

@ -9,19 +9,21 @@ import com.simibubi.create.modules.contraptions.generators.WaterWheelTileEntity;
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelControllerTileEntity;
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelTileEntity;
import com.simibubi.create.modules.contraptions.receivers.DrillTileEntity;
import com.simibubi.create.modules.contraptions.receivers.EncasedFanTileEntity;
import com.simibubi.create.modules.contraptions.receivers.EncasedFanTileEntityRenderer;
import com.simibubi.create.modules.contraptions.receivers.TurntableTileEntity;
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntity;
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntityRenderer;
import com.simibubi.create.modules.contraptions.relays.AxisTileEntity;
import com.simibubi.create.modules.contraptions.relays.AxisTunnelTileEntity;
import com.simibubi.create.modules.contraptions.relays.AxisTunnelTileEntityRenderer;
import com.simibubi.create.modules.contraptions.relays.ShaftTileEntity;
import com.simibubi.create.modules.contraptions.relays.EncasedShaftTileEntity;
import com.simibubi.create.modules.contraptions.relays.EncasedShaftTileEntityRenderer;
import com.simibubi.create.modules.contraptions.relays.BeltTileEntity;
import com.simibubi.create.modules.contraptions.relays.BeltTileEntityRenderer;
import com.simibubi.create.modules.contraptions.relays.ClutchTileEntity;
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntity;
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntityRenderer;
import com.simibubi.create.modules.contraptions.relays.GearshiftTileEntity;
import com.simibubi.create.modules.contraptions.relays.SidedAxisTunnelTileEntityRenderer;
import com.simibubi.create.modules.contraptions.relays.SplitShaftTileEntityRenderer;
import com.simibubi.create.modules.economy.ShopShelfTileEntity;
import com.simibubi.create.modules.logistics.block.ExtractorTileEntity;
import com.simibubi.create.modules.logistics.block.FlexcrateTileEntity;
@ -54,10 +56,11 @@ public enum AllTileEntities {
SCHEMATICTABLE(SchematicTableTileEntity::new, AllBlocks.SCHEMATIC_TABLE),
// Kinetics
AXIS(AxisTileEntity::new, AllBlocks.AXIS, AllBlocks.GEAR, AllBlocks.LARGE_GEAR, AllBlocks.AXIS_TUNNEL),
SHAFT(ShaftTileEntity::new, AllBlocks.SHAFT, AllBlocks.COGWHEEL, AllBlocks.LARGE_COGWHEEL, AllBlocks.ENCASED_SHAFT),
MOTOR(MotorTileEntity::new, AllBlocks.MOTOR), GEARBOX(GearboxTileEntity::new, AllBlocks.GEARBOX),
TURNTABLE(TurntableTileEntity::new, AllBlocks.TURNTABLE),
AXIS_TUNNEL(AxisTunnelTileEntity::new, AllBlocks.AXIS_TUNNEL, AllBlocks.ENCASED_BELT),
ENCASED_SHAFT(EncasedShaftTileEntity::new, AllBlocks.ENCASED_SHAFT, AllBlocks.ENCASED_BELT),
ENCASED_FAN(EncasedFanTileEntity::new, AllBlocks.ENCASED_FAN),
CLUTCH(ClutchTileEntity::new, AllBlocks.CLUTCH),
GEARSHIFT(GearshiftTileEntity::new, AllBlocks.GEARSHIFT),
BELT(BeltTileEntity::new, AllBlocks.BELT),
@ -105,13 +108,14 @@ public enum AllTileEntities {
@OnlyIn(Dist.CLIENT)
public static void registerRenderers() {
bind(SchematicannonTileEntity.class, new SchematicannonRenderer());
bind(AxisTileEntity.class, new KineticTileEntityRenderer());
bind(ShaftTileEntity.class, new KineticTileEntityRenderer());
bind(TurntableTileEntity.class, new KineticTileEntityRenderer());
bind(MotorTileEntity.class, new MotorTileEntityRenderer());
bind(AxisTunnelTileEntity.class, new AxisTunnelTileEntityRenderer());
bind(EncasedShaftTileEntity.class, new EncasedShaftTileEntityRenderer());
bind(EncasedFanTileEntity.class, new EncasedFanTileEntityRenderer());
bind(GearboxTileEntity.class, new GearboxTileEntityRenderer());
bind(GearshiftTileEntity.class, new SidedAxisTunnelTileEntityRenderer());
bind(ClutchTileEntity.class, new SidedAxisTunnelTileEntityRenderer());
bind(GearshiftTileEntity.class, new SplitShaftTileEntityRenderer());
bind(ClutchTileEntity.class, new SplitShaftTileEntityRenderer());
bind(BeltTileEntity.class, new BeltTileEntityRenderer());
bind(MechanicalPistonTileEntity.class, new MechanicalPistonTileEntityRenderer());
bind(DrillTileEntity.class, new KineticTileEntityRenderer());

View file

@ -10,7 +10,7 @@ import net.minecraft.util.Rotation;
public class ProperDirectionalBlock extends DirectionalBlock {
protected ProperDirectionalBlock(Properties p_i48415_1_) {
public ProperDirectionalBlock(Properties p_i48415_1_) {
super(p_i48415_1_);
}

View file

@ -2,11 +2,17 @@ package com.simibubi.create.foundation.block;
import net.minecraft.block.RotatedPillarBlock;
import net.minecraft.block.material.Material;
import net.minecraft.util.BlockRenderLayer;
public class RenderUtilityAxisBlock extends RotatedPillarBlock implements IRenderUtilityBlock {
public RenderUtilityAxisBlock() {
super(Properties.create(Material.AIR));
}
@Override
public BlockRenderLayer getRenderLayer() {
return BlockRenderLayer.CUTOUT;
}
}
}

View file

@ -9,7 +9,7 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import com.simibubi.create.modules.contraptions.relays.BeltTileEntity;
import com.simibubi.create.modules.contraptions.relays.EncasedBeltBlock;
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntity;
import com.simibubi.create.modules.contraptions.relays.SidedAxisTunnelTileEntity;
import com.simibubi.create.modules.contraptions.relays.SplitShaftTileEntity;
import net.minecraft.block.BlockState;
import net.minecraft.state.IProperty;
@ -77,7 +77,7 @@ public class RotationPropagator {
if (connectedByGears) {
if (diff.manhattanDistance(BlockPos.ZERO) != 1)
return 0;
if (AllBlocks.LARGE_GEAR.typeOf(stateTo))
if (AllBlocks.LARGE_COGWHEEL.typeOf(stateTo))
return 0;
if (stateFrom.get(axisProperty) == stateTo.get(axisProperty))
return -1;
@ -95,14 +95,14 @@ public class RotationPropagator {
return direction.getAxis() == source.getAxis() ? direction == source ? 1 : -1
: direction.getAxisDirection() == source.getAxisDirection() ? -1 : 1;
if (te instanceof SidedAxisTunnelTileEntity)
return ((SidedAxisTunnelTileEntity) te).getRotationSpeedModifier(direction);
if (te instanceof SplitShaftTileEntity)
return ((SplitShaftTileEntity) te).getRotationSpeedModifier(direction);
return 1;
}
private static boolean isLargeToSmallGear(BlockState from, BlockState to, final BlockPos diff) {
if (!AllBlocks.LARGE_GEAR.typeOf(from) || !AllBlocks.GEAR.typeOf(to))
if (!AllBlocks.LARGE_COGWHEEL.typeOf(from) || !AllBlocks.COGWHEEL.typeOf(to))
return false;
Axis axisFrom = from.get(BlockStateProperties.AXIS);
if (axisFrom != to.get(BlockStateProperties.AXIS))
@ -300,7 +300,7 @@ public class RotationPropagator {
// Some Blocks can interface diagonally
BlockState blockState = te.getBlockState();
if (AllBlocks.GEAR.typeOf(blockState) || AllBlocks.LARGE_GEAR.typeOf(blockState)
if (AllBlocks.COGWHEEL.typeOf(blockState) || AllBlocks.LARGE_COGWHEEL.typeOf(blockState)
|| AllBlocks.BELT.typeOf(blockState)) {
Axis axis = ((IRotate) blockState.getBlock()).getRotationAxis(blockState);

View file

@ -1,14 +0,0 @@
package com.simibubi.create.modules.contraptions.base;
import com.simibubi.create.foundation.block.IRenderUtilityBlock;
import com.simibubi.create.foundation.block.ProperDirectionalBlock;
import net.minecraft.block.material.Material;
public class HalfAxisBlock extends ProperDirectionalBlock implements IRenderUtilityBlock {
public HalfAxisBlock() {
super(Properties.create(Material.ROCK));
}
}

View file

@ -67,7 +67,7 @@ public abstract class KineticBlock extends InfoBlock implements IRotate {
@Override
public boolean canRenderInLayer(BlockState state, BlockRenderLayer layer) {
return hasStaticPart() && layer == BlockRenderLayer.SOLID;
return hasStaticPart() && layer == getRenderLayer();
}
protected abstract boolean hasStaticPart();

View file

@ -106,7 +106,7 @@ public class KineticTileEntityRenderer extends TileEntityRendererFast<KineticTil
}
protected float getRotationOffsetForPosition(KineticTileEntity te, final BlockPos pos, final Axis axis) {
float offset = AllBlocks.LARGE_GEAR.typeOf(te.getBlockState()) ? 11.25f : 0;
float offset = AllBlocks.LARGE_COGWHEEL.typeOf(te.getBlockState()) ? 11.25f : 0;
double d = (((axis == Axis.X) ? 0 : pos.getX()) + ((axis == Axis.Y) ? 0 : pos.getY())
+ ((axis == Axis.Z) ? 0 : pos.getZ())) % 2;
if (d == 0) {

View file

@ -11,7 +11,7 @@ public class MotorTileEntityRenderer extends KineticTileEntityRenderer {
@Override
protected BlockState getRenderedBlockState(KineticTileEntity te) {
return AllBlocks.HALF_AXIS.get().getDefaultState().with(BlockStateProperties.FACING,
return AllBlocks.SHAFT_HALF.get().getDefaultState().with(BlockStateProperties.FACING,
te.getBlockState().get(BlockStateProperties.HORIZONTAL_FACING));
}

View file

@ -134,7 +134,7 @@ public class WaterWheelBlock extends HorizontalKineticBlock {
@Override
public ItemDescription getDescription() {
return new ItemDescription(color).withSummary("Creates Rotational Power from " + h("Water flows", color) + " around it.")
return new ItemDescription(color).withSummary("Creates Rotational Power from " + h("Water streams", color) + " around it.")
.createTabs();
}

View file

@ -15,7 +15,7 @@ public class CrushingRecipe extends ProcessingRecipe<CrushingWheelControllerTile
public CrushingRecipe(ResourceLocation id, String group, List<Ingredient> ingredients,
List<StochasticOutput> results, int processingDuration) {
super(AllRecipes.Crushing, id, group, ingredients, results, processingDuration);
super(AllRecipes.CRUSHING, id, group, ingredients, results, processingDuration);
}
@Override

View file

@ -7,7 +7,7 @@ import com.simibubi.create.modules.contraptions.base.DirectionalKineticBlock;
import com.simibubi.create.modules.contraptions.base.IRotate;
import com.simibubi.create.modules.contraptions.receivers.constructs.IHaveMovementBehavior;
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntity;
import com.simibubi.create.modules.contraptions.relays.AxisBlock;
import com.simibubi.create.modules.contraptions.relays.ShaftBlock;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
@ -35,9 +35,9 @@ import net.minecraft.world.server.ServerWorld;
public class DrillBlock extends DirectionalKineticBlock implements IHaveMovementBehavior {
protected static final VoxelShape CORE_SHAPE = makeCuboidShape(3, 3, 3, 13, 13, 13),
DRILL_SHAPE_X = VoxelShapes.or(CORE_SHAPE, AxisBlock.AXIS_X),
DRILL_SHAPE_Y = VoxelShapes.or(CORE_SHAPE, AxisBlock.AXIS_Y),
DRILL_SHAPE_Z = VoxelShapes.or(CORE_SHAPE, AxisBlock.AXIS_Z);
DRILL_SHAPE_X = VoxelShapes.or(CORE_SHAPE, ShaftBlock.AXIS_X),
DRILL_SHAPE_Y = VoxelShapes.or(CORE_SHAPE, ShaftBlock.AXIS_Y),
DRILL_SHAPE_Z = VoxelShapes.or(CORE_SHAPE, ShaftBlock.AXIS_Z);
public static final BooleanProperty FIXATED = BooleanProperty.create("fixated");

View file

@ -0,0 +1,29 @@
package com.simibubi.create.modules.contraptions.receivers;
import com.simibubi.create.foundation.utility.ItemDescription;
import com.simibubi.create.modules.contraptions.relays.EncasedShaftBlock;
import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.world.IBlockReader;
public class EncasedFanBlock extends EncasedShaftBlock {
@Override
public ItemDescription getDescription() {
return new ItemDescription(color)
.withSummary("Exchange rotational power for air flow and back.").createTabs();
}
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return new EncasedFanTileEntity();
}
@Override
public BlockRenderLayer getRenderLayer() {
return BlockRenderLayer.CUTOUT;
}
}

View file

@ -0,0 +1,12 @@
package com.simibubi.create.modules.contraptions.receivers;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
public class EncasedFanTileEntity extends KineticTileEntity {
public EncasedFanTileEntity() {
super(AllTileEntities.ENCASED_FAN.type);
}
}

View file

@ -0,0 +1,18 @@
package com.simibubi.create.modules.contraptions.receivers;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import com.simibubi.create.modules.contraptions.base.KineticTileEntityRenderer;
import net.minecraft.block.BlockState;
import net.minecraft.state.properties.BlockStateProperties;
public class EncasedFanTileEntityRenderer extends KineticTileEntityRenderer {
@Override
protected BlockState getRenderedBlockState(KineticTileEntity te) {
return AllBlocks.ENCASED_FAN_INNER.get().getDefaultState().with(BlockStateProperties.AXIS,
te.getBlockState().get(BlockStateProperties.AXIS));
}
}

View file

@ -77,7 +77,7 @@ public class MechanicalPistonTileEntityRenderer extends KineticTileEntityRendere
@Override
protected BlockState getRenderedBlockState(KineticTileEntity te) {
return AllBlocks.AXIS.block.getDefaultState().with(BlockStateProperties.AXIS,
return AllBlocks.SHAFT.block.getDefaultState().with(BlockStateProperties.AXIS,
((IRotate) te.getBlockState().getBlock()).getRotationAxis(te.getBlockState()));
}

View file

@ -1,17 +0,0 @@
package com.simibubi.create.modules.contraptions.relays;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
public class AxisTunnelTileEntity extends KineticTileEntity {
public AxisTunnelTileEntity() {
super(AllTileEntities.AXIS_TUNNEL.type);
}
@Override
public boolean hasFastRenderer() {
return true;
}
}

View file

@ -238,7 +238,7 @@ public class BeltBlock extends HorizontalKineticBlock implements IWithoutBlockIt
te.remove();
if (hasPulley) {
worldIn.setBlockState(toDestroy, AllBlocks.AXIS.get().getDefaultState()
worldIn.setBlockState(toDestroy, AllBlocks.SHAFT.get().getDefaultState()
.with(BlockStateProperties.AXIS, getRotationAxis(destroyedBlock)), 3);
} else {
worldIn.destroyBlock(toDestroy, false);

View file

@ -202,7 +202,7 @@ public class BeltItem extends Item {
public static boolean validateAxis(World world, BlockPos pos) {
if (!world.isAreaLoaded(pos, 1))
return false;
if (!AllBlocks.AXIS.typeOf(world.getBlockState(pos)))
if (!AllBlocks.SHAFT.typeOf(world.getBlockState(pos)))
return false;
if (world.getBlockState(pos).get(BlockStateProperties.AXIS) == Axis.Y)
return false;

View file

@ -77,7 +77,7 @@ public class BeltItemHandler {
if (world.getBlockState(selected).getMaterial().isReplaceable())
return;
if (!AllBlocks.AXIS.typeOf(world.getBlockState(selected)))
if (!AllBlocks.SHAFT.typeOf(world.getBlockState(selected)))
selected = selected.offset(((BlockRayTraceResult) rayTrace).getFace());
if (!selected.withinDistance(first, BeltItem.MAX_PULLEY_DISTANCE))
return;

View file

@ -5,7 +5,7 @@ import com.simibubi.create.AllTileEntities;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction;
public class ClutchTileEntity extends SidedAxisTunnelTileEntity {
public class ClutchTileEntity extends SplitShaftTileEntity {
public ClutchTileEntity() {
super(AllTileEntities.CLUTCH.type);

View file

@ -14,7 +14,7 @@ import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorldReader;
import net.minecraft.world.World;
public class CogWheelBlock extends AxisBlock {
public class CogWheelBlock extends ShaftBlock {
private boolean isLarge;
@ -43,7 +43,7 @@ public class CogWheelBlock extends AxisBlock {
continue;
BlockState blockState = worldIn.getBlockState(pos.offset(facing));
if (AllBlocks.LARGE_GEAR.typeOf(blockState) || isLarge && AllBlocks.GEAR.typeOf(blockState))
if (AllBlocks.LARGE_COGWHEEL.typeOf(blockState) || isLarge && AllBlocks.COGWHEEL.typeOf(blockState))
return false;
}
return true;

View file

@ -96,7 +96,7 @@ public class EncasedBeltBlock extends RotatedPillarKineticBlock {
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return new AxisTunnelTileEntity();
return new EncasedShaftTileEntity();
}
@Override

View file

@ -14,15 +14,15 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
public class AxisTunnelBlock extends RotatedPillarKineticBlock {
public class EncasedShaftBlock extends RotatedPillarKineticBlock {
public AxisTunnelBlock() {
public EncasedShaftBlock() {
super(Properties.from(Blocks.ANDESITE));
}
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return new AxisTunnelTileEntity();
return new EncasedShaftTileEntity();
}
@Override

View file

@ -0,0 +1,12 @@
package com.simibubi.create.modules.contraptions.relays;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
public class EncasedShaftTileEntity extends KineticTileEntity {
public EncasedShaftTileEntity() {
super(AllTileEntities.ENCASED_SHAFT.type);
}
}

View file

@ -7,11 +7,11 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntityRenderer;
import net.minecraft.block.BlockState;
import net.minecraft.state.properties.BlockStateProperties;
public class AxisTunnelTileEntityRenderer extends KineticTileEntityRenderer {
public class EncasedShaftTileEntityRenderer extends KineticTileEntityRenderer {
@Override
protected BlockState getRenderedBlockState(KineticTileEntity te) {
return AllBlocks.AXIS.get().getDefaultState().with(BlockStateProperties.AXIS,
return AllBlocks.SHAFT.get().getDefaultState().with(BlockStateProperties.AXIS,
te.getBlockState().get(BlockStateProperties.AXIS));
}

View file

@ -21,7 +21,7 @@ public class GearboxTileEntityRenderer extends KineticTileEntityRenderer {
final Axis boxAxis = te.getBlockState().get(BlockStateProperties.AXIS);
final BlockPos pos = te.getPos();
float time = Animation.getWorldTime(Minecraft.getInstance().world, partialTicks);
final BlockState defaultState = AllBlocks.HALF_AXIS.get().getDefaultState();
final BlockState defaultState = AllBlocks.SHAFT_HALF.get().getDefaultState();
for (Direction direction : Direction.values()) {
final Axis axis = direction.getAxis();

View file

@ -17,7 +17,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
public class GearshiftBlock extends AxisTunnelBlock {
public class GearshiftBlock extends EncasedShaftBlock {
public static final BooleanProperty POWERED = BlockStateProperties.POWERED;

View file

@ -5,7 +5,7 @@ import com.simibubi.create.AllTileEntities;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction;
public class GearshiftTileEntity extends SidedAxisTunnelTileEntity {
public class GearshiftTileEntity extends SplitShaftTileEntity {
public GearshiftTileEntity() {
super(AllTileEntities.GEARSHIFT.type);

View file

@ -14,19 +14,19 @@ import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
public class AxisBlock extends RotatedPillarKineticBlock {
public class ShaftBlock extends RotatedPillarKineticBlock {
public static final VoxelShape AXIS_X = makeCuboidShape(0, 5, 5, 16, 11, 11);
public static final VoxelShape AXIS_Y = makeCuboidShape(5, 0, 5, 11, 16, 11);
public static final VoxelShape AXIS_Z = makeCuboidShape(5, 5, 0, 11, 11, 16);
public AxisBlock(Properties properties) {
public ShaftBlock(Properties properties) {
super(properties);
}
@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return new AxisTileEntity();
return new ShaftTileEntity();
}
@Override
@ -44,7 +44,7 @@ public class AxisBlock extends RotatedPillarKineticBlock {
BlockState placedAgainst = context.getWorld()
.getBlockState(context.getPos().offset(context.getFace().getOpposite()));
if (!(placedAgainst.getBlock() instanceof AxisBlock))
if (!(placedAgainst.getBlock() instanceof ShaftBlock))
return super.getStateForPlacement(context);
return getDefaultState().with(AXIS, placedAgainst.get(AXIS));

View file

@ -0,0 +1,14 @@
package com.simibubi.create.modules.contraptions.relays;
import com.simibubi.create.foundation.block.IWithoutBlockItem;
import com.simibubi.create.foundation.block.ProperDirectionalBlock;
import net.minecraft.block.Blocks;
public class ShaftHalfBlock extends ProperDirectionalBlock implements IWithoutBlockItem {
public ShaftHalfBlock() {
super(Properties.from(Blocks.AIR));
}
}

View file

@ -3,10 +3,10 @@ package com.simibubi.create.modules.contraptions.relays;
import com.simibubi.create.AllTileEntities;
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
public class AxisTileEntity extends KineticTileEntity {
public class ShaftTileEntity extends KineticTileEntity {
public AxisTileEntity() {
super(AllTileEntities.AXIS.type);
public ShaftTileEntity() {
super(AllTileEntities.SHAFT.type);
}
}

View file

@ -5,9 +5,9 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.Direction;
public abstract class SidedAxisTunnelTileEntity extends KineticTileEntity {
public abstract class SplitShaftTileEntity extends KineticTileEntity {
public SidedAxisTunnelTileEntity(TileEntityType<?> typeIn) {
public SplitShaftTileEntity(TileEntityType<?> typeIn) {
super(typeIn);
}

View file

@ -13,7 +13,7 @@ import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.client.model.animation.Animation;
public class SidedAxisTunnelTileEntityRenderer extends KineticTileEntityRenderer {
public class SplitShaftTileEntityRenderer extends KineticTileEntityRenderer {
@Override
public void renderTileEntityFast(KineticTileEntity te, double x, double y, double z, float partialTicks,
@ -21,7 +21,7 @@ public class SidedAxisTunnelTileEntityRenderer extends KineticTileEntityRenderer
final Axis boxAxis = te.getBlockState().get(BlockStateProperties.AXIS);
final BlockPos pos = te.getPos();
float time = Animation.getWorldTime(Minecraft.getInstance().world, partialTicks);
final BlockState defaultState = AllBlocks.HALF_AXIS.get().getDefaultState();
final BlockState defaultState = AllBlocks.SHAFT_HALF.get().getDefaultState();
for (Direction direction : Direction.values()) {
final Axis axis = direction.getAxis();
@ -35,8 +35,8 @@ public class SidedAxisTunnelTileEntityRenderer extends KineticTileEntityRenderer
float angle = (time * te.getSpeed()) % 360;
float modifier = 1;
if (te instanceof SidedAxisTunnelTileEntity)
modifier = ((SidedAxisTunnelTileEntity) te).getRotationSpeedModifier(direction);
if (te instanceof SplitShaftTileEntity)
modifier = ((SplitShaftTileEntity) te).getRotationSpeedModifier(direction);
angle *= modifier;
angle += offset;

View file

@ -65,7 +65,7 @@ public class BuilderGunUpgradeRecipe implements ICraftingRecipe {
@Override
public IRecipeSerializer<?> getSerializer() {
return AllRecipes.Placement_Handgun_Upgrade.serializer;
return AllRecipes.PLACEMENT_HANDGUN_UPGRADE.serializer;
}
public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<BuilderGunUpgradeRecipe> {

View file

@ -1,5 +1,7 @@
package com.simibubi.create.modules.economy;
import com.simibubi.create.foundation.block.IWithoutBlockItem;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
@ -21,7 +23,7 @@ import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
import net.minecraftforge.fml.network.NetworkHooks;
public class ShopShelfBlock extends HorizontalBlock {
public class ShopShelfBlock extends HorizontalBlock implements IWithoutBlockItem {
public static final VoxelShape TOP_SHAPE = makeCuboidShape(0, 14, 0, 16, 16, 16);

View file

@ -10,11 +10,11 @@ import net.minecraft.network.PacketBuffer;
public class ShopShelfContainer extends Container {
public ShopShelfContainer(int id, PlayerInventory inv, ShopShelfTileEntity te) {
super(AllContainers.ShopShelf.type, id);
super(AllContainers.SHOP_SHELF.type, id);
}
public ShopShelfContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
super(AllContainers.ShopShelf.type, id);
super(AllContainers.SHOP_SHELF.type, id);
}
@Override

View file

@ -18,7 +18,7 @@ public class FlexcrateContainer extends Container {
public PlayerInventory playerInventory;
public FlexcrateContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
super(AllContainers.FlexCrate.type, id);
super(AllContainers.FLEXCRATE.type, id);
ClientWorld world = Minecraft.getInstance().world;
this.te = (FlexcrateTileEntity) world.getTileEntity(extraData.readBlockPos());
this.te.handleUpdateTag(extraData.readCompoundTag());
@ -27,7 +27,7 @@ public class FlexcrateContainer extends Container {
}
public FlexcrateContainer(int id, PlayerInventory inv, FlexcrateTileEntity te) {
super(AllContainers.FlexCrate.type, id);
super(AllContainers.FLEXCRATE.type, id);
this.te = te;
this.playerInventory = inv;
init();

View file

@ -21,7 +21,7 @@ public class SchematicTableContainer extends Container {
private PlayerEntity player;
public SchematicTableContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
super(AllContainers.SchematicTable.type, id);
super(AllContainers.SCHEMATIC_TABLE.type, id);
player = inv.player;
ClientWorld world = Minecraft.getInstance().world;
this.te = (SchematicTableTileEntity) world.getTileEntity(extraData.readBlockPos());
@ -30,7 +30,7 @@ public class SchematicTableContainer extends Container {
}
public SchematicTableContainer(int id, PlayerInventory inv, SchematicTableTileEntity te) {
super(AllContainers.SchematicTable.type, id);
super(AllContainers.SCHEMATIC_TABLE.type, id);
this.player = inv.player;
this.te = te;
init();

View file

@ -18,7 +18,7 @@ public class SchematicannonContainer extends Container {
private PlayerEntity player;
public SchematicannonContainer(int id, PlayerInventory inv, PacketBuffer buffer) {
super(AllContainers.Schematicannon.type, id);
super(AllContainers.SCHEMATICANNON.type, id);
player = inv.player;
ClientWorld world = Minecraft.getInstance().world;
this.te = (SchematicannonTileEntity) world.getTileEntity(buffer.readBlockPos());
@ -27,7 +27,7 @@ public class SchematicannonContainer extends Container {
}
public SchematicannonContainer(int id, PlayerInventory inv, SchematicannonTileEntity te) {
super(AllContainers.Schematicannon.type, id);
super(AllContainers.SCHEMATICANNON.type, id);
player = inv.player;
this.te = te;
init();

View file

@ -233,7 +233,7 @@ public class BlueprintAndQuillHandler {
GlStateManager.enableTexture();
TessellatorHelper.begin();
AllSpecialTextures.Selection.bind();
AllSpecialTextures.SELECTION.bind();
TessellatorHelper.doubleFace(Tessellator.getInstance().getBuffer(), new BlockPos(faceMin),
new BlockPos(faceMax.subtract(faceMin)), 1 / 16f * selectedFace.getAxisDirection().getOffset(),
false, false, false);

View file

@ -1,11 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/axis"
},
"variants": {
"axis=y": { "model": "create:block/axis" },
"axis=z": { "model": "create:block/axis", "x": 90 },
"axis=x": { "model": "create:block/axis", "x": 90, "y": 90 }
}
}

View file

@ -1,11 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/axis_tunnel"
},
"variants": {
"axis=y": { "model": "create:block/axis_tunnel", "x": 90 },
"axis=z": { "model": "create:block/axis_tunnel" },
"axis=x": { "model": "create:block/axis_tunnel", "y": 90 }
}
}

View file

@ -0,0 +1,13 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/cogwheel"
},
"variants": {
"axis" : {
"x": { "x": 90, "y": 90 },
"y": {},
"z": { "x": 90 }
}
}
}

View file

@ -0,0 +1,13 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/encased_fan"
},
"variants": {
"axis" : {
"x": { "y": 90 },
"y": { "x": 90 },
"z": { }
}
}
}

View file

@ -0,0 +1,13 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/encased_fan_inner"
},
"variants": {
"axis" : {
"x": { "y": 90 },
"y": { "x": 90 },
"z": { }
}
}
}

View file

@ -0,0 +1,13 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/encased_shaft"
},
"variants": {
"axis" : {
"x": { "y": 90 },
"y": { "x": 90 },
"z": { }
}
}
}

View file

@ -1,11 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/gear"
},
"variants": {
"axis=y": { "model": "create:block/gear" },
"axis=z": { "model": "create:block/gear", "x": 90 },
"axis=x": { "model": "create:block/gear", "x": 90, "y": 90 }
}
}

View file

@ -1,14 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/axis_half"
},
"variants": {
"facing=up": { "model": "create:block/axis_half" },
"facing=down": { "model": "create:block/axis_half", "x": 180 },
"facing=north": { "model": "create:block/axis_half", "x": 90 },
"facing=south": { "model": "create:block/axis_half", "x": 90, "y": 180 },
"facing=east": { "model": "create:block/axis_half", "x": 90, "y": 90 },
"facing=west": { "model": "create:block/axis_half", "x": 90, "y": 270 }
}
}

View file

@ -0,0 +1,13 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/large_cogwheel"
},
"variants": {
"axis" : {
"x": { "x": 90, "y": 90 },
"y": {},
"z": { "x": 90 }
}
}
}

View file

@ -1,11 +0,0 @@
{
"forgemarker": 1,
"defaults": {
"model": "create:block/large_gear"
},
"variants": {
"axis=y": { "model": "create:block/large_gear" },
"axis=z": { "model": "create:block/large_gear", "x": 90 },
"axis=x": { "model": "create:block/large_gear", "x": 90, "y": 90 }
}
}

View file

@ -0,0 +1,13 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/shaft"
},
"variants": {
"axis" : {
"x": { "x": 90, "y": 90 },
"y": {},
"z": { "x": 90 }
}
}
}

View file

@ -0,0 +1,16 @@
{
"forge_marker": 1,
"defaults": {
"model": "create:block/shaft_half"
},
"variants": {
"facing" : {
"up" : { },
"down" : { "x": 180 },
"north" : { "x": 90 },
"east" : { "x": 90, "y": 90 },
"south" : { "x": 90, "y": 180 },
"west" : { "x": 90, "y": 270 }
}
}
}

View file

@ -11,15 +11,16 @@
"item.create.belt_connector": "Mechanical Belt",
"item.create.filter": "Filter",
"block.create.gear": "Cogwheel",
"block.create.large_gear": "Large Cogwheel",
"block.create.cogwheel": "Cogwheel",
"block.create.large_cogwheel": "Large Cogwheel",
"block.create.turntable": "Turntable",
"block.create.gearbox": "Gearbox",
"block.create.gearshift": "Gearshift",
"block.create.clutch": "Clutch",
"block.create.axis": "Axis",
"block.create.shaft": "Shaft",
"block.create.encased_belt": "Encased Belt",
"block.create.axis_tunnel": "Encased Axis",
"block.create.encased_shaft": "Encased Shaft",
"block.create.encased_fan": "Encased Fan",
"block.create.motor": "Motor",
"block.create.belt": "Mechanical Belt",
"block.create.crushing_wheel": "Crushing Wheel",

View file

@ -0,0 +1,77 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"parent": "block/block",
"textures": {
"particle": "create:block/fan_side",
"fan_casing": "create:block/fan_casing",
"fan_side": "create:block/fan_side"
},
"elements": [
{
"name": "Bottom",
"from": [ 0, 0, 0 ],
"to": [ 16, 2, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 0, 14, 16, 16 ] },
"east": { "texture": "#fan_side", "uv": [ 14, 0, 16, 16 ], "rotation": 90 },
"south": { "texture": "#fan_casing", "uv": [ 0, 14, 16, 16 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 16, 16 ], "rotation": 90 },
"up": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] },
"down": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] }
}
},
{
"name": "Top",
"from": [ 0, 14, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 0, 0, 16, 2 ] },
"east": { "texture": "#fan_side", "uv": [ 0, 0, 2, 16 ], "rotation": 90 },
"south": { "texture": "#fan_casing", "uv": [ 0, 0, 16, 2 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 16, 16 ], "rotation": 270 },
"up": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] },
"down": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] }
}
},
{
"name": "Side",
"from": [ 0, 2, 0 ],
"to": [ 2, 14, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 14, 2, 16, 14 ] },
"east": { "texture": "#fan_side", "uv": [ 2, 0, 14, 16 ], "rotation": 90 },
"south": { "texture": "#fan_casing", "uv": [ 0, 2, 2, 14 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 2, 16 ], "rotation": 270 }
}
},
{
"name": "Side",
"from": [ 14, 2, 0 ],
"to": [ 16, 14, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 0, 2, 2, 14 ] },
"east": { "texture": "#fan_side", "uv": [ 2, 0, 14, 16 ], "rotation": 270 },
"south": { "texture": "#fan_casing", "uv": [ 14, 2, 16, 14 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 2, 16 ], "rotation": 270 }
}
},
{
"name": "Lattice",
"from": [ 2, 2, 1 ],
"to": [ 14, 14, 1 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] },
"south": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] }
}
},
{
"name": "Lattice",
"from": [ 2, 2, 15 ],
"to": [ 14, 14, 15 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] },
"south": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] }
}
}
]
}

View file

@ -0,0 +1,34 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"textures": {
"particle": "create:block/fan_side",
"axis_top": "create:block/axis_top",
"fan_blades": "create:block/fan_blades",
"axis": "create:block/axis"
},
"elements": [
{
"name": "Shaft",
"from": [ 6, 6, 0 ],
"to": [ 10, 10, 16 ],
"faces": {
"north": { "texture": "#axis_top", "uv": [ 6, 6, 10, 10 ] },
"east": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ], "rotation": 90 },
"south": { "texture": "#axis_top", "uv": [ 6, 6, 10, 10 ] },
"west": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ], "rotation": 270 },
"up": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] },
"down": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] }
}
},
{
"name": "Fan",
"from": [ 1, 1, 4 ],
"to": [ 15, 15, 12 ],
"rotation": { "origin": [ 8, 8, 8 ], "axis": "z", "angle": 22.5 },
"faces": {
"north": { "texture": "#fan_blades", "uv": [ 1, 1, 15, 15 ] },
"south": { "texture": "#fan_blades", "uv": [ 1, 1, 15, 15 ] }
}
}
]
}

View file

@ -1,3 +0,0 @@
{
"parent": "create:block/axis"
}

View file

@ -1,3 +0,0 @@
{
"parent": "create:block/axis_tunnel"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/cogwheel"
}

View file

@ -0,0 +1,103 @@
{
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
"parent": "block/block",
"textures": {
"particle": "create:block/fan_side",
"fan_casing": "create:block/fan_casing",
"fan_side": "create:block/fan_side",
"axis_top": "create:block/axis_top",
"fan_blades": "create:block/fan_blades",
"axis": "create:block/axis"
},
"elements": [
{
"name": "Bottom",
"from": [ 0, 0, 0 ],
"to": [ 16, 2, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 0, 14, 16, 16 ] },
"east": { "texture": "#fan_side", "uv": [ 14, 0, 16, 16 ], "rotation": 90 },
"south": { "texture": "#fan_casing", "uv": [ 0, 14, 16, 16 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 16, 16 ], "rotation": 90 },
"up": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] },
"down": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] }
}
},
{
"name": "Top",
"from": [ 0, 14, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 0, 0, 16, 2 ] },
"east": { "texture": "#fan_side", "uv": [ 0, 0, 2, 16 ], "rotation": 90 },
"south": { "texture": "#fan_casing", "uv": [ 0, 0, 16, 2 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 16, 16 ], "rotation": 270 },
"up": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] },
"down": { "texture": "#fan_side", "uv": [ 0, 0, 16, 16 ] }
}
},
{
"name": "Side",
"from": [ 0, 2, 0 ],
"to": [ 2, 14, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 14, 2, 16, 14 ] },
"east": { "texture": "#fan_side", "uv": [ 2, 0, 14, 16 ], "rotation": 90 },
"south": { "texture": "#fan_casing", "uv": [ 0, 2, 2, 14 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 2, 16 ], "rotation": 270 }
}
},
{
"name": "Side",
"from": [ 14, 2, 0 ],
"to": [ 16, 14, 16 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 0, 2, 2, 14 ] },
"east": { "texture": "#fan_side", "uv": [ 2, 0, 14, 16 ], "rotation": 270 },
"south": { "texture": "#fan_casing", "uv": [ 14, 2, 16, 14 ] },
"west": { "texture": "#fan_side", "uv": [ 14, 0, 2, 16 ], "rotation": 270 }
}
},
{
"name": "Lattice",
"from": [ 2, 2, 1 ],
"to": [ 14, 14, 1 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] },
"south": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] }
}
},
{
"name": "Lattice",
"from": [ 2, 2, 15 ],
"to": [ 14, 14, 15 ],
"faces": {
"north": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] },
"south": { "texture": "#fan_casing", "uv": [ 2, 2, 14, 14 ] }
}
},
{
"name": "Shaft",
"from": [ 6, 6, 0 ],
"to": [ 10, 10, 16 ],
"faces": {
"north": { "texture": "#axis_top", "uv": [ 6, 6, 10, 10 ] },
"east": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ], "rotation": 90 },
"south": { "texture": "#axis_top", "uv": [ 6, 6, 10, 10 ] },
"west": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ], "rotation": 270 },
"up": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] },
"down": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] }
}
},
{
"name": "Fan",
"from": [ 1, 1, 4 ],
"to": [ 15, 15, 12 ],
"rotation": { "origin": [ 8, 8, 8 ], "axis": "z", "angle": 22.5 },
"faces": {
"north": { "texture": "#fan_blades", "uv": [ 1, 1, 15, 15 ] },
"south": { "texture": "#fan_blades", "uv": [ 1, 1, 15, 15 ] }
}
}
]
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/encased_shaft"
}

View file

@ -1,3 +0,0 @@
{
"parent": "create:block/gear"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/large_cogwheel"
}

View file

@ -1,3 +0,0 @@
{
"parent": "create:block/large_gear"
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/shaft"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B