bars, rebar formwork, ladders
This commit is contained in:
145
src/main/java/com/drmangotea/tfmg/base/TFMGMetalBarsGen.java
Normal file
145
src/main/java/com/drmangotea/tfmg/base/TFMGMetalBarsGen.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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()));
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
8
src/main/resources/assets/tfmg/models/block/ladder.json
Normal file
8
src/main/resources/assets/tfmg/models/block/ladder.json
Normal 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"
|
||||
}
|
||||
}
|
||||
@@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
7
src/main/resources/assets/tfmg/models/item/bars.json
Normal file
7
src/main/resources/assets/tfmg/models/item/bars.json
Normal 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 |
Reference in New Issue
Block a user