bars, rebar formwork, ladders

This commit is contained in:
DrMangoTea
2023-10-27 09:46:20 +02:00
parent af6f657de6
commit 806ef2e5c8
96 changed files with 2050 additions and 71 deletions

View File

@@ -0,0 +1,145 @@
package com.drmangotea.tfmg.base;
import com.drmangotea.tfmg.CreateTFMG;
import com.simibubi.create.AllTags.AllBlockTags;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.data.TagGen;
import com.tterrag.registrate.providers.DataGenContext;
import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
import com.tterrag.registrate.util.DataIngredient;
import com.tterrag.registrate.util.entry.BlockEntry;
import com.tterrag.registrate.util.nullness.NonNullBiConsumer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.IronBarsBlock;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraftforge.client.model.generators.ModelFile;
import java.util.function.Supplier;
import static com.simibubi.create.Create.REGISTRATE;
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.*;
public class TFMGMetalBarsGen {
public static <P extends IronBarsBlock> NonNullBiConsumer<DataGenContext<Block, P>, RegistrateBlockstateProvider> barsBlockState(
String name, boolean specialEdge) {
return (c, p) -> {
ModelFile post_ends = barsSubModel(p, name, "post_ends", specialEdge);
ModelFile post = barsSubModel(p, name, "post", specialEdge);
ModelFile cap = barsSubModel(p, name, "cap", specialEdge);
ModelFile cap_alt = barsSubModel(p, name, "cap_alt", specialEdge);
ModelFile side = barsSubModel(p, name, "side", specialEdge);
ModelFile side_alt = barsSubModel(p, name, "side_alt", specialEdge);
p.getMultipartBuilder(c.get())
.part()
.modelFile(post_ends)
.addModel()
.end()
.part()
.modelFile(post)
.addModel()
.condition(NORTH, false)
.condition(EAST, false)
.condition(SOUTH, false)
.condition(WEST, false)
.end()
.part()
.modelFile(cap)
.addModel()
.condition(NORTH, true)
.condition(EAST, false)
.condition(SOUTH, false)
.condition(WEST, false)
.end()
.part()
.modelFile(cap)
.rotationY(90)
.addModel()
.condition(NORTH, false)
.condition(EAST, true)
.condition(SOUTH, false)
.condition(WEST, false)
.end()
.part()
.modelFile(cap_alt)
.addModel()
.condition(NORTH, false)
.condition(EAST, false)
.condition(SOUTH, true)
.condition(WEST, false)
.end()
.part()
.modelFile(cap_alt)
.rotationY(90)
.addModel()
.condition(NORTH, false)
.condition(EAST, false)
.condition(SOUTH, false)
.condition(WEST, true)
.end()
.part()
.modelFile(side)
.addModel()
.condition(NORTH, true)
.end()
.part()
.modelFile(side)
.rotationY(90)
.addModel()
.condition(EAST, true)
.end()
.part()
.modelFile(side_alt)
.addModel()
.condition(SOUTH, true)
.end()
.part()
.modelFile(side_alt)
.rotationY(90)
.addModel()
.condition(WEST, true)
.end();
};
}
private static ModelFile barsSubModel(RegistrateBlockstateProvider p, String name, String suffix,
boolean specialEdge) {
ResourceLocation barsTexture = p.modLoc("block/bars/" + name + "_bars");
ResourceLocation edgeTexture = specialEdge ? p.modLoc("block/bars/" + name + "_bars_edge") : barsTexture;
return p.models()
.withExistingParent(name + "_" + suffix, p.modLoc("block/bars/" + suffix))
.texture("bars", barsTexture)
.texture("particle", barsTexture)
.texture("edge", edgeTexture);
}
@SuppressWarnings("removal")
public static BlockEntry<IronBarsBlock> createBars(String name, boolean specialEdge,
Supplier<DataIngredient> ingredient, MaterialColor color) {
return CreateTFMG.REGISTRATE.block(name + "_bars", IronBarsBlock::new)
.addLayer(() -> RenderType::cutoutMipped)
.initialProperties(() -> Blocks.IRON_BARS)
.properties(p -> p.sound(SoundType.COPPER)
.color(color))
.tag(AllBlockTags.WRENCH_PICKUP.tag)
.tag(AllBlockTags.FAN_TRANSPARENT.tag)
.transform(TagGen.pickaxeOnly())
.blockstate(barsBlockState(name, specialEdge))
.item()
.model((c, p) -> {
ResourceLocation barsTexture = p.modLoc("block/bars/" + name + "_bars");
p.withExistingParent(c.getName(), CreateTFMG.asResource("item/bars"))
.texture("bars", barsTexture)
.texture("edge", specialEdge ? p.modLoc("block/bars/" + name + "_bars_edge") : barsTexture);
})
.recipe((c, p) -> p.stonecutting(ingredient.get(), c::get, 4))
.build()
.register();
}
}

View File

@@ -0,0 +1,23 @@
package com.drmangotea.tfmg.blocks.concrete.formwork.rebar;
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.foundation.block.IBE;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
public class RebarFormWorkBlock extends Block implements IWrenchable, IBE<RebarFormWorkBlockEntity> {
public RebarFormWorkBlock(Properties p_49795_) {
super(p_49795_);
}
@Override
public Class<RebarFormWorkBlockEntity> getBlockEntityClass() {
return RebarFormWorkBlockEntity.class;
}
@Override
public BlockEntityType<? extends RebarFormWorkBlockEntity> getBlockEntityType() {
return TFMGBlockEntities.REBAR_FORMWORK.get();
}
}

View File

@@ -0,0 +1,218 @@
package com.drmangotea.tfmg.blocks.concrete.formwork.rebar;
import com.drmangotea.tfmg.blocks.concrete.formwork.FormWorkBlockEntity;
import com.drmangotea.tfmg.blocks.machines.TFMGMachineBlockEntity;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGFluids;
import com.jozufozu.flywheel.core.GameStateRegistry;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
import net.minecraft.commands.arguments.blocks.BlockStateArgument;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
public class RebarFormWorkBlockEntity extends FormWorkBlockEntity {
public RebarFormWorkBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
}
@Override
public void tick() {
if(tankInventory.getFluidAmount()==tankInventory.getCapacity()){
if(timer==-1) {
timer = 180 * 24;
}else {
timer--;
if(timer==0){
level.setBlock(getBlockPos(), TFMGBlocks.REBAR_CONCRETE.getDefaultState() ,3);
}
}
} else
timer = -1;
super.tick();
fluidLevel.chase(tankInventory.getFluidAmount(), 0.3f, LerpedFloat.Chaser.EXP);
fluidLevel.tickChaser();
BlockEntity blockEntityBelow = level.getBlockEntity(this.getBlockPos().below());
BlockEntity blockEntityNorth = level.getBlockEntity(this.getBlockPos().north());
BlockEntity blockEntityWest = level.getBlockEntity(this.getBlockPos().west());
BlockEntity blockEntityEast = level.getBlockEntity(this.getBlockPos().east());
BlockEntity blockEntitySouth = level.getBlockEntity(this.getBlockPos().south());
bottom = !(blockEntityBelow instanceof RebarFormWorkBlockEntity);
east = !(blockEntityEast instanceof RebarFormWorkBlockEntity);
west = !(blockEntityWest instanceof RebarFormWorkBlockEntity);
north = !(blockEntityNorth instanceof RebarFormWorkBlockEntity);
south = !(blockEntitySouth instanceof RebarFormWorkBlockEntity);
for (int x = 0; x < 30; x++) {
for (int i = 0; i < 5; i++) {
BlockEntity CheckedBE = null;
if (i == 0) {
CheckedBE = level.getBlockEntity(this.getBlockPos().below());
}
if (i == 1) {
CheckedBE = level.getBlockEntity(this.getBlockPos().east());
}
if (i == 2) {
CheckedBE = level.getBlockEntity(this.getBlockPos().west());
}
if (i == 3) {
CheckedBE = level.getBlockEntity(this.getBlockPos().north());
}
if (i == 4) {
CheckedBE = level.getBlockEntity(this.getBlockPos().south());
}
if (CheckedBE instanceof RebarFormWorkBlockEntity) {
if(((RebarFormWorkBlockEntity) CheckedBE).tankInventory.getFluidAmount()>this.tankInventory.getFluidAmount()&&i!=0)
continue;
FluidTank checkedTank = ((RebarFormWorkBlockEntity) CheckedBE).tankInventory;
if (checkedTank.getFluidAmount() < 1000) {
if(checkedTank.getFluidAmount()>=995&&tankInventory.getFluidAmount()>0){
checkedTank.setFluid(new FluidStack(TFMGFluids.LIQUID_CONCRETE.getSource(), checkedTank.getFluidAmount()+1));
//tankInventory.drain(1, IFluidHandler.FluidAction.EXECUTE);
// continue;
}
int reducedAmount = tankInventory.getFluidAmount() / 8;
if (tankInventory.getFluidAmount() != 0)
reducedAmount = 1;
int newFluidAmount = checkedTank.getFluidAmount() + reducedAmount;
int toRemove = reducedAmount;
//if full
if (newFluidAmount > 1000) {
continue;
// int amountModifier = newFluidAmount - 1000;
// newFluidAmount -= amountModifier;
// toRemove = reducedAmount - amountModifier;
}
//
checkedTank.setFluid(new FluidStack(TFMGFluids.LIQUID_CONCRETE.getSource(), newFluidAmount));
tankInventory.drain(1, IFluidHandler.FluidAction.EXECUTE);
}
}
}
}
/*
BlockPos below = this.getBlockPos().below();
BlockPos west = this.getBlockPos().west();
BlockPos east = this.getBlockPos().east();
BlockPos north = this.getBlockPos().north();
BlockPos south = this.getBlockPos().south();
if(level.getBlockEntity(below) instanceof FormWorkBlockEntity){
bottom = false;
}else bottom = true;
if(level.getBlockEntity(west) instanceof FormWorkBlockEntity){
bottom = false;
}else bottom = true;
if(level.getBlockEntity(east) instanceof FormWorkBlockEntity){
bottom = false;
}else bottom = true;
if(level.getBlockEntity(north) instanceof FormWorkBlockEntity){
bottom = false;
}else bottom = true;
if(level.getBlockEntity(south) instanceof FormWorkBlockEntity){
bottom = false;
}else bottom = true;
*/
}
protected void onFluidStackChanged(FluidStack newFluidStack) {
if (!hasLevel())
return;
if (!level.isClientSide) {
setChanged();
sendData();
}
}
public float getFillState() {
return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity();
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
timer = compound.getInt("Timer");
bottom = compound.getBoolean("Bottom");
east = compound.getBoolean("East");
west = compound.getBoolean("West");
north = compound.getBoolean("North");
south = compound.getBoolean("South");
tankInventory.readFromNBT(compound.getCompound("TankContent"));
}
@Override
public void write(CompoundTag compound, boolean clientPacket) {
super.write(compound, clientPacket);
compound.putInt("Timer", timer);
compound.putBoolean("Bottom", bottom);
compound.putBoolean("East", east);
compound.putBoolean("West", west);
compound.putBoolean("North", north);
compound.putBoolean("South", south);
compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag()));
}
public LerpedFloat getFluidLevel() {
return fluidLevel;
}
}

View File

@@ -84,7 +84,12 @@ public class FluidPropagatorMixin {
if (tileEntity instanceof PumpBlockEntity) {
if (
!TFMGBlocks.STEEL_MECHANICAL_PUMP.has(targetState)&&
!AllBlocks.MECHANICAL_PUMP.has(targetState) || targetState.getValue(PumpBlock.FACING)
!AllBlocks.MECHANICAL_PUMP.has(targetState)&&
!TFMGBlocks.BRASS_MECHANICAL_PUMP.has(targetState)&&
!TFMGBlocks.CAST_IRON_MECHANICAL_PUMP.has(targetState)&&
!TFMGBlocks.ALUMINUM_MECHANICAL_PUMP.has(targetState)&&
!TFMGBlocks.PLASTIC_MECHANICAL_PUMP.has(targetState)
|| targetState.getValue(PumpBlock.FACING)
.getAxis() != direction.getAxis())
continue;
discoveredPumps.add(Pair.of((PumpBlockEntity) tileEntity, direction.getOpposite()));

View File

@@ -2,6 +2,7 @@ package com.drmangotea.tfmg.registry;
import com.drmangotea.tfmg.blocks.concrete.formwork.FormWorkBlockEntity;
import com.drmangotea.tfmg.blocks.concrete.formwork.FormWorkRenderer;
import com.drmangotea.tfmg.blocks.concrete.formwork.rebar.RebarFormWorkBlockEntity;
import com.drmangotea.tfmg.blocks.decoration.doors.TFMGSlidingDoorBlockEntity;
import com.drmangotea.tfmg.blocks.decoration.doors.TFMGSlidingDoorRenderer;
import com.drmangotea.tfmg.blocks.decoration.flywheels.TFMGFlywheelBlockEntity;
@@ -77,6 +78,12 @@ public class TFMGBlockEntities {
.renderer(() -> FormWorkRenderer::new)
.validBlocks(TFMGBlocks.FORMWORK_BLOCK)
.register();
public static final BlockEntityEntry<RebarFormWorkBlockEntity> REBAR_FORMWORK = REGISTRATE
.blockEntity("rebar_formwork", RebarFormWorkBlockEntity::new)
.renderer(() -> FormWorkRenderer::new)
.validBlocks(TFMGBlocks.REBAR_FORMWORK_BLOCK)
.register();
public static final BlockEntityEntry<FluidDepositBlockEntity> OIL_DEPOSIT = REGISTRATE
.blockEntity("oil_deposit", FluidDepositBlockEntity::new)
// .validBlocks(TFMGBlocks.OIL_DEPOSIT)

View File

@@ -1,10 +1,12 @@
package com.drmangotea.tfmg.registry;
import com.drmangotea.tfmg.base.TFMGBuilderTransformers;
import com.drmangotea.tfmg.base.TFMGMetalBarsGen;
import com.drmangotea.tfmg.base.TFMGSpriteShifts;
import com.drmangotea.tfmg.base.TFMGVanillaBlockStates;
import com.drmangotea.tfmg.blocks.concrete.formwork.FormWorkBlock;
import com.drmangotea.tfmg.blocks.concrete.formwork.FormWorkGenerator;
import com.drmangotea.tfmg.blocks.concrete.formwork.rebar.RebarFormWorkBlock;
import com.drmangotea.tfmg.blocks.decoration.TrussBlock;
import com.drmangotea.tfmg.blocks.decoration.doors.TFMGSlidingDoorBlock;
import com.drmangotea.tfmg.blocks.decoration.flywheels.TFMGFlywheelBlock;
@@ -71,6 +73,8 @@ import com.drmangotea.tfmg.blocks.tanks.SteelTankItem;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllSpriteShifts;
import com.simibubi.create.AllTags;
import com.simibubi.create.Create;
import com.simibubi.create.content.decoration.MetalLadderBlock;
import com.simibubi.create.content.decoration.MetalScaffoldingBlock;
import com.simibubi.create.content.decoration.encasing.CasingBlock;
import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour;
@@ -96,6 +100,7 @@ import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraftforge.client.model.generators.ConfiguredModel;
import net.minecraftforge.common.Tags;
import net.minecraftforge.registries.RegistryObject;
import static com.drmangotea.tfmg.CreateTFMG.REGISTRATE;
@@ -220,6 +225,23 @@ public class TFMGBlocks {
.register();
public static final BlockEntry<IronBarsBlock> BRASS_BARS = TFMGMetalBarsGen.createBars("steel", true,
() -> DataIngredient.tag(AllTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN);
public static final BlockEntry<IronBarsBlock> COPPER_BARS = TFMGMetalBarsGen.createBars("aluminum", true,
() -> DataIngredient.tag(AllTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_WHITE);
public static final BlockEntry<MetalLadderBlock> STEEL_LADDER =
REGISTRATE.block("steel_ladder", MetalLadderBlock::new)
.transform(BuilderTransformers.ladder("steel",
() -> DataIngredient.tag(AllTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN))
.register();
public static final BlockEntry<MetalLadderBlock> ALUMINUM_LADDER =
REGISTRATE.block("aluminum_ladder", MetalLadderBlock::new)
.transform(BuilderTransformers.ladder("aluminum",
() -> DataIngredient.tag(AllTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_WHITE))
.register();
public static final BlockEntry<TFMGFlywheelBlock> STEEL_FLYWHEEL = REGISTRATE.block("steel_flywheel", TFMGFlywheelBlock::new)
.initialProperties(SharedProperties::softMetal)
@@ -253,8 +275,22 @@ public class TFMGBlocks {
.register();
public static final BlockEntry<SlabBlock> FACTORY_FLOOR = withVariants("factory_floor",Blocks.STONE,
MaterialColor.COLOR_GRAY,"Factory Floor",BlockTags.NEEDS_STONE_TOOL,SoundType.NETHERITE_BLOCK,false);
public static final BlockEntry<Block> FACTORY_FLOOR = withVariants("factory_floor",Blocks.STONE,
MaterialColor.COLOR_GRAY,"Factory Floor",BlockTags.NEEDS_STONE_TOOL,SoundType.NETHERITE_BLOCK,5,false);
public static final BlockEntry<SlabBlock> FACTORY_FLOOR_SLAB = REGISTRATE.block("factory_floor_slab", SlabBlock::new)
.initialProperties(() -> Blocks.STONE)
.properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY))
.properties(p -> p.requiresCorrectToolForDrops())
.properties(p -> p.strength(5,5))
.transform(pickaxeOnly())
.blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "factory_floor"))
.tag(BlockTags.NEEDS_STONE_TOOL)
.tag(BlockTags.WALLS)
.item()
.transform(customItemModel("factory_floor_bottom"))
.lang("Factory Floor Slab")
.register();
//-----------------------MACHINES---------------------------//
public static final BlockEntry<FormWorkBlock> FORMWORK_BLOCK =
@@ -269,6 +305,18 @@ public class TFMGBlocks {
.build()
.register();
public static final BlockEntry<RebarFormWorkBlock> REBAR_FORMWORK_BLOCK =
REGISTRATE.block("rebar_formwork_block", RebarFormWorkBlock::new)
.initialProperties(Material.WOOD)
.properties(p -> p.color(MaterialColor.WOOD))
.properties(p -> p.requiresCorrectToolForDrops())
.properties(BlockBehaviour.Properties::noOcclusion)
.blockstate(new FormWorkGenerator()::generate)
.transform(axeOnly())
.item()
.build()
.register();
public static final BlockEntry<ExhaustBlock> EXHAUST =
REGISTRATE.block("exhaust", ExhaustBlock::new)
@@ -1182,6 +1230,26 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
.register();
public static final BlockEntry<Block> REBAR_CONCRETE = withVariants("rebar_concrete",Blocks.STONE,
MaterialColor.COLOR_GRAY,"Rebar Concrete",BlockTags.NEEDS_DIAMOND_TOOL,SoundType.STONE,40,true);
public static final BlockEntry<SlabBlock> REBAR_CONCRETE_SLAB = REGISTRATE.block("rebar_concrete_slab", SlabBlock::new)
.initialProperties(() -> Blocks.STONE)
.properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY))
.properties(p -> p.requiresCorrectToolForDrops())
.properties(p -> p.strength(40,40))
.transform(pickaxeOnly())
.blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "rebar_concrete"))
.tag(BlockTags.NEEDS_STONE_TOOL)
.tag(BlockTags.WALLS)
.item()
.transform(customItemModel("rebar_concrete_bottom"))
.lang("Rebar Concrete Slab")
.register();
public static BlockEntry<Block> generateConcrete(){
@@ -1316,14 +1384,19 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
}
}
public static BlockEntry<SlabBlock> withVariants(String name, Block properties, MaterialColor color,
String displayName, TagKey<Block> toolRequired,SoundType sound, boolean wall){
public static BlockEntry<Block> withVariants(String name, Block properties, MaterialColor color,
String displayName, TagKey<Block> toolRequired,SoundType sound,int strenght, boolean wall){
if(wall)
REGISTRATE.block(name+"_wall", WallBlock::new)
.initialProperties(() -> properties)
.properties(p -> p.color(color))
.properties(p -> p.sound(sound))
.properties(p -> p.strength(strenght,strenght))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.blockstate((c, p) -> TFMGVanillaBlockStates.generateWallBlockState(c, p, name))
@@ -1339,6 +1412,7 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
.initialProperties(() -> properties)
.properties(p -> p.color(color))
.properties(p -> p.sound(sound))
.properties(p -> p.strength(strenght,strenght))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.blockstate((c, p) -> TFMGVanillaBlockStates.generateStairBlockState(c, p, name))
@@ -1356,10 +1430,11 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
//
REGISTRATE.block(name, Block::new)
return REGISTRATE.block(name, Block::new)
.initialProperties(() -> properties)
.properties(p -> p.color(color))
.properties(p -> p.sound(sound))
.properties(p -> p.strength(strenght,strenght))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.blockstate(simpleCubeAll(name))
@@ -1369,19 +1444,20 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
.lang(displayName)
.register();
return REGISTRATE.block(name+"_slab", SlabBlock::new)
.initialProperties(() -> properties)
.properties(p -> p.color(color))
.properties(p -> p.sound(sound))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, name))
.tag(toolRequired)
.tag(BlockTags.WALLS)
.item()
.transform(customItemModel(name+"_bottom"))
.lang(displayName+" Slab")
.register();
//return REGISTRATE.block(name+"_slab", SlabBlock::new)
// .initialProperties(() -> properties)
// .properties(p -> p.color(color))
// .properties(p -> p.sound(sound))
// .properties(p -> p.strength(strenght,strenght))
// .properties(p -> p.requiresCorrectToolForDrops())
// .transform(pickaxeOnly())
// .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, name))
// .tag(toolRequired)
// .tag(BlockTags.WALLS)
// .item()
// .transform(customItemModel(name+"_bottom"))
// .lang(displayName+" Slab")
// .register();
}

View File

@@ -16,6 +16,8 @@ import net.minecraftforge.api.distmarker.OnlyIn;
public enum TFMGGuiTextures implements ScreenElement {
// JEI
DISTILLATION_TOWER_TOP("distillation_tower", 0, 0, 44, 12),
DISTILLATION_TOWER_MIDDLE("distillation_tower", 0, 12, 44, 24),

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/bars/cap",
"textures": {
"bars": "tfmg:block/bars/aluminum_bars",
"edge": "tfmg:block/bars/aluminum_bars_edge",
"particle": "tfmg:block/bars/aluminum_bars"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/bars/cap_alt",
"textures": {
"bars": "tfmg:block/bars/aluminum_bars",
"edge": "tfmg:block/bars/aluminum_bars_edge",
"particle": "tfmg:block/bars/aluminum_bars"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/bars/post",
"textures": {
"bars": "tfmg:block/bars/steel_bars",
"edge": "tfmg:block/bars/steel_bars_edge",
"particle": "tfmg:block/bars/steel_bars"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/bars/post_ends",
"textures": {
"bars": "tfmg:block/bars/steel_bars",
"edge": "tfmg:block/bars/steel_bars_edge",
"particle": "tfmg:block/bars/steel_bars"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/bars/side",
"textures": {
"bars": "tfmg:block/bars/aluminum_bars",
"edge": "tfmg:block/bars/aluminum_bars_edge",
"particle": "tfmg:block/bars/aluminum_bars"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/bars/side_alt",
"textures": {
"bars": "tfmg:block/bars/aluminum_bars",
"edge": "tfmg:block/bars/aluminum_bars_edge",
"particle": "tfmg:block/bars/aluminum_bars"
}
}

View File

@@ -0,0 +1,8 @@
{
"parent": "create:block/ladder",
"textures": {
"0": "tfmg:block/ladder_aluminum_hoop",
"1": "tfmg:block/ladder_aluminum",
"particle": "tfmg:block/ladder_aluminum"
}
}

View File

@@ -0,0 +1,62 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"inside": "create:block/scaffold/brass_scaffold_inside",
"particle": "create:block/scaffold/brass_scaffold",
"side": "create:block/scaffold/brass_scaffold",
"top": "create:block/funnel/brass_funnel_frame"
},
"elements": [
{
"name": "outside_nocull",
"from": [0, 0, 0],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "down"},
"east": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "down"},
"south": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "down"},
"west": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "down"},
"up": {"uv": [0, 0, 16, 16], "texture": "#top"}
}
},
{
"name": "outside",
"from": [0, 0, 0],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "north"},
"east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"},
"south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"},
"west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"},
"up": {"uv": [0, 0, 16, 16], "texture": "#top"}
}
},
{
"name": "inner_top",
"from": [0, 15.9, 0],
"to": [16, 16, 16],
"faces": {
"down": {"uv": [0, 0, 16, 16], "texture": "#top"}
}
},
{
"name": "inside",
"from": [0.05, 0, 16],
"to": [15.95, 16, 0],
"faces": {
"east": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "east"},
"west": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "west"}
}
},
{
"name": "inside",
"from": [0, 0, 15.95],
"to": [16, 16, 0.05],
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "south"},
"south": {"uv": [0, 0, 16, 16], "texture": "#inside", "cullface": "north"}
}
}
]
}

View File

@@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/formwork_bottom",
"particle": "tfmg:block/formwork_bottom"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 1, 16],
"faces": {
"north": {"uv": [0, 0, 16, 1], "texture": "#0"},
"east": {"uv": [0, 0, 16, 1], "texture": "#0"},
"south": {"uv": [0, 0, 16, 1], "texture": "#0"},
"west": {"uv": [0, 0, 16, 1], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/formwork_side",
"particle": "tfmg:block/formwork_side"
},
"elements": [
{
"from": [0, 0, -0.1],
"to": [16, 16.001, 0.9],
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#0"},
"east": {"uv": [0, 0, 1, 16], "texture": "#0"},
"south": {"uv": [0, 0, 16, 16], "texture": "#0"},
"west": {"uv": [0, 0, 1, 16], "texture": "#0"},
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
"down": {"uv": [0, 0, 16, 1], "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/formwork_bottom",
"particle": "tfmg:block/formwork_bottom"
},
"elements": [
{
"from": [1, 0, 1],
"to": [15, 1, 15],
"faces": {
"north": {"uv": [0, 0, 14, 1], "texture": "#0"},
"east": {"uv": [0, 0, 14, 1], "texture": "#0"},
"south": {"uv": [0, 0, 14, 1], "texture": "#0"},
"west": {"uv": [0, 0, 14, 1], "texture": "#0"},
"up": {"uv": [1, 1, 15, 15], "texture": "#0"},
"down": {"uv": [0, 0, 14, 14], "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,75 @@
{
"credit": "Made with Blockbench",
"parent": "minecraft:block/block",
"textures": {
"0": "tfmg:block/formwork_bottom",
"1": "tfmg:block/formwork_side",
"particle": "tfmg:block/formwork_bottom"
},
"elements": [
{
"from": [1, 1, 0],
"to": [16, 16, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0, 0, 15, 15], "texture": "#1"},
"east": {"uv": [0, 0, 1, 15], "texture": "#1"},
"south": {"uv": [0, 0, 15, 15], "texture": "#1"},
"west": {"uv": [0, 0, 1, 15], "texture": "#1"},
"up": {"uv": [0, 0, 15, 1], "texture": "#1"},
"down": {"uv": [0, 0, 15, 1], "texture": "#1"}
}
},
{
"from": [0, 1, 0],
"to": [1, 16, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0, 0, 1, 15], "texture": "#1"},
"east": {"uv": [0, 0, 15, 15], "texture": "#1"},
"south": {"uv": [0, 0, 1, 15], "texture": "#1"},
"west": {"uv": [0, 0, 15, 15], "texture": "#1"},
"up": {"uv": [0, 0, 15, 1], "rotation": 270, "texture": "#1"},
"down": {"uv": [0, 0, 15, 1], "rotation": 90, "texture": "#1"}
}
},
{
"from": [0, 1, 15],
"to": [15, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0, 0, 15, 15], "texture": "#1"},
"east": {"uv": [0, 0, 1, 15], "texture": "#1"},
"south": {"uv": [0, 0, 15, 15], "texture": "#1"},
"west": {"uv": [0, 0, 1, 15], "texture": "#1"},
"up": {"uv": [0, 0, 15, 1], "rotation": 180, "texture": "#1"},
"down": {"uv": [0, 0, 15, 1], "rotation": 180, "texture": "#1"}
}
},
{
"from": [15, 1, 1],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [0, 0, 1, 15], "texture": "#1"},
"east": {"uv": [0, 0, 15, 15], "texture": "#1"},
"south": {"uv": [0, 0, 1, 15], "texture": "#1"},
"west": {"uv": [0, 0, 15, 15], "texture": "#1"},
"up": {"uv": [0, 0, 15, 1], "rotation": 90, "texture": "#1"},
"down": {"uv": [0, 0, 15, 1], "rotation": 270, "texture": "#1"}
}
},
{
"from": [0, 0, 0],
"to": [16, 1, 16],
"faces": {
"north": {"uv": [0, 0, 16, 1], "texture": "#0"},
"east": {"uv": [0, 0, 16, 1], "texture": "#0"},
"south": {"uv": [0, 0, 16, 1], "texture": "#0"},
"west": {"uv": [0, 0, 16, 1], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,7 @@
{
"parent": "create:item/bars",
"textures": {
"bars": "tfmg:block/bars/steel_bars",
"edge": "tfmg:block/bars/steel_bars_edge"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 360 B