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:
parent
cb366a287a
commit
14b06ec22a
76 changed files with 511 additions and 191 deletions
|
@ -4,12 +4,12 @@ import com.simibubi.create.foundation.block.IWithoutBlockItem;
|
||||||
import com.simibubi.create.foundation.block.ProperStairsBlock;
|
import com.simibubi.create.foundation.block.ProperStairsBlock;
|
||||||
import com.simibubi.create.foundation.block.RenderUtilityAxisBlock;
|
import com.simibubi.create.foundation.block.RenderUtilityAxisBlock;
|
||||||
import com.simibubi.create.foundation.block.RenderUtilityBlock;
|
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.MotorBlock;
|
||||||
import com.simibubi.create.modules.contraptions.generators.WaterWheelBlock;
|
import com.simibubi.create.modules.contraptions.generators.WaterWheelBlock;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelBlock;
|
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelBlock;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelControllerBlock;
|
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelControllerBlock;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.DrillBlock;
|
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.HarvesterBlock;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.TurntableBlock;
|
import com.simibubi.create.modules.contraptions.receivers.TurntableBlock;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.constructs.ChassisBlock;
|
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.MechanicalPistonHeadBlock;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.constructs.PistonPoleBlock;
|
import com.simibubi.create.modules.contraptions.receivers.constructs.PistonPoleBlock;
|
||||||
import com.simibubi.create.modules.contraptions.redstone.ContactBlock;
|
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.BeltBlock;
|
||||||
import com.simibubi.create.modules.contraptions.relays.ClutchBlock;
|
import com.simibubi.create.modules.contraptions.relays.ClutchBlock;
|
||||||
import com.simibubi.create.modules.contraptions.relays.CogWheelBlock;
|
import com.simibubi.create.modules.contraptions.relays.CogWheelBlock;
|
||||||
import com.simibubi.create.modules.contraptions.relays.EncasedBeltBlock;
|
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.GearboxBlock;
|
||||||
import com.simibubi.create.modules.contraptions.relays.GearshiftBlock;
|
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.economy.ShopShelfBlock;
|
||||||
import com.simibubi.create.modules.gardens.CocoaLogBlock;
|
import com.simibubi.create.modules.gardens.CocoaLogBlock;
|
||||||
import com.simibubi.create.modules.logistics.block.ExtractorBlock;
|
import com.simibubi.create.modules.logistics.block.ExtractorBlock;
|
||||||
|
@ -62,10 +63,10 @@ public enum AllBlocks {
|
||||||
SCHEMATIC_TABLE(new SchematicTableBlock()),
|
SCHEMATIC_TABLE(new SchematicTableBlock()),
|
||||||
|
|
||||||
// Kinetics
|
// Kinetics
|
||||||
AXIS(new AxisBlock(Properties.from(Blocks.ANDESITE))),
|
SHAFT(new ShaftBlock(Properties.from(Blocks.ANDESITE))),
|
||||||
GEAR(new CogWheelBlock(false)),
|
COGWHEEL(new CogWheelBlock(false)),
|
||||||
LARGE_GEAR(new CogWheelBlock(true)),
|
LARGE_COGWHEEL(new CogWheelBlock(true)),
|
||||||
AXIS_TUNNEL(new AxisTunnelBlock()),
|
ENCASED_SHAFT(new EncasedShaftBlock()),
|
||||||
ENCASED_BELT(new EncasedBeltBlock()),
|
ENCASED_BELT(new EncasedBeltBlock()),
|
||||||
CLUTCH(new ClutchBlock()),
|
CLUTCH(new ClutchBlock()),
|
||||||
GEARSHIFT(new GearshiftBlock()),
|
GEARSHIFT(new GearshiftBlock()),
|
||||||
|
@ -77,8 +78,10 @@ public enum AllBlocks {
|
||||||
MOTOR(new MotorBlock()),
|
MOTOR(new MotorBlock()),
|
||||||
WATER_WHEEL(new WaterWheelBlock()),
|
WATER_WHEEL(new WaterWheelBlock()),
|
||||||
|
|
||||||
|
ENCASED_FAN(new EncasedFanBlock()),
|
||||||
|
ENCASED_FAN_INNER(new RenderUtilityAxisBlock()),
|
||||||
TURNTABLE(new TurntableBlock()),
|
TURNTABLE(new TurntableBlock()),
|
||||||
HALF_AXIS(new HalfAxisBlock()),
|
SHAFT_HALF(new ShaftHalfBlock()),
|
||||||
CRUSHING_WHEEL(new CrushingWheelBlock()),
|
CRUSHING_WHEEL(new CrushingWheelBlock()),
|
||||||
CRUSHING_WHEEL_CONTROLLER(new CrushingWheelControllerBlock()),
|
CRUSHING_WHEEL_CONTROLLER(new CrushingWheelControllerBlock()),
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,11 @@ import net.minecraftforge.fml.network.IContainerFactory;
|
||||||
@EventBusSubscriber(bus = Bus.MOD)
|
@EventBusSubscriber(bus = Bus.MOD)
|
||||||
public enum AllContainers {
|
public enum AllContainers {
|
||||||
|
|
||||||
SchematicTable(SchematicTableContainer::new),
|
SCHEMATIC_TABLE(SchematicTableContainer::new),
|
||||||
Schematicannon(SchematicannonContainer::new),
|
SCHEMATICANNON(SchematicannonContainer::new),
|
||||||
FlexCrate(FlexcrateContainer::new),
|
FLEXCRATE(FlexcrateContainer::new),
|
||||||
|
|
||||||
ShopShelf(ShopShelfContainer::new),
|
SHOP_SHELF(ShopShelfContainer::new),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -55,10 +55,10 @@ public enum AllContainers {
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public static void registerScreenFactories() {
|
public static void registerScreenFactories() {
|
||||||
bind(SchematicTable, SchematicTableScreen::new);
|
bind(SCHEMATIC_TABLE, SchematicTableScreen::new);
|
||||||
bind(Schematicannon, SchematicannonScreen::new);
|
bind(SCHEMATICANNON, SchematicannonScreen::new);
|
||||||
bind(FlexCrate, FlexcrateScreen::new);
|
bind(FLEXCRATE, FlexcrateScreen::new);
|
||||||
bind(ShopShelf, ShopShelfScreen::new);
|
bind(SHOP_SHELF, ShopShelfScreen::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
|
|
@ -16,9 +16,9 @@ import net.minecraftforge.event.RegistryEvent;
|
||||||
|
|
||||||
public enum AllRecipes {
|
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);
|
return new ProcessingRecipeSerializer<>(CrushingRecipe::new);
|
||||||
}, Types.CRUSHING),
|
}, Types.CRUSHING),
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||||
@EventBusSubscriber(value = Dist.CLIENT)
|
@EventBusSubscriber(value = Dist.CLIENT)
|
||||||
public enum AllSpecialTextures {
|
public enum AllSpecialTextures {
|
||||||
|
|
||||||
Selection("selection.png"),
|
SELECTION("selection.png"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -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.CrushingWheelControllerTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelTileEntity;
|
import com.simibubi.create.modules.contraptions.receivers.CrushingWheelTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.DrillTileEntity;
|
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.TurntableTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntity;
|
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntityRenderer;
|
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntityRenderer;
|
||||||
import com.simibubi.create.modules.contraptions.relays.AxisTileEntity;
|
import com.simibubi.create.modules.contraptions.relays.ShaftTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.relays.AxisTunnelTileEntity;
|
import com.simibubi.create.modules.contraptions.relays.EncasedShaftTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.relays.AxisTunnelTileEntityRenderer;
|
import com.simibubi.create.modules.contraptions.relays.EncasedShaftTileEntityRenderer;
|
||||||
import com.simibubi.create.modules.contraptions.relays.BeltTileEntity;
|
import com.simibubi.create.modules.contraptions.relays.BeltTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.relays.BeltTileEntityRenderer;
|
import com.simibubi.create.modules.contraptions.relays.BeltTileEntityRenderer;
|
||||||
import com.simibubi.create.modules.contraptions.relays.ClutchTileEntity;
|
import com.simibubi.create.modules.contraptions.relays.ClutchTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntity;
|
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntityRenderer;
|
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntityRenderer;
|
||||||
import com.simibubi.create.modules.contraptions.relays.GearshiftTileEntity;
|
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.economy.ShopShelfTileEntity;
|
||||||
import com.simibubi.create.modules.logistics.block.ExtractorTileEntity;
|
import com.simibubi.create.modules.logistics.block.ExtractorTileEntity;
|
||||||
import com.simibubi.create.modules.logistics.block.FlexcrateTileEntity;
|
import com.simibubi.create.modules.logistics.block.FlexcrateTileEntity;
|
||||||
|
@ -54,10 +56,11 @@ public enum AllTileEntities {
|
||||||
SCHEMATICTABLE(SchematicTableTileEntity::new, AllBlocks.SCHEMATIC_TABLE),
|
SCHEMATICTABLE(SchematicTableTileEntity::new, AllBlocks.SCHEMATIC_TABLE),
|
||||||
|
|
||||||
// Kinetics
|
// 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),
|
MOTOR(MotorTileEntity::new, AllBlocks.MOTOR), GEARBOX(GearboxTileEntity::new, AllBlocks.GEARBOX),
|
||||||
TURNTABLE(TurntableTileEntity::new, AllBlocks.TURNTABLE),
|
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),
|
CLUTCH(ClutchTileEntity::new, AllBlocks.CLUTCH),
|
||||||
GEARSHIFT(GearshiftTileEntity::new, AllBlocks.GEARSHIFT),
|
GEARSHIFT(GearshiftTileEntity::new, AllBlocks.GEARSHIFT),
|
||||||
BELT(BeltTileEntity::new, AllBlocks.BELT),
|
BELT(BeltTileEntity::new, AllBlocks.BELT),
|
||||||
|
@ -105,13 +108,14 @@ public enum AllTileEntities {
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public static void registerRenderers() {
|
public static void registerRenderers() {
|
||||||
bind(SchematicannonTileEntity.class, new SchematicannonRenderer());
|
bind(SchematicannonTileEntity.class, new SchematicannonRenderer());
|
||||||
bind(AxisTileEntity.class, new KineticTileEntityRenderer());
|
bind(ShaftTileEntity.class, new KineticTileEntityRenderer());
|
||||||
bind(TurntableTileEntity.class, new KineticTileEntityRenderer());
|
bind(TurntableTileEntity.class, new KineticTileEntityRenderer());
|
||||||
bind(MotorTileEntity.class, new MotorTileEntityRenderer());
|
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(GearboxTileEntity.class, new GearboxTileEntityRenderer());
|
||||||
bind(GearshiftTileEntity.class, new SidedAxisTunnelTileEntityRenderer());
|
bind(GearshiftTileEntity.class, new SplitShaftTileEntityRenderer());
|
||||||
bind(ClutchTileEntity.class, new SidedAxisTunnelTileEntityRenderer());
|
bind(ClutchTileEntity.class, new SplitShaftTileEntityRenderer());
|
||||||
bind(BeltTileEntity.class, new BeltTileEntityRenderer());
|
bind(BeltTileEntity.class, new BeltTileEntityRenderer());
|
||||||
bind(MechanicalPistonTileEntity.class, new MechanicalPistonTileEntityRenderer());
|
bind(MechanicalPistonTileEntity.class, new MechanicalPistonTileEntityRenderer());
|
||||||
bind(DrillTileEntity.class, new KineticTileEntityRenderer());
|
bind(DrillTileEntity.class, new KineticTileEntityRenderer());
|
||||||
|
|
|
@ -10,7 +10,7 @@ import net.minecraft.util.Rotation;
|
||||||
|
|
||||||
public class ProperDirectionalBlock extends DirectionalBlock {
|
public class ProperDirectionalBlock extends DirectionalBlock {
|
||||||
|
|
||||||
protected ProperDirectionalBlock(Properties p_i48415_1_) {
|
public ProperDirectionalBlock(Properties p_i48415_1_) {
|
||||||
super(p_i48415_1_);
|
super(p_i48415_1_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,17 @@ package com.simibubi.create.foundation.block;
|
||||||
|
|
||||||
import net.minecraft.block.RotatedPillarBlock;
|
import net.minecraft.block.RotatedPillarBlock;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.util.BlockRenderLayer;
|
||||||
|
|
||||||
public class RenderUtilityAxisBlock extends RotatedPillarBlock implements IRenderUtilityBlock {
|
public class RenderUtilityAxisBlock extends RotatedPillarBlock implements IRenderUtilityBlock {
|
||||||
|
|
||||||
public RenderUtilityAxisBlock() {
|
public RenderUtilityAxisBlock() {
|
||||||
super(Properties.create(Material.AIR));
|
super(Properties.create(Material.AIR));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockRenderLayer getRenderLayer() {
|
||||||
|
return BlockRenderLayer.CUTOUT;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.BeltTileEntity;
|
||||||
import com.simibubi.create.modules.contraptions.relays.EncasedBeltBlock;
|
import com.simibubi.create.modules.contraptions.relays.EncasedBeltBlock;
|
||||||
import com.simibubi.create.modules.contraptions.relays.GearboxTileEntity;
|
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.block.BlockState;
|
||||||
import net.minecraft.state.IProperty;
|
import net.minecraft.state.IProperty;
|
||||||
|
@ -77,7 +77,7 @@ public class RotationPropagator {
|
||||||
if (connectedByGears) {
|
if (connectedByGears) {
|
||||||
if (diff.manhattanDistance(BlockPos.ZERO) != 1)
|
if (diff.manhattanDistance(BlockPos.ZERO) != 1)
|
||||||
return 0;
|
return 0;
|
||||||
if (AllBlocks.LARGE_GEAR.typeOf(stateTo))
|
if (AllBlocks.LARGE_COGWHEEL.typeOf(stateTo))
|
||||||
return 0;
|
return 0;
|
||||||
if (stateFrom.get(axisProperty) == stateTo.get(axisProperty))
|
if (stateFrom.get(axisProperty) == stateTo.get(axisProperty))
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -95,14 +95,14 @@ public class RotationPropagator {
|
||||||
return direction.getAxis() == source.getAxis() ? direction == source ? 1 : -1
|
return direction.getAxis() == source.getAxis() ? direction == source ? 1 : -1
|
||||||
: direction.getAxisDirection() == source.getAxisDirection() ? -1 : 1;
|
: direction.getAxisDirection() == source.getAxisDirection() ? -1 : 1;
|
||||||
|
|
||||||
if (te instanceof SidedAxisTunnelTileEntity)
|
if (te instanceof SplitShaftTileEntity)
|
||||||
return ((SidedAxisTunnelTileEntity) te).getRotationSpeedModifier(direction);
|
return ((SplitShaftTileEntity) te).getRotationSpeedModifier(direction);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isLargeToSmallGear(BlockState from, BlockState to, final BlockPos diff) {
|
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;
|
return false;
|
||||||
Axis axisFrom = from.get(BlockStateProperties.AXIS);
|
Axis axisFrom = from.get(BlockStateProperties.AXIS);
|
||||||
if (axisFrom != to.get(BlockStateProperties.AXIS))
|
if (axisFrom != to.get(BlockStateProperties.AXIS))
|
||||||
|
@ -300,7 +300,7 @@ public class RotationPropagator {
|
||||||
|
|
||||||
// Some Blocks can interface diagonally
|
// Some Blocks can interface diagonally
|
||||||
BlockState blockState = te.getBlockState();
|
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)) {
|
|| AllBlocks.BELT.typeOf(blockState)) {
|
||||||
Axis axis = ((IRotate) blockState.getBlock()).getRotationAxis(blockState);
|
Axis axis = ((IRotate) blockState.getBlock()).getRotationAxis(blockState);
|
||||||
|
|
||||||
|
|
|
@ -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));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -67,7 +67,7 @@ public abstract class KineticBlock extends InfoBlock implements IRotate {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canRenderInLayer(BlockState state, BlockRenderLayer layer) {
|
public boolean canRenderInLayer(BlockState state, BlockRenderLayer layer) {
|
||||||
return hasStaticPart() && layer == BlockRenderLayer.SOLID;
|
return hasStaticPart() && layer == getRenderLayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract boolean hasStaticPart();
|
protected abstract boolean hasStaticPart();
|
||||||
|
|
|
@ -106,7 +106,7 @@ public class KineticTileEntityRenderer extends TileEntityRendererFast<KineticTil
|
||||||
}
|
}
|
||||||
|
|
||||||
protected float getRotationOffsetForPosition(KineticTileEntity te, final BlockPos pos, final Axis axis) {
|
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())
|
double d = (((axis == Axis.X) ? 0 : pos.getX()) + ((axis == Axis.Y) ? 0 : pos.getY())
|
||||||
+ ((axis == Axis.Z) ? 0 : pos.getZ())) % 2;
|
+ ((axis == Axis.Z) ? 0 : pos.getZ())) % 2;
|
||||||
if (d == 0) {
|
if (d == 0) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ public class MotorTileEntityRenderer extends KineticTileEntityRenderer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BlockState getRenderedBlockState(KineticTileEntity te) {
|
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));
|
te.getBlockState().get(BlockStateProperties.HORIZONTAL_FACING));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ public class WaterWheelBlock extends HorizontalKineticBlock {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemDescription getDescription() {
|
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();
|
.createTabs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class CrushingRecipe extends ProcessingRecipe<CrushingWheelControllerTile
|
||||||
|
|
||||||
public CrushingRecipe(ResourceLocation id, String group, List<Ingredient> ingredients,
|
public CrushingRecipe(ResourceLocation id, String group, List<Ingredient> ingredients,
|
||||||
List<StochasticOutput> results, int processingDuration) {
|
List<StochasticOutput> results, int processingDuration) {
|
||||||
super(AllRecipes.Crushing, id, group, ingredients, results, processingDuration);
|
super(AllRecipes.CRUSHING, id, group, ingredients, results, processingDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -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.base.IRotate;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.constructs.IHaveMovementBehavior;
|
import com.simibubi.create.modules.contraptions.receivers.constructs.IHaveMovementBehavior;
|
||||||
import com.simibubi.create.modules.contraptions.receivers.constructs.MechanicalPistonTileEntity;
|
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.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
@ -35,9 +35,9 @@ import net.minecraft.world.server.ServerWorld;
|
||||||
public class DrillBlock extends DirectionalKineticBlock implements IHaveMovementBehavior {
|
public class DrillBlock extends DirectionalKineticBlock implements IHaveMovementBehavior {
|
||||||
|
|
||||||
protected static final VoxelShape CORE_SHAPE = makeCuboidShape(3, 3, 3, 13, 13, 13),
|
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_X = VoxelShapes.or(CORE_SHAPE, ShaftBlock.AXIS_X),
|
||||||
DRILL_SHAPE_Y = VoxelShapes.or(CORE_SHAPE, AxisBlock.AXIS_Y),
|
DRILL_SHAPE_Y = VoxelShapes.or(CORE_SHAPE, ShaftBlock.AXIS_Y),
|
||||||
DRILL_SHAPE_Z = VoxelShapes.or(CORE_SHAPE, AxisBlock.AXIS_Z);
|
DRILL_SHAPE_Z = VoxelShapes.or(CORE_SHAPE, ShaftBlock.AXIS_Z);
|
||||||
|
|
||||||
public static final BooleanProperty FIXATED = BooleanProperty.create("fixated");
|
public static final BooleanProperty FIXATED = BooleanProperty.create("fixated");
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -77,7 +77,7 @@ public class MechanicalPistonTileEntityRenderer extends KineticTileEntityRendere
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BlockState getRenderedBlockState(KineticTileEntity te) {
|
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()));
|
((IRotate) te.getBlockState().getBlock()).getRotationAxis(te.getBlockState()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -238,7 +238,7 @@ public class BeltBlock extends HorizontalKineticBlock implements IWithoutBlockIt
|
||||||
te.remove();
|
te.remove();
|
||||||
|
|
||||||
if (hasPulley) {
|
if (hasPulley) {
|
||||||
worldIn.setBlockState(toDestroy, AllBlocks.AXIS.get().getDefaultState()
|
worldIn.setBlockState(toDestroy, AllBlocks.SHAFT.get().getDefaultState()
|
||||||
.with(BlockStateProperties.AXIS, getRotationAxis(destroyedBlock)), 3);
|
.with(BlockStateProperties.AXIS, getRotationAxis(destroyedBlock)), 3);
|
||||||
} else {
|
} else {
|
||||||
worldIn.destroyBlock(toDestroy, false);
|
worldIn.destroyBlock(toDestroy, false);
|
||||||
|
|
|
@ -202,7 +202,7 @@ public class BeltItem extends Item {
|
||||||
public static boolean validateAxis(World world, BlockPos pos) {
|
public static boolean validateAxis(World world, BlockPos pos) {
|
||||||
if (!world.isAreaLoaded(pos, 1))
|
if (!world.isAreaLoaded(pos, 1))
|
||||||
return false;
|
return false;
|
||||||
if (!AllBlocks.AXIS.typeOf(world.getBlockState(pos)))
|
if (!AllBlocks.SHAFT.typeOf(world.getBlockState(pos)))
|
||||||
return false;
|
return false;
|
||||||
if (world.getBlockState(pos).get(BlockStateProperties.AXIS) == Axis.Y)
|
if (world.getBlockState(pos).get(BlockStateProperties.AXIS) == Axis.Y)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class BeltItemHandler {
|
||||||
|
|
||||||
if (world.getBlockState(selected).getMaterial().isReplaceable())
|
if (world.getBlockState(selected).getMaterial().isReplaceable())
|
||||||
return;
|
return;
|
||||||
if (!AllBlocks.AXIS.typeOf(world.getBlockState(selected)))
|
if (!AllBlocks.SHAFT.typeOf(world.getBlockState(selected)))
|
||||||
selected = selected.offset(((BlockRayTraceResult) rayTrace).getFace());
|
selected = selected.offset(((BlockRayTraceResult) rayTrace).getFace());
|
||||||
if (!selected.withinDistance(first, BeltItem.MAX_PULLEY_DISTANCE))
|
if (!selected.withinDistance(first, BeltItem.MAX_PULLEY_DISTANCE))
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import com.simibubi.create.AllTileEntities;
|
||||||
import net.minecraft.state.properties.BlockStateProperties;
|
import net.minecraft.state.properties.BlockStateProperties;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
|
|
||||||
public class ClutchTileEntity extends SidedAxisTunnelTileEntity {
|
public class ClutchTileEntity extends SplitShaftTileEntity {
|
||||||
|
|
||||||
public ClutchTileEntity() {
|
public ClutchTileEntity() {
|
||||||
super(AllTileEntities.CLUTCH.type);
|
super(AllTileEntities.CLUTCH.type);
|
||||||
|
|
|
@ -14,7 +14,7 @@ import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.IWorldReader;
|
import net.minecraft.world.IWorldReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class CogWheelBlock extends AxisBlock {
|
public class CogWheelBlock extends ShaftBlock {
|
||||||
|
|
||||||
private boolean isLarge;
|
private boolean isLarge;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ public class CogWheelBlock extends AxisBlock {
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
BlockState blockState = worldIn.getBlockState(pos.offset(facing));
|
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 false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class EncasedBeltBlock extends RotatedPillarKineticBlock {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
return new AxisTunnelTileEntity();
|
return new EncasedShaftTileEntity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -14,15 +14,15 @@ import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class AxisTunnelBlock extends RotatedPillarKineticBlock {
|
public class EncasedShaftBlock extends RotatedPillarKineticBlock {
|
||||||
|
|
||||||
public AxisTunnelBlock() {
|
public EncasedShaftBlock() {
|
||||||
super(Properties.from(Blocks.ANDESITE));
|
super(Properties.from(Blocks.ANDESITE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
return new AxisTunnelTileEntity();
|
return new EncasedShaftTileEntity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -7,11 +7,11 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntityRenderer;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.state.properties.BlockStateProperties;
|
import net.minecraft.state.properties.BlockStateProperties;
|
||||||
|
|
||||||
public class AxisTunnelTileEntityRenderer extends KineticTileEntityRenderer {
|
public class EncasedShaftTileEntityRenderer extends KineticTileEntityRenderer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected BlockState getRenderedBlockState(KineticTileEntity te) {
|
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));
|
te.getBlockState().get(BlockStateProperties.AXIS));
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class GearboxTileEntityRenderer extends KineticTileEntityRenderer {
|
||||||
final Axis boxAxis = te.getBlockState().get(BlockStateProperties.AXIS);
|
final Axis boxAxis = te.getBlockState().get(BlockStateProperties.AXIS);
|
||||||
final BlockPos pos = te.getPos();
|
final BlockPos pos = te.getPos();
|
||||||
float time = Animation.getWorldTime(Minecraft.getInstance().world, partialTicks);
|
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()) {
|
for (Direction direction : Direction.values()) {
|
||||||
final Axis axis = direction.getAxis();
|
final Axis axis = direction.getAxis();
|
||||||
|
|
|
@ -17,7 +17,7 @@ import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class GearshiftBlock extends AxisTunnelBlock {
|
public class GearshiftBlock extends EncasedShaftBlock {
|
||||||
|
|
||||||
public static final BooleanProperty POWERED = BlockStateProperties.POWERED;
|
public static final BooleanProperty POWERED = BlockStateProperties.POWERED;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import com.simibubi.create.AllTileEntities;
|
||||||
import net.minecraft.state.properties.BlockStateProperties;
|
import net.minecraft.state.properties.BlockStateProperties;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
|
|
||||||
public class GearshiftTileEntity extends SidedAxisTunnelTileEntity {
|
public class GearshiftTileEntity extends SplitShaftTileEntity {
|
||||||
|
|
||||||
public GearshiftTileEntity() {
|
public GearshiftTileEntity() {
|
||||||
super(AllTileEntities.GEARSHIFT.type);
|
super(AllTileEntities.GEARSHIFT.type);
|
||||||
|
|
|
@ -14,19 +14,19 @@ import net.minecraft.util.math.shapes.VoxelShape;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
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_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_Y = makeCuboidShape(5, 0, 5, 11, 16, 11);
|
||||||
public static final VoxelShape AXIS_Z = makeCuboidShape(5, 5, 0, 11, 11, 16);
|
public static final VoxelShape AXIS_Z = makeCuboidShape(5, 5, 0, 11, 11, 16);
|
||||||
|
|
||||||
public AxisBlock(Properties properties) {
|
public ShaftBlock(Properties properties) {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
return new AxisTileEntity();
|
return new ShaftTileEntity();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AxisBlock extends RotatedPillarKineticBlock {
|
||||||
BlockState placedAgainst = context.getWorld()
|
BlockState placedAgainst = context.getWorld()
|
||||||
.getBlockState(context.getPos().offset(context.getFace().getOpposite()));
|
.getBlockState(context.getPos().offset(context.getFace().getOpposite()));
|
||||||
|
|
||||||
if (!(placedAgainst.getBlock() instanceof AxisBlock))
|
if (!(placedAgainst.getBlock() instanceof ShaftBlock))
|
||||||
return super.getStateForPlacement(context);
|
return super.getStateForPlacement(context);
|
||||||
|
|
||||||
return getDefaultState().with(AXIS, placedAgainst.get(AXIS));
|
return getDefaultState().with(AXIS, placedAgainst.get(AXIS));
|
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -3,10 +3,10 @@ package com.simibubi.create.modules.contraptions.relays;
|
||||||
import com.simibubi.create.AllTileEntities;
|
import com.simibubi.create.AllTileEntities;
|
||||||
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
||||||
|
|
||||||
public class AxisTileEntity extends KineticTileEntity {
|
public class ShaftTileEntity extends KineticTileEntity {
|
||||||
|
|
||||||
public AxisTileEntity() {
|
public ShaftTileEntity() {
|
||||||
super(AllTileEntities.AXIS.type);
|
super(AllTileEntities.SHAFT.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -5,9 +5,9 @@ import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
import net.minecraft.util.Direction;
|
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);
|
super(typeIn);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import net.minecraft.util.Direction.Axis;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraftforge.client.model.animation.Animation;
|
import net.minecraftforge.client.model.animation.Animation;
|
||||||
|
|
||||||
public class SidedAxisTunnelTileEntityRenderer extends KineticTileEntityRenderer {
|
public class SplitShaftTileEntityRenderer extends KineticTileEntityRenderer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderTileEntityFast(KineticTileEntity te, double x, double y, double z, float partialTicks,
|
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 Axis boxAxis = te.getBlockState().get(BlockStateProperties.AXIS);
|
||||||
final BlockPos pos = te.getPos();
|
final BlockPos pos = te.getPos();
|
||||||
float time = Animation.getWorldTime(Minecraft.getInstance().world, partialTicks);
|
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()) {
|
for (Direction direction : Direction.values()) {
|
||||||
final Axis axis = direction.getAxis();
|
final Axis axis = direction.getAxis();
|
||||||
|
@ -35,8 +35,8 @@ public class SidedAxisTunnelTileEntityRenderer extends KineticTileEntityRenderer
|
||||||
float angle = (time * te.getSpeed()) % 360;
|
float angle = (time * te.getSpeed()) % 360;
|
||||||
float modifier = 1;
|
float modifier = 1;
|
||||||
|
|
||||||
if (te instanceof SidedAxisTunnelTileEntity)
|
if (te instanceof SplitShaftTileEntity)
|
||||||
modifier = ((SidedAxisTunnelTileEntity) te).getRotationSpeedModifier(direction);
|
modifier = ((SplitShaftTileEntity) te).getRotationSpeedModifier(direction);
|
||||||
|
|
||||||
angle *= modifier;
|
angle *= modifier;
|
||||||
angle += offset;
|
angle += offset;
|
|
@ -65,7 +65,7 @@ public class BuilderGunUpgradeRecipe implements ICraftingRecipe {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IRecipeSerializer<?> getSerializer() {
|
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> {
|
public static class Serializer extends ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<BuilderGunUpgradeRecipe> {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.simibubi.create.modules.economy;
|
package com.simibubi.create.modules.economy;
|
||||||
|
|
||||||
|
import com.simibubi.create.foundation.block.IWithoutBlockItem;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
|
@ -21,7 +23,7 @@ import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.fml.network.NetworkHooks;
|
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);
|
public static final VoxelShape TOP_SHAPE = makeCuboidShape(0, 14, 0, 16, 16, 16);
|
||||||
|
|
||||||
|
|
|
@ -10,11 +10,11 @@ import net.minecraft.network.PacketBuffer;
|
||||||
public class ShopShelfContainer extends Container {
|
public class ShopShelfContainer extends Container {
|
||||||
|
|
||||||
public ShopShelfContainer(int id, PlayerInventory inv, ShopShelfTileEntity te) {
|
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) {
|
public ShopShelfContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
|
||||||
super(AllContainers.ShopShelf.type, id);
|
super(AllContainers.SHOP_SHELF.type, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class FlexcrateContainer extends Container {
|
||||||
public PlayerInventory playerInventory;
|
public PlayerInventory playerInventory;
|
||||||
|
|
||||||
public FlexcrateContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
|
public FlexcrateContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
|
||||||
super(AllContainers.FlexCrate.type, id);
|
super(AllContainers.FLEXCRATE.type, id);
|
||||||
ClientWorld world = Minecraft.getInstance().world;
|
ClientWorld world = Minecraft.getInstance().world;
|
||||||
this.te = (FlexcrateTileEntity) world.getTileEntity(extraData.readBlockPos());
|
this.te = (FlexcrateTileEntity) world.getTileEntity(extraData.readBlockPos());
|
||||||
this.te.handleUpdateTag(extraData.readCompoundTag());
|
this.te.handleUpdateTag(extraData.readCompoundTag());
|
||||||
|
@ -27,7 +27,7 @@ public class FlexcrateContainer extends Container {
|
||||||
}
|
}
|
||||||
|
|
||||||
public FlexcrateContainer(int id, PlayerInventory inv, FlexcrateTileEntity te) {
|
public FlexcrateContainer(int id, PlayerInventory inv, FlexcrateTileEntity te) {
|
||||||
super(AllContainers.FlexCrate.type, id);
|
super(AllContainers.FLEXCRATE.type, id);
|
||||||
this.te = te;
|
this.te = te;
|
||||||
this.playerInventory = inv;
|
this.playerInventory = inv;
|
||||||
init();
|
init();
|
||||||
|
|
|
@ -21,7 +21,7 @@ public class SchematicTableContainer extends Container {
|
||||||
private PlayerEntity player;
|
private PlayerEntity player;
|
||||||
|
|
||||||
public SchematicTableContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
|
public SchematicTableContainer(int id, PlayerInventory inv, PacketBuffer extraData) {
|
||||||
super(AllContainers.SchematicTable.type, id);
|
super(AllContainers.SCHEMATIC_TABLE.type, id);
|
||||||
player = inv.player;
|
player = inv.player;
|
||||||
ClientWorld world = Minecraft.getInstance().world;
|
ClientWorld world = Minecraft.getInstance().world;
|
||||||
this.te = (SchematicTableTileEntity) world.getTileEntity(extraData.readBlockPos());
|
this.te = (SchematicTableTileEntity) world.getTileEntity(extraData.readBlockPos());
|
||||||
|
@ -30,7 +30,7 @@ public class SchematicTableContainer extends Container {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SchematicTableContainer(int id, PlayerInventory inv, SchematicTableTileEntity te) {
|
public SchematicTableContainer(int id, PlayerInventory inv, SchematicTableTileEntity te) {
|
||||||
super(AllContainers.SchematicTable.type, id);
|
super(AllContainers.SCHEMATIC_TABLE.type, id);
|
||||||
this.player = inv.player;
|
this.player = inv.player;
|
||||||
this.te = te;
|
this.te = te;
|
||||||
init();
|
init();
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class SchematicannonContainer extends Container {
|
||||||
private PlayerEntity player;
|
private PlayerEntity player;
|
||||||
|
|
||||||
public SchematicannonContainer(int id, PlayerInventory inv, PacketBuffer buffer) {
|
public SchematicannonContainer(int id, PlayerInventory inv, PacketBuffer buffer) {
|
||||||
super(AllContainers.Schematicannon.type, id);
|
super(AllContainers.SCHEMATICANNON.type, id);
|
||||||
player = inv.player;
|
player = inv.player;
|
||||||
ClientWorld world = Minecraft.getInstance().world;
|
ClientWorld world = Minecraft.getInstance().world;
|
||||||
this.te = (SchematicannonTileEntity) world.getTileEntity(buffer.readBlockPos());
|
this.te = (SchematicannonTileEntity) world.getTileEntity(buffer.readBlockPos());
|
||||||
|
@ -27,7 +27,7 @@ public class SchematicannonContainer extends Container {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SchematicannonContainer(int id, PlayerInventory inv, SchematicannonTileEntity te) {
|
public SchematicannonContainer(int id, PlayerInventory inv, SchematicannonTileEntity te) {
|
||||||
super(AllContainers.Schematicannon.type, id);
|
super(AllContainers.SCHEMATICANNON.type, id);
|
||||||
player = inv.player;
|
player = inv.player;
|
||||||
this.te = te;
|
this.te = te;
|
||||||
init();
|
init();
|
||||||
|
|
|
@ -233,7 +233,7 @@ public class BlueprintAndQuillHandler {
|
||||||
|
|
||||||
GlStateManager.enableTexture();
|
GlStateManager.enableTexture();
|
||||||
TessellatorHelper.begin();
|
TessellatorHelper.begin();
|
||||||
AllSpecialTextures.Selection.bind();
|
AllSpecialTextures.SELECTION.bind();
|
||||||
TessellatorHelper.doubleFace(Tessellator.getInstance().getBuffer(), new BlockPos(faceMin),
|
TessellatorHelper.doubleFace(Tessellator.getInstance().getBuffer(), new BlockPos(faceMin),
|
||||||
new BlockPos(faceMax.subtract(faceMin)), 1 / 16f * selectedFace.getAxisDirection().getOffset(),
|
new BlockPos(faceMax.subtract(faceMin)), 1 / 16f * selectedFace.getAxisDirection().getOffset(),
|
||||||
false, false, false);
|
false, false, false);
|
||||||
|
|
|
@ -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 }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 }
|
|
||||||
}
|
|
||||||
}
|
|
13
src/main/resources/assets/create/blockstates/cogwheel.json
Normal file
13
src/main/resources/assets/create/blockstates/cogwheel.json
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "create:block/cogwheel"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"axis" : {
|
||||||
|
"x": { "x": 90, "y": 90 },
|
||||||
|
"y": {},
|
||||||
|
"z": { "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "create:block/encased_fan"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"axis" : {
|
||||||
|
"x": { "y": 90 },
|
||||||
|
"y": { "x": 90 },
|
||||||
|
"z": { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "create:block/encased_fan_inner"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"axis" : {
|
||||||
|
"x": { "y": 90 },
|
||||||
|
"y": { "x": 90 },
|
||||||
|
"z": { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "create:block/encased_shaft"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"axis" : {
|
||||||
|
"x": { "y": 90 },
|
||||||
|
"y": { "x": 90 },
|
||||||
|
"z": { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "create:block/large_cogwheel"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"axis" : {
|
||||||
|
"x": { "x": 90, "y": 90 },
|
||||||
|
"y": {},
|
||||||
|
"z": { "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 }
|
|
||||||
}
|
|
||||||
}
|
|
13
src/main/resources/assets/create/blockstates/shaft.json
Normal file
13
src/main/resources/assets/create/blockstates/shaft.json
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "create:block/shaft"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"axis" : {
|
||||||
|
"x": { "x": 90, "y": 90 },
|
||||||
|
"y": {},
|
||||||
|
"z": { "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
16
src/main/resources/assets/create/blockstates/shaft_half.json
Normal file
16
src/main/resources/assets/create/blockstates/shaft_half.json
Normal 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 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,15 +11,16 @@
|
||||||
"item.create.belt_connector": "Mechanical Belt",
|
"item.create.belt_connector": "Mechanical Belt",
|
||||||
"item.create.filter": "Filter",
|
"item.create.filter": "Filter",
|
||||||
|
|
||||||
"block.create.gear": "Cogwheel",
|
"block.create.cogwheel": "Cogwheel",
|
||||||
"block.create.large_gear": "Large Cogwheel",
|
"block.create.large_cogwheel": "Large Cogwheel",
|
||||||
"block.create.turntable": "Turntable",
|
"block.create.turntable": "Turntable",
|
||||||
"block.create.gearbox": "Gearbox",
|
"block.create.gearbox": "Gearbox",
|
||||||
"block.create.gearshift": "Gearshift",
|
"block.create.gearshift": "Gearshift",
|
||||||
"block.create.clutch": "Clutch",
|
"block.create.clutch": "Clutch",
|
||||||
"block.create.axis": "Axis",
|
"block.create.shaft": "Shaft",
|
||||||
"block.create.encased_belt": "Encased Belt",
|
"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.motor": "Motor",
|
||||||
"block.create.belt": "Mechanical Belt",
|
"block.create.belt": "Mechanical Belt",
|
||||||
"block.create.crushing_wheel": "Crushing Wheel",
|
"block.create.crushing_wheel": "Crushing Wheel",
|
||||||
|
|
|
@ -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 ] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -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 ] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/axis"
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/axis_tunnel"
|
|
||||||
}
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/cogwheel"
|
||||||
|
}
|
103
src/main/resources/assets/create/models/item/encased_fan.json
Normal file
103
src/main/resources/assets/create/models/item/encased_fan.json
Normal 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 ] }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/encased_shaft"
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/gear"
|
|
||||||
}
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/large_cogwheel"
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "create:block/large_gear"
|
|
||||||
}
|
|
3
src/main/resources/assets/create/models/item/shaft.json
Normal file
3
src/main/resources/assets/create/models/item/shaft.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"parent": "create:block/shaft"
|
||||||
|
}
|
BIN
src/main/resources/assets/create/textures/block/fan_blades.png
Normal file
BIN
src/main/resources/assets/create/textures/block/fan_blades.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 360 B |
BIN
src/main/resources/assets/create/textures/block/fan_casing.png
Normal file
BIN
src/main/resources/assets/create/textures/block/fan_casing.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 495 B |
BIN
src/main/resources/assets/create/textures/block/fan_side.png
Normal file
BIN
src/main/resources/assets/create/textures/block/fan_side.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 443 B |
Loading…
Reference in a new issue