This commit is contained in:
DrMangoTea
2025-06-02 17:51:00 +02:00
parent 8b566a64f5
commit e2abb9b7f5
96 changed files with 21396 additions and 19451 deletions

View File

@@ -68,12 +68,14 @@ public class TFMG {
TFMGPaletteBlocks.init();
TFMGParticleTypes.register(modEventBus);
TFMGCreativeTabs.register(modEventBus);
TFMGMobEffects.register(modEventBus);
TFMGRecipeTypes.register(modEventBus);
TFMGColoredFires.register(modEventBus);
TFMGFeatures.register(modEventBus);
TFMGMountedStorageTypes.register();
modEventBus.addListener(TFMG::onRegister);
TFMGPackets.registerPackets();

View File

@@ -1,5 +1,6 @@
package com.drmangotea.tfmg.content.decoration;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -11,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.material.FluidState;
public class FrameBlock extends Block implements ProperWaterloggedBlock {
public class FrameBlock extends Block implements ProperWaterloggedBlock, IWrenchable {

View File

@@ -1,5 +1,6 @@
package com.drmangotea.tfmg.content.decoration;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@@ -17,7 +18,7 @@ import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.material.Fluids;
public class TrussBlock extends RotatedPillarBlock implements ProperWaterloggedBlock {
public class TrussBlock extends RotatedPillarBlock implements ProperWaterloggedBlock, IWrenchable {

View File

@@ -40,7 +40,6 @@ public class ElectricalNetwork {
int maxVoltage = 0;
int power = 0;
int frequency = 0;
int resistance = 0;
int powerGeneration = 0;
@@ -53,7 +52,6 @@ public class ElectricalNetwork {
maxVoltage = Math.max(member.voltageGeneration(), maxVoltage);
power += member.powerGeneration();
frequency = frequency == 0 ? member.frequencyGeneration() : (frequency + member.frequencyGeneration()) / 2;
resistance += (int) member.resistance();
powerGeneration += member.powerGeneration();
if (member.canBeInGroups())
@@ -75,7 +73,6 @@ public class ElectricalNetwork {
member.getData().setVoltageNextTick = true;
member.getData().networkPowerGeneration = powerGeneration;
member.setFrequency(frequency);
member.setNetworkResistance(resistance);
member.onNetworkChanged(oldVoltage, oldPower);

View File

@@ -17,6 +17,7 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.network.PacketDistributor;
import java.util.ArrayList;
import java.util.List;
public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity implements IElectric, IHaveGoggleInformation, IHaveHoveringInformation {
@@ -30,21 +31,19 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
public KineticElectricBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
data.connectNextTick = true;
if (!canBeInGroups()) {
data.group = new ElectricalGroup(-1);
}
}
//@Override
//public boolean addToTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
// CreateLang.text("MAX POWER: "+getNetworkPowerGeneration()).forGoggles(tooltip);
// return makeElectricityTooltip(tooltip, isPlayerSneaking);
//}
@Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
}
@Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
@Override
public LevelAccessor getLevelAccessor(){
public LevelAccessor getLevelAccessor() {
return level;
}
@@ -55,7 +54,7 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
@Override
public ElectricalNetwork getOrCreateElectricNetwork() {
if(level.getBlockEntity(BlockPos.of(data.electricalNetworkId)) instanceof IElectric) {
if (level.getBlockEntity(BlockPos.of(data.electricalNetworkId)) instanceof IElectric) {
return TFMG.NETWORK_MANAGER.getOrCreateNetworkFor((IElectric) level.getBlockEntity(BlockPos.of(data.electricalNetworkId)));
} else {
ElectricNetworkManager.networks.get(getLevel())
@@ -64,6 +63,18 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
}
}
@Override
public void lazyTick() {
super.lazyTick();
if (data.failTimer >= 4) {
this.blockFail();
data.failTimer = 0;
sendStuff();
} else if ((data.voltage > getMaxVoltage() && getMaxVoltage() > 0) || (getCurrent() > getMaxCurrent()&&getMaxCurrent()>0)) {
data.failTimer++;
}
}
@Override
public ElectricBlockValues getData() {
return data;
@@ -82,20 +93,20 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
int voltageGeneration = 0;
for(Direction direction : Direction.values()){
if(hasElectricitySlot(direction)){
for (Direction direction : Direction.values()) {
if (hasElectricitySlot(direction)) {
if(level.getBlockEntity(getBlockPos().relative(direction)) instanceof VoltageAlteringBlockEntity be)
if(be.getData().getId() !=getData().getId())
if(be.getData().getVoltage()!=0)
if(be.hasElectricitySlot(direction)){
voltageGeneration = Math.max(voltageGeneration,be.getOutputVoltage());
if (level.getBlockEntity(getBlockPos().relative(direction)) instanceof VoltageAlteringBlockEntity be)
if (be.getData().getId() != getData().getId())
if (be.getData().getVoltage() != 0)
if (be.hasElectricitySlot(direction)) {
voltageGeneration = Math.max(voltageGeneration, be.getOutputVoltage());
data.getsOutsidePower = true;
}
}
}
if(voltageGeneration == 0)
if (voltageGeneration == 0)
data.getsOutsidePower = false;
return voltageGeneration;
@@ -108,15 +119,21 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
int powerGeneration = 0;
for(Direction direction : Direction.values()){
if(hasElectricitySlot(direction)){
for (Direction direction : Direction.values()) {
if (hasElectricitySlot(direction)) {
if(level.getBlockEntity(getBlockPos().relative(direction)) instanceof VoltageAlteringBlockEntity be)
if(be.getData().getId() !=getData().getId())
if(be.getData().getVoltage()!=0)
if(be.hasElectricitySlot(direction)){
powerGeneration = Math.max(powerGeneration,be.getOutputPower())+10;
if (level.getBlockEntity(getBlockPos().relative(direction)) instanceof VoltageAlteringBlockEntity be&&be.canWork()) {
if (be.getData().getId() != getData().getId())
if (be.getData().getVoltage() != 0)
if (be.hasElectricitySlot(direction)) {
powerGeneration = Math.max(powerGeneration, be.getPowerUsage()) + 1;
if(powerGeneration>be.getNetworkPowerGeneration()) {
powerGeneration = 0;
be.data.updatePowerNextTick=true;
}
}
}
}
}
@@ -128,7 +145,6 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
return 0;
}
@Override
public void updateNextTick() {
data.updateNextTick = true;
@@ -137,7 +153,7 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
@Override
public void updateNetwork() {
getOrCreateElectricNetwork().updateNetwork();
if(!level.isClientSide)
if (!level.isClientSide)
TFMGPackets.getChannel().send(PacketDistributor.ALL.noArg(), new NetworkUpdatePacket(BlockPos.of(getPos())));
sendData();
}
@@ -150,8 +166,12 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
@Override
public void setVoltage(int newVoltage) {
if(canBeInGroups()){
data.voltage = (int) (((float)resistance()/data.group.resistance)*(float)data.voltageSupply);
//if(this instanceof LightBulbBlockEntity be&&be.color == DyeColor.WHITE){
// TFMG.LOGGER.debug("Rezistancja Grup "+data.group.resistance);
//}
if (canBeInGroups()) {
data.voltage = (int) (((float) resistance() / data.group.resistance) * (float) data.voltageSupply);
return;
}
data.voltage = newVoltage;
@@ -173,15 +193,19 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
}
@Override
public void setNetwork(long network) {
this.data.electricalNetworkId = network;
if(network!=getPos())
if (network != getPos())
ElectricNetworkManager.networks.get(getLevel())
.remove(getPos());
}
public boolean networkUndersupplied() {
return getNetworkPowerUsage() > data.networkPowerGeneration;
}
@Override
public long getPos() {
return getBlockPos().asLong();
@@ -190,6 +214,7 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
@Override
public void remove() {
super.remove();
this.data.destroyed = true;
for (Direction d : Direction.values()) {
if (hasElectricitySlot(d))
@@ -197,41 +222,51 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
ElectricNetworkManager.networks.get(getLevel())
.remove(be.getPos());
be.setNetwork(be.getPos());
be.getData().connectNextTick = true;
be.onPlaced();
be.updateNextTick();
}
}
if (data.electricalNetworkId != getPos())
getOrCreateElectricNetwork().getMembers().remove(this);
//
if (data.electricalNetworkId == getPos())
ElectricNetworkManager.networks.get(getLevel())
.remove(getData().getId());
}
@Override
public void lazyTick() {
super.lazyTick();
public void tick() {
super.tick();
if (data.checkForLoopsNextTick) {
getOrCreateElectricNetwork().checkForLoops(getBlockPos());
data.checkForLoopsNextTick = false;
}
if (data.connectNextTick) {
onPlaced();
data.connectNextTick = false;
}
if (data.updateNextTick) {
updateNetwork();
data.updateNextTick = false;
}
if(data.failTimer >=4){
this.blockFail();
data.failTimer = 0;
sendStuff();
if (data.updatePowerNextTick) {
updateUnpowered(new ArrayList<>());
data.updatePowerNextTick = false;
}
if((data.voltage>getMaxVoltage()&&getMaxVoltage()>0)||(getCurrent()>getMaxCurrent()&&getMaxCurrent()>0)){
data.failTimer++;
if (data.setVoltageNextTick) {
setVoltage(data.voltageSupply);
data.setVoltageNextTick = false;
}
}
@Override
protected void write(CompoundTag compound, boolean clientPacket) {
super.write(compound, clientPacket);
compound.putInt("GroupId", data.group.id);
compound.putFloat("GroupResistance", data.group.resistance);
compound.putFloat("MotorSpeed", getSpeed());
}
@Override
@@ -239,14 +274,11 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
super.read(compound, clientPacket);
data.group = new ElectricalGroup(compound.getInt("GroupId"));
data.group.resistance = compound.getFloat("GroupResistance");
setSpeed(compound.getFloat("MotorSpeed"));
if(!clientPacket)
if (!clientPacket)
data.connectNextTick = true;
}
@Override
public void onSpeedChanged(float previousSpeed) {
super.onSpeedChanged(previousSpeed);

View File

@@ -3,6 +3,7 @@ package com.drmangotea.tfmg.content.electricity.connection.cable_hub;
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
import com.drmangotea.tfmg.content.electricity.base.IElectric;
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.foundation.block.IBE;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;
@@ -10,7 +11,7 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
public class CableHubBlock extends Block implements IBE<CableHubBlockEntity> {
public class CableHubBlock extends Block implements IBE<CableHubBlockEntity>, IWrenchable {
public CableHubBlock(Properties p_49795_) {
super(p_49795_);
}

View File

@@ -239,7 +239,7 @@ public class CableConnectorBlockEntity extends ElectricBlockEntity implements IH
@Override
public AABB getRenderBoundingBox() {
return new AABB(getBlockPos()).inflate(10);
return new AABB(getBlockPos()).inflate(32);
}
}

View File

@@ -38,17 +38,17 @@ public class GeneratorBlockEntity extends KineticElectricBlockEntity {
public void updateNetwork() {
super.updateNetwork();
}
@Override
public float calculateStressApplied() {
if(getData().voltageSupply == 0)
return super.calculateStressApplied();
if(getNetworkResistance() ==0)
return super.calculateStressApplied();
return (int)(Math.min(super.calculateStressApplied()+(getGeneratorLoad() * 0.01f), 1000));
}
//
// @Override
// public float calculateStressApplied() {
// if(getData().voltageSupply == 0)
// return super.calculateStressApplied();
//
// if(getNetworkResistance() ==0)
// return super.calculateStressApplied();
//
// return (int)(Math.min(super.calculateStressApplied()+(getGeneratorLoad() * 0.01f), 1000));
// }
@Override
public void onSpeedChanged(float previousSpeed) {

View File

@@ -90,7 +90,7 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
@Override
public int powerGeneration() {
return generation() * 40;
return (int) (generation() * 40*1.84563);
}
public void findStators() {

View File

@@ -37,7 +37,7 @@ public class ElectricMotorBlockEntity extends KineticElectricBlockEntity {
public ElectricMotorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
updateGeneratedRotation();
}
@Override

View File

@@ -0,0 +1,14 @@
package com.drmangotea.tfmg.content.electricity.utilities.polarizer;
import net.minecraft.world.item.Item;
public class MagnetItem extends Item {
public MagnetItem(Properties p_41383_) {
super(p_41383_);
}
@Override
public boolean isFireResistant() {
return true;
}
}

View File

@@ -66,7 +66,7 @@ public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGo
if (getRecipe(itemStack).isPresent()) {
TFMGUtils.debugMessage(level, "AMOGUS SIGMA");
chargeCapacitors = true;
updateNextTick();
@@ -81,6 +81,8 @@ public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGo
}
@Override
public float resistance() {
return chargeCapacitors ? 30 : 0;
@@ -90,6 +92,13 @@ public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGo
@Override
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
if(getPowerUsage()<2000&&!inventory.isEmpty()){
CreateLang.translate("goggles.polarizer.insufficient_power")
.style(ChatFormatting.GRAY)
.forGoggles(tooltip, 1);
return true;
}
CreateLang.translate("goggles.polarizer.header")
.style(ChatFormatting.GRAY)
.forGoggles(tooltip, 1);
@@ -104,7 +113,7 @@ public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGo
@Override
public boolean canBeInGroups() {
return true;
return false;
}
@Override
@@ -118,7 +127,7 @@ public class PolarizerBlockEntity extends ElectricBlockEntity implements IHaveGo
}
if (getPowerUsage() > 2000) {
if (getPowerUsage() >= 2000) {
if (chargeCapacitors) {
if (capacitorPercentage < 200) {
capacitorPercentage++;

View File

@@ -125,7 +125,7 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
CreateLang.text("----------------------------")
.style(ChatFormatting.WHITE)
.forGoggles(tooltip);
CreateLang.translate("multimeter.transformer_ration")
CreateLang.translate("multimeter.transformer_ratio")
.add(CreateLang.number(coilRatio))
.color(0xc6e82c)
.forGoggles(tooltip, 1);

View File

@@ -99,7 +99,7 @@ public class FireboxBlockEntity extends SmartBlockEntity implements IHaveGoggleI
if (!wasRunning)
level.setBlock(getBlockPos(), getBlockState().setValue(FireboxBlock.HEAT_LEVEL, BlazeBurnerBlock.HeatLevel.FADING), 2);
running = true;
TFMGUtils.drainFilteredTank((SmartFluidTank) controller.tankInventory, 100);
TFMGUtils.drainFilteredTank((SmartFluidTank) controller.tankInventory, 50);
if (TFMGConfigs.common().machines.fireboxExhaustRequirement.get()) {
TFMGUtils.fillFilteredTank((SmartFluidTank) controller.exhuastTank, new FluidStack(TFMGFluids.CARBON_DIOXIDE.getSource(), 500));
}

View File

@@ -1,5 +1,6 @@
package com.drmangotea.tfmg.content.machinery.misc.winding_machine;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.base.TFMGUtils;
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection;
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
@@ -123,9 +124,10 @@ public class SpoolItem extends Item {
float wireCost = (connection1.getLength()/8);
if(stack.getOrCreateTag().getInt("Amount")<wireCost)
return InteractionResult.PASS;
if(stack.getOrCreateTag().getInt("Amount")<wireCost*125) {
return InteractionResult.PASS;
}
if(be.connections.contains(connection1)||otherBE.connections.contains(connection1)){
if (level.isClientSide)
player.displayClientMessage(CreateLang.translateDirect("wires.connection_already_created")
@@ -135,11 +137,12 @@ public class SpoolItem extends Item {
be.setChanged();
return InteractionResult.SUCCESS;
}
if(!level.isClientSide) {
// if(!level.isClientSide) {
be.connections.add(connection1);
otherBE.connections.add(connection2);
be.onPlaced();
}
// otherBE.onPlaced();
//}
// connectedBe1.wiresUpdated();
stack.getOrCreateTag().putInt("Amount", (int) (stack.getOrCreateTag().getInt("Amount")-(wireCost*125)));

View File

@@ -33,7 +33,7 @@ public class DistillationControllerRenderer extends SafeBlockEntityRenderer<Dist
ms.pushPose();
CachedBuffers.partial(TFMGPartialModels.DISTILLATION_CONTROLLER_DIAL,blockState)
.center()
.rotateY(blockState.getValue(FACING).getAxis() == Direction.Axis.Z ? Math.abs(blockState.getValue(FACING).toYRot() - 180) : blockState.getValue(FACING).toYRot())
.rotateYDegrees(blockState.getValue(FACING).getAxis() == Direction.Axis.Z ? Math.abs(blockState.getValue(FACING).toYRot() - 180) : blockState.getValue(FACING).toYRot())
.translateY(0.01f)
.rotateZDegrees(be.angle.getValue(partialTicks))
.translateX(0.09f)

View File

@@ -133,6 +133,7 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo
if (tank.getFluidAmount() + miningRate > tank.getCapacity())
return;
int amountPumped = tank.fill(new FluidStack(TFMGFluids.CRUDE_OIL.getSource(), miningRate), IFluidHandler.FluidAction.EXECUTE);
sendData();
if (amountPumped == 0)
return;

View File

@@ -160,9 +160,13 @@ public class VatBlockEntity extends SmartBlockEntity implements IHaveGoggleInfor
int tankNumber = 0;
for (int i = 0; i < 8; i++) {
IFluidHandler fluidHandler = this.getCapability(ForgeCapabilities.FLUID_HANDLER).orElse(null);
fluidLevel[i].chase((double) (fluidHandler.getFluidInTank(tankNumber).getAmount()) / inputTank.getPrimaryHandler().getCapacity(), .5f, LerpedFloat.Chaser.EXP);
getFillState();
tankNumber++;
if(fluidHandler != null) {
fluidLevel[i].chase((double) (fluidHandler.getFluidInTank(tankNumber).getAmount()) / inputTank.getPrimaryHandler().getCapacity(), .5f, LerpedFloat.Chaser.EXP);
getFillState();
tankNumber++;
}
}
}
}

View File

@@ -7,15 +7,19 @@ import com.drmangotea.tfmg.content.machinery.vat.base.VatBlock;
import com.drmangotea.tfmg.content.machinery.vat.base.VatBlockEntity;
import com.drmangotea.tfmg.registry.TFMGItems;
import com.drmangotea.tfmg.registry.TFMGPartialModels;
import com.simibubi.create.foundation.utility.CreateLang;
import dev.engine_room.flywheel.lib.model.baked.PartialModel;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import java.util.List;
import java.util.Objects;
public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements IVatMachine {
@@ -48,14 +52,26 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
return false;
}
@Override
public boolean makeMultimeterTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
super.makeMultimeterTooltip(tooltip, isPlayerSneaking);
if (getCurrent() < TFMGConfigs.common().machines.electrolysisMinimumCurrent.get())
CreateLang.translate("goggles.electrode_holder.min_amps")
.style(ChatFormatting.RED)
.add(CreateLang.text(TFMGConfigs.common().machines.electrolysisMinimumCurrent.get() + "A)"))
.forGoggles(tooltip);
return true;
}
@Override
public float resistance() {
if (electrodeType != ElectrodeType.NONE) {
if(electrodeType == ElectrodeType.GRAPHITE) {
if (electrodeType == ElectrodeType.GRAPHITE) {
return 300;
}else return 100;
} else return 100;
}
return 0;
@@ -87,9 +103,8 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
}
boolean isOperational() {
return getCurrent() >= TFMGConfigs.common().machines.electrolysisMinimumCurrent.get()&&canWork();
return getCurrent() >= TFMGConfigs.common().machines.electrolysisMinimumCurrent.get() && canWork();
}
@Override
@@ -119,7 +134,6 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
public String getOperationId() {
return switch (electrodeType) {
case NONE -> "";

View File

@@ -40,6 +40,7 @@ import net.minecraftforge.common.crafting.CraftingHelper;
import net.minecraftforge.common.crafting.conditions.ICondition;
import net.minecraftforge.common.crafting.conditions.ModLoadedCondition;
import net.minecraftforge.common.crafting.conditions.NotCondition;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.ArrayList;
import java.util.HashMap;
@@ -335,7 +336,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("PIP")
.pattern(" ")),
STEEL_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.STEEL).get(0)).withSuffix("_vertical")
STEEL_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.STEEL).get(0)).withSuffix("_vertical").returns(4)
.unlockedBy(TFMGItems.STEEL_INGOT::get)
.viaShaped(b -> b
.define('I', steelIngot())
@@ -375,7 +376,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("PIP")
.pattern(" ")),
ALUMINUM_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.ALUMINUM).get(0)).withSuffix("_vertical")
ALUMINUM_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.ALUMINUM).get(0)).withSuffix("_vertical").returns(4)
.unlockedBy(TFMGItems.ALUMINUM_INGOT::get)
.viaShaped(b -> b
.define('I', aluminumIngot())
@@ -414,7 +415,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("III")
.pattern(" ")),
PLASTIC_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.PLASTIC).get(0)).withSuffix("_vertical")
PLASTIC_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.PLASTIC).get(0)).withSuffix("_vertical").returns(4)
.unlockedBy(TFMGItems.PLASTIC_SHEET::get)
.viaShaped(b -> b
.define('I', plasticSheet())
@@ -453,7 +454,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("PIP")
.pattern(" ")),
BRASS_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.BRASS).get(0)).withSuffix("_vertical")
BRASS_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.BRASS).get(0)).withSuffix("_vertical").returns(4)
.unlockedBy(AllItems.BRASS_INGOT::get)
.viaShaped(b -> b
.define('I', brassIngot())
@@ -493,7 +494,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("PIP")
.pattern(" ")),
CAST_IRON_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.CAST_IRON).get(0)).withSuffix("_vertical")
CAST_IRON_PIPE_VERTICAL = create(TFMGPipes.TFMG_PIPES.get(TFMGPipes.PipeMaterial.CAST_IRON).get(0)).withSuffix("_vertical").returns(4)
.unlockedBy(TFMGItems.CAST_IRON_INGOT::get)
.viaShaped(b -> b
.define('I', castIronIngot())
@@ -597,7 +598,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("NNN")
.pattern("PPP")),
STEEL_VAT = create(TFMGBlocks.STEEL_CHEMICAL_VAT)
STEEL_VAT = create(TFMGBlocks.STEEL_CHEMICAL_VAT).returns(2)
.unlockedBy(TFMGItems.STEEL_INGOT::get)
.viaShaped(b -> b
.define('T', steelTank())
@@ -629,6 +630,15 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("NTN")
.pattern("PHP")),
UNFINISHED_ELECTROMAGNETIC_COIL = create(TFMGItems.UNFINISHED_ELECTROMAGNETIC_COIL).returns(2)
.unlockedBy(TFMGItems.STEEL_INGOT::get)
.viaShaped(b -> b
.define('M', magneticIngot())
.define('N', steelNugget())
.pattern(" N ")
.pattern(" M ")
.pattern(" N ")),
RAW_LEAD_BLOCK = create(TFMGBlocks.RAW_LEAD_BLOCK)
.unlockedBy(TFMGItems.RAW_LEAD::get)
.viaShaped(b -> b
@@ -653,7 +663,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("BBB")
.pattern("BBB")),
AIR_INTAKE = create(TFMGBlocks.AIR_INTAKE)
AIR_INTAKE = create(TFMGBlocks.AIR_INTAKE).returns(3)
.unlockedBy(AllItems.PROPELLER::get)
.viaShaped(b -> b
.define('B', AllBlocks.ANDESITE_BARS)
@@ -755,7 +765,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.viaShaped(b -> b
.define('C', copperNugget())
.define('W', framedGlass())
.define('N', TFMGFluids.NEON.getBucket().get())
.define('N', ForgeRegistries.ITEMS.getValue(TFMG.asResource("neon_bucket")))
.define('O', steelNugget())
.pattern("OCO")
.pattern("NWN")
@@ -870,7 +880,7 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.viaShaped(b -> b
.define('M', magnet())
.define('N', steelNugget())
.define('A', aluminumIngot())
.define('A', steelIngot())
.define('C', Items.COMPASS)
.pattern("NNN")
.pattern("NCN")
@@ -1687,9 +1697,10 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.viaShaped(b -> b
.define('O', heavyPlate())
.define('I', steelIngot())
.pattern(" IO")
.pattern(" IO")
.pattern(" IO")),
.define('B', fireproofBricks())
.pattern("IOB")
.pattern("IOB")
.pattern("IOB")),
FIREPROOF_BRICK_REINFORCEMENT = create(TFMGBlocks.FIREPROOF_BRICK_REINFORCEMENT).returns(6)
.unlockedBy(TFMGBlocks.FIREPROOF_BRICKS::get)

View File

@@ -16,10 +16,6 @@ public class TFMGCompactingRecipeGen extends TFMGPressingRecipeGen {
.output(bitumen(), 1)
.requiresHeat(HeatCondition.HEATED)
),
PLASTIC_SHEET = create("plastic_sheet", b -> b
.require(liquidPlastic(),200)
.output(plasticSheet(), 1)
),
CINDERFLOURBLOCK = create("cinderflourblock", b -> b
.require(cinderFlour())
.require(cinderFlour())

View File

@@ -29,6 +29,10 @@ public class TFMGCrushingRecipeGen extends TFMGProcessingRecipeGen {
LIMESAND = create(I::limestone, b -> b
.output(limesand(), 1)
),
SLAG = create(TFMGBlocks.SLAG_BLOCK::get, b -> b
.output(slag(), 2)
.output(.3f,slag())
),
COAL_COKE = create(I::coalCoke, b -> b
.output(coalCokeDust(), 1)
),

View File

@@ -37,14 +37,14 @@ public class TFMGMixingRecipeGen extends TFMGProcessingRecipeGen {
.require(sand())
.require(bitumen())
.require(gravel())
.output(concreteMixture(),16)
.output(asphaltMixture(),16)
),
ASPHALT_MIXTURE_FROM_SLAG = create("asphalt_mixture_from_slag", b -> b
.require(slag())
.require(bitumen())
.require(gravel())
.output(concreteMixture(),32)
.output(asphaltMixture(),32)
),
CONCRETE_MIXTURE = create("concrete_mixture", b -> b

View File

@@ -87,7 +87,7 @@ public class TFMGSequencedAssemblyRecipeGen extends CreateRecipeProvider {
),
MOTOR = create("motor", b -> b.require(shaft())
.transitionTo(TFMGItems.UNFINISHED_GENERATOR.get())
.transitionTo(TFMGItems.UNFINISHED_ELECTRIC_MOTOR.get())
.addOutput(TFMGBlocks.ELECTRIC_MOTOR.get(), 120)
.addOutput(TFMGBlocks.STEEL_CASING.get(), 8)
.addOutput(TFMGItems.NICKEL_SHEET.get(), 8)

View File

@@ -1,6 +1,7 @@
package com.drmangotea.tfmg.datagen.recipes.values.tfmg;
import com.drmangotea.tfmg.datagen.recipes.TFMGProcessingRecipeGen;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGFluids;
import com.drmangotea.tfmg.registry.TFMGItems;
import com.drmangotea.tfmg.registry.TFMGRecipeTypes;
@@ -15,10 +16,27 @@ public class CastingRecipeGen extends TFMGProcessingRecipeGen {
.output(TFMGItems.STEEL_INGOT)
.duration(200)),
PLASTIC_SHEET = create("plastic_sheet", b ->b
.require(TFMGFluids.MOLTEN_PLASTIC.get(),200)
.output(TFMGItems.PLASTIC_SHEET)
.duration(100)),
SLAG_BLOCK = create("slag_block", b ->b
.require(TFMGFluids.MOLTEN_SLAG.get(),20)
.output(TFMGBlocks.SLAG_BLOCK)
.duration(50)),
CINDERBLOCK = create("cinderblock", b ->b
.require(TFMGFluids.LIQUID_CONCRETE.get(),144)
.output(TFMGItems.CINDERBLOCK)
.duration(50)),
SILICON = create("silicon", b ->b
.require(TFMGFluids.LIQUID_SILICON.get(),144)
.output(TFMGItems.SILICON_INGOT)
.duration(200));
;
public CastingRecipeGen(PackOutput output) {
super(output);

View File

@@ -35,17 +35,17 @@ public class DistillationRecipeGen extends TFMGProcessingRecipeGen {
HEAVY_OIL = create("heavy_oil", b ->b
.require(heavyOil(),200)
.output(heavyOil(), 100)
.output(lubricationOil(), 25)
.output(diesel(), 50)
.output(kerosene(), 20)
.output(naphtha(), 5)
.output(lubricationOil(), 25)),
.output(naphtha(), 5)),
HEAVY_OIL_NO_NAPHTHA = create("heavy_oil_no_naphtha", b ->b
.require(heavyOil(),200)
.output(heavyOil(), 100)
.output(lubricationOil(), 30)
.output(diesel(), 50)
.output(kerosene(), 20)
.output(lubricationOil(), 30)),
.output(kerosene(), 20)),
HEAVY_OIL_LIGHT_DISTILLATION = create("heavy_oil_light_distillation", b ->b
.require(heavyOil(),200)

View File

@@ -13,10 +13,10 @@ public class HotBlastRecipeGen extends TFMGProcessingRecipeGen {
HOT_AIR = create("hot_air", b ->b
.require(air(),5)
.require(air(),25)
.require(TFMGTags.TFMGFluidTags.BLAST_STOVE_FUEL.tag,5)
.output(hotAir(), 5)
.output(carbonDioxide(), 5)
.output(hotAir(), 25)
.output(carbonDioxide(), 25)
.duration(200));
public HotBlastRecipeGen(PackOutput output) {
super(output);

View File

@@ -51,16 +51,31 @@ public class VatRecipeGen extends TFMGRecipeProvider {
.require(nitrateDust())
.output(sulfuricAcid(), 500)
,mixing()),
RUBBER = createVatRecipe("rubber", b -> (VatMachineRecipeBuilder) b
.require(heavyOil(), 250)
.require(sulfurDust())
.output(rubber())
.requiresHeat(HeatCondition.HEATED)
,mixing()),
NAPHTHA = createVatRecipe("naphtha", b -> (VatMachineRecipeBuilder) b
.require(naphtha(), 500)
.output(ethylene(), 250)
.output(propylene(), 250)
.requiresHeat(HeatCondition.HEATED)
,mixing()),
PLASTIC_FROM_ETHYLENE = createVatRecipe("plastic_from_ethylene", b -> (VatMachineRecipeBuilder) b
.require(ethylene(), 500)
.output(liquidPlastic(), 500)
.requiresHeat(HeatCondition.HEATED)
,new VatRecipeParams()),
,mixing()),
PLASTIC_FROM_PROPYLENE = createVatRecipe("plastic_from_propylene", b -> (VatMachineRecipeBuilder) b
.require(propylene(), 500)
.output(liquidPlastic(), 500)
.requiresHeat(HeatCondition.HEATED)
,new VatRecipeParams()),
,mixing()),
ETCHED_CIRCUIT_BOARD = createVatRecipe("etched_circuit_board", b -> (VatMachineRecipeBuilder) b
.require(TFMGItems.COATED_CIRCUIT_BOARD)
.require(TFMGFluids.SULFURIC_ACID.getSource(), 250)
@@ -104,12 +119,18 @@ public class VatRecipeGen extends TFMGRecipeProvider {
VatRecipeParams params = new VatRecipeParams();
params.machines.add("tfmg:electrode");
params.machines.add("tfmg:electrode");
params.allowedVatTypes = new ArrayList<>();
params.allowedVatTypes.add("tfmg:steel_vat");
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
return params;
}
public VatRecipeParams mixing() {
VatRecipeParams params = new VatRecipeParams();
params.machines.add("tfmg:mixing");
params.allowedVatTypes = new ArrayList<>();
params.allowedVatTypes.add("tfmg:steel_vat");
params.allowedVatTypes.add("tfmg:firebrick_lined_vat");
return params;
}

View File

@@ -3,6 +3,7 @@ package com.drmangotea.tfmg.recipes.jei;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.recipes.*;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGItems;
import com.drmangotea.tfmg.registry.TFMGRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.compat.jei.*;
@@ -96,6 +97,7 @@ public class TFMGJei implements IModPlugin {
casting = builder(CastingRecipe.class)
.addTypedRecipes(TFMGRecipeTypes.CASTING)
.catalyst(TFMGBlocks.CASTING_BASIN::get)
.catalyst(TFMGItems.STEEL_INGOT::get)
.itemIcon(TFMGBlocks.CASTING_BASIN.get())
.emptyBackground(177, 53)
.build("casting", CastingCategory::new),

View File

@@ -24,7 +24,7 @@ public class Polarizer extends AnimatedKinetics {
matrixStack.translate(-2.0, 18.0, 0.0);
int scale = 22;
GuiGameElement.of(TFMGBlocks.POLARIZER.getDefaultState().setValue(PolarizerBlock.FACING, Direction.NORTH)).rotateBlock(22.5, 22.5, 0.0).scale(scale).render(graphics);
GuiGameElement.of(TFMGBlocks.POLARIZER.getDefaultState().setValue(PolarizerBlock.FACING, Direction.SOUTH)).rotateBlock(22.5, 22.5, 0.0).scale(scale).render(graphics);
matrixStack.popPose();
}
}

View File

@@ -112,6 +112,7 @@ import com.drmangotea.tfmg.content.machinery.vat.base.VatBlock;
import com.drmangotea.tfmg.content.machinery.vat.base.VatGenerator;
import com.drmangotea.tfmg.content.machinery.vat.electrode_holder.ElectrodeHolderBlock;
import com.drmangotea.tfmg.content.machinery.vat.industrial_mixer.IndustrialMixerBlock;
import com.simibubi.create.AllMountedStorageTypes;
import com.simibubi.create.AllTags;
import com.simibubi.create.api.stress.BlockStressValues;
import com.simibubi.create.content.contraptions.bearing.StabilizedBearingMovementBehaviour;
@@ -122,6 +123,7 @@ import com.simibubi.create.content.decoration.encasing.CasingBlock;
import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour;
import com.simibubi.create.content.decoration.encasing.EncasingRegistry;
import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorBlock;
import com.simibubi.create.content.fluids.tank.FluidTankMovementBehavior;
import com.simibubi.create.content.kinetics.gearbox.GearboxBlock;
import com.simibubi.create.content.kinetics.motor.CreativeMotorGenerator;
import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockModel;
@@ -149,6 +151,7 @@ import static com.drmangotea.tfmg.TFMG.REGISTRATE;
import static com.drmangotea.tfmg.base.TFMGBuilderTransformers.*;
import static com.drmangotea.tfmg.content.electricity.lights.LightBulbBlock.LIGHT;
import static com.simibubi.create.api.behaviour.movement.MovementBehaviour.movementBehaviour;
import static com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType.mountedFluidStorage;
import static com.simibubi.create.foundation.data.BlockStateGen.axisBlock;
import static com.simibubi.create.foundation.data.BlockStateGen.simpleCubeAll;
import static com.simibubi.create.foundation.data.CreateRegistrate.casingConnectivity;
@@ -244,6 +247,8 @@ public class TFMGBlocks {
.properties(BlockBehaviour.Properties::noOcclusion)
.properties(p -> p.isRedstoneConductor((p1, p2, p3) -> true))
.transform(pickaxeOnly())
.transform(mountedFluidStorage(TFMGMountedStorageTypes.TFMG_FLUID_TANK))
.onRegister(movementBehaviour(new FluidTankMovementBehavior()))
.blockstate(new TFMGTankGenerator()::generate)
.onRegister(CreateRegistrate.blockModel(() -> AluminumFluidTankModel::standard))
.addLayer(() -> RenderType::cutoutMipped)
@@ -256,6 +261,8 @@ public class TFMGBlocks {
.initialProperties(SharedProperties::copperMetal)
.properties(p -> p.sound(SoundType.METAL))
.properties(BlockBehaviour.Properties::noOcclusion)
.transform(mountedFluidStorage(TFMGMountedStorageTypes.TFMG_FLUID_TANK))
.onRegister(movementBehaviour(new FluidTankMovementBehavior()))
.properties(p -> p.isRedstoneConductor((p1, p2, p3) -> true))
.transform(pickaxeOnly())
.blockstate(new TFMGTankGenerator()::generate)
@@ -267,7 +274,6 @@ public class TFMGBlocks {
.register();
//------------------DISTILLATION_TOWER------------------//
@SuppressWarnings("'addLayer(java.util.function.Supplier<java.util.function.Supplier<net.minecraft.client.renderer.RenderType>>)' is deprecated and marked for removal ")
public static final BlockEntry<SteelTankBlock> STEEL_FLUID_TANK =
REGISTRATE.block("steel_fluid_tank", SteelTankBlock::regular)
.initialProperties(SharedProperties::copperMetal)
@@ -276,6 +282,8 @@ public class TFMGBlocks {
.properties(p -> p.isRedstoneConductor((p1, p2, p3) -> true))
.transform(pickaxeOnly())
.blockstate(new TFMGTankGenerator()::generate)
.transform(mountedFluidStorage(TFMGMountedStorageTypes.TFMG_FLUID_TANK))
.onRegister(movementBehaviour(new FluidTankMovementBehavior()))
.onRegister(CreateRegistrate.blockModel(() -> SteelFluidTankModel::standard))
.addLayer(() -> RenderType::cutoutMipped)
.item(SteelTankItem::new)
@@ -696,6 +704,7 @@ public class TFMGBlocks {
.initialProperties(SharedProperties::softMetal)
.properties(BlockBehaviour.Properties::noOcclusion)
.transform(pickaxeOnly())
.transform(TFMGStress.setImpact(4.0))
.blockstate(BlockStateGen.horizontalBlockProvider(true))
.item()
.transform(customItemModel())
@@ -881,7 +890,7 @@ public class TFMGBlocks {
.initialProperties(() -> Blocks.IRON_BLOCK)
.transform(pickaxeOnly())
.properties(BlockBehaviour.Properties::noOcclusion)
.transform(TFMGStress.setImpact(5.0f))
.transform(TFMGStress.setImpact(50.0f))
.blockstate(BlockStateGen.directionalBlockProvider(true))
.item()
.transform(customItemModel())
@@ -1202,7 +1211,7 @@ public class TFMGBlocks {
.transform(pickaxeOnly())
.properties(BlockBehaviour.Properties::noOcclusion)
.blockstate(BlockStateGen.axisBlockProvider(true))
.transform(TFMGStress.setImpact(10))
.transform(TFMGStress.setImpact(240))
.item()
.transform(customItemModel())
.register();
@@ -1675,7 +1684,7 @@ public class TFMGBlocks {
.strength(3.0F)
.requiresCorrectToolForDrops()
.sound(SoundType.CALCITE))
.recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.SLAG_BLOCK.asItem()), RecipeCategory.BUILDING_BLOCKS, c::get, 1))
.recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.SLAG_BLOCK.asItem()), RecipeCategory.BUILDING_BLOCKS, c::get, 4))
.transform(pickaxeOnly())
.simpleItem()
.register();

View File

@@ -8,7 +8,7 @@ import com.drmangotea.tfmg.content.electricity.configuration_wrench.Electricians
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection;
import com.drmangotea.tfmg.content.electricity.debug.DebugCinderBlockItem;
import com.drmangotea.tfmg.content.electricity.measurement.MultimeterItem;
import com.drmangotea.tfmg.content.electricity.utilities.fuse_block.FuseItem;
import com.drmangotea.tfmg.content.electricity.utilities.polarizer.MagnetItem;
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorItem;
import com.drmangotea.tfmg.content.electricity.utilities.transformer.ElectromagneticCoilItem;
import com.drmangotea.tfmg.content.engines.CylinderItem;
@@ -123,16 +123,15 @@ public class TFMGItems {
STEEL_MECHANISM = REGISTRATE.item("steel_mechanism", Item::new).register(),
NITRATE_DUST = REGISTRATE.item("nitrate_dust", Item::new).register(),
CONCRETE_MIXTURE = REGISTRATE.item("concrete_mixture", Item::new).register(),
ASPHALT_MIXTURE = REGISTRATE.item("concrete_mixture", Item::new).register(),
ASPHALT_MIXTURE = REGISTRATE.item("asphalt_mixture", Item::new).register(),
MAGNETIC_ALLOY_INGOT = REGISTRATE.item("magnetic_alloy_ingot", Item::new).register(),
BAUXITE_POWDER = REGISTRATE.item("bauxite_powder", Item::new).register(),
MAGNET = REGISTRATE.item("magnet", Item::new).register(),
EMPTY_CIRCUIT_BOARD = REGISTRATE.item("empty_circuit_board", Item::new).register(),
EMPTY_CIRCUIT_BOARD = REGISTRATE.item("empty_circuit_board", Item::new).register(),
COATED_CIRCUIT_BOARD = REGISTRATE.item("coated_circuit_board", Item::new).register(),
ETCHED_CIRCUIT_BOARD = REGISTRATE.item("etched_circuit_board", Item::new).register(),
CIRCUIT_BOARD = REGISTRATE.item("circuit_board", Item::new).register(),
TRANSISTOR = REGISTRATE.item("transistor_item", Item::new).lang("Transistor")
.properties(p -> p.stacksTo(1)).register(),
TRANSISTOR = REGISTRATE.item("transistor_item", Item::new).lang("Transistor").register(),
CAPACITOR = REGISTRATE.item("capacitor_item", Item::new).lang("Capacitor").register(),
COPPER_SULFATE = REGISTRATE.item("copper_sulfate", Item::new).register(),
LITHIUM_CHARGE = REGISTRATE.item("lithium_charge", Item::new).register(),
@@ -177,6 +176,8 @@ public class TFMGItems {
TRANSMISSION = REGISTRATE.item("transmission", TransmissionItem::new)
.properties(p -> p.stacksTo(1))
.model((c, p) -> p.withExistingParent(c.getName(), TFMG.asResource("item/transmission_model"))).register();
public static final ItemEntry<MagnetItem>
MAGNET = REGISTRATE.item("magnet", MagnetItem::new).register();
public static final ItemEntry<ResistorItem>
UNFINISHED_RESISTOR = REGISTRATE.item("unfinished_resistor", ResistorItem::new).register();

View File

@@ -0,0 +1,22 @@
package com.drmangotea.tfmg.registry;
import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType;
import com.simibubi.create.content.fluids.tank.storage.FluidTankMountedStorageType;
import com.tterrag.registrate.util.entry.RegistryEntry;
import java.util.function.Supplier;
import static com.drmangotea.tfmg.TFMG.REGISTRATE;
public class TFMGMountedStorageTypes {
public static final RegistryEntry<FluidTankMountedStorageType> TFMG_FLUID_TANK = simpleFluid("tfmg_fluid_tank", FluidTankMountedStorageType::new);
private static <T extends MountedFluidStorageType<?>> RegistryEntry<T> simpleFluid(String name, Supplier<T> supplier) {
return REGISTRATE.mountedFluidStorage(name, supplier).register();
}
public static void register() {
}
}

View File

@@ -33,7 +33,7 @@ public class TFMGBiomeModifiers {
public static void bootstrap(BootstapContext<BiomeModifier> ctx) {
HolderGetter<Biome> biomeLookup = ctx.lookup(Registries.BIOME);
HolderSet<Biome> isOverworld = biomeLookup.getOrThrow(BiomeTags.IS_OVERWORLD);
HolderSet<Biome> isNether = biomeLookup.getOrThrow(Tags.Biomes.IS_DESERT);
HolderSet<Biome> isNether = biomeLookup.getOrThrow(BiomeTags.IS_NETHER);
HolderSet<Biome> isDesert = biomeLookup.getOrThrow(BiomeTags.HAS_DESERT_PYRAMID);

View File

@@ -88,7 +88,7 @@ public class TFMGLayeredPatterns {
.inNether()
.layer(l -> l.weight(2)
.passiveBlock())
.layer(l -> l.weight(2)
.layer(l -> l.weight(4)
.block(TFMGBlocks.SULFUR.get())
.size(1, 2))
.layer(l -> l.weight(3)
@@ -108,7 +108,7 @@ public class TFMGLayeredPatterns {
.inNether()
.layer(l -> l.weight(2)
.passiveBlock())
.layer(l -> l.weight(2)
.layer(l -> l.weight(5)
.block(TFMGBlocks.FIRECLAY.get())
.size(1, 2))
.layer(l -> l.weight(3)

View File

@@ -58,6 +58,7 @@
"create.goggles.polarizer.header": "Polarizer",
"create.goggles.polarizer.charge": "Charge: ",
"create.goggles.polarizer.insufficient_power": "Not Enough Power (Needs 2000W)",
"create.goggles.electric_machine.no_power": "No Power",
"create.goggles.electricity.insufficient_voltage": "Insufficient Voltage",
@@ -79,6 +80,8 @@
"create.goggles.engine.pistons_missing": "Pistons Missing",
"create.goggles.engine.turbines_missing": "Turbines Missing",
"create.goggles.electrode_holder.min_amps": "Not Enough Current (Needs ",
"create.goggles.vat.header": "Chemical Vat",
"create.goggles.vat.attachments": "Attachments:",
"create.goggles.vat.contents": "Vat Contents:",
@@ -88,7 +91,7 @@
"create.goggles.vat.superheated": "Superheated",
"create.goggles.vat.tfmg.graphite_electrode": " Graphite Electrode",
"create.goggles.vat.tfmg.electrode": " Electrode",
"create.goggles.vat.tfmg.mixer": " Mixer",
"create.goggles.vat.tfmg.mixing": " Mixer",
"create.goggles.vat.tfmg.centrifuge": " Centrifuge",
@@ -117,6 +120,8 @@
"create.tooltip.cylinder": "Supported Fuels:",
"create.tooltip.fluid_item": "Fluid Amount: %1$s",
"create.recipe.assembly.winding": "Wind %1$s",
"create.recipe.distillation": "Distillation",
"create.recipe.advanced_distillation": "Advanced Distillation",
"create.recipe.industrial_blasting": "Industrial Blasting",
@@ -140,6 +145,7 @@
"create.multimeter.power_percentage": " Grid Strength: ",
"create.multimeter.energy_usage": " Energy Usage: ",
"create.multimeter.energy_stored": " Energy Stored: ",
"create.multimeter.transformer_ratio": " Turn Ratio: ",
"item.minecraft.potion.effect.hellfire_potion": "Potion of Hellfire",
"item.minecraft.splash_potion.effect.hellfire_potion": "Splash Potion of Hellfire",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 472 B

View File

@@ -9,6 +9,7 @@
"FluidPropagatorMixin",
"GoggleOverlayRendererMixin",
"PipeAttachmentModelMixin",
"FluidTankBlockEntityMixin",
"accessor.FluidTankBlockEntityAccessor",
"accessor.TankSegmentAccessor"