1.1.0b update

This commit is contained in:
DrMangoTea
2025-09-21 23:16:59 +02:00
parent 00afd7b118
commit ac5db68f21
21 changed files with 90 additions and 23 deletions

View File

@@ -31,7 +31,7 @@ registrate_version = MC1.21-1.3.0+62
mod_id=tfmg mod_id=tfmg
mod_name=Create: The Factory Must Grow mod_name=Create: The Factory Must Grow
mod_license=MIT mod_license=MIT
mod_version=1.1.0 mod_version=1.1.0b
mod_group_id=com.drmangotea mod_group_id=com.drmangotea
mod_authors= DrMangoTea, Pepa, Luna mod_authors= DrMangoTea, Pepa, Luna
mod_description= Create: The Factory Must Grow brings the age of steel, oil and electricity to the Create mod mod_description= Create: The Factory Must Grow brings the age of steel, oil and electricity to the Create mod

View File

@@ -76,7 +76,7 @@ public class TFMG {
TFMGDataComponents.register(modEventBus); TFMGDataComponents.register(modEventBus);
TFMGMobEffects.register(modEventBus); TFMGMobEffects.register(modEventBus);
TFMGRecipeTypes.register(modEventBus); TFMGRecipeTypes.register(modEventBus);
TFMGArmorMaterials.register(modEventBus); // TFMGArmorMaterials.register(modEventBus);
TFMGColoredFires.register(modEventBus); TFMGColoredFires.register(modEventBus);
TFMGFeatures.register(modEventBus); TFMGFeatures.register(modEventBus);
TFMGMountedStorageTypes.register(); TFMGMountedStorageTypes.register();

View File

@@ -3,6 +3,7 @@ package com.drmangotea.tfmg.base.debug;
import com.drmangotea.tfmg.TFMG; import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelTankBlock; import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelTankBlock;
import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelTankBlockEntity; import com.drmangotea.tfmg.content.decoration.tanks.steel.SteelTankBlockEntity;
import com.drmangotea.tfmg.content.electricity.generators.large_generator.StatorBlockEntity;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
@@ -27,16 +28,19 @@ public class DebugCinderBlockItem extends Item {
BlockPos pos = context.getClickedPos(); BlockPos pos = context.getClickedPos();
Level level = context.getLevel(); Level level = context.getLevel();
if (level.getBlockEntity(pos) instanceof StatorBlockEntity be) {
be.updateRotor();
}
if (level.getBlockEntity(pos) instanceof SteelTankBlockEntity be) { if (level.getBlockEntity(pos) instanceof SteelTankBlockEntity be) {
if(!context.getPlayer().isCrouching()) { if (!context.getPlayer().isCrouching()) {
//SteelTankBlock.updateTowerState(be.getLevel(), be.getBlockPos(), true, false); //SteelTankBlock.updateTowerState(be.getLevel(), be.getBlockPos(), true, false);
// be.updateTemperature(); // be.updateTemperature();
TFMG.LOGGER.debug(String.valueOf(be.isDistillationTower)); TFMG.LOGGER.debug(String.valueOf(be.isDistillationTower));
//be.sendData(); //be.sendData();
//be.getControllerBE().sendData(); //be.getControllerBE().sendData();
}else { } else {
SteelTankBlock.updateTowerState(be.getLevel(), be.getBlockPos(), false, false); SteelTankBlock.updateTowerState(be.getLevel(), be.getBlockPos(), false, false);
TFMG.LOGGER.debug(String.valueOf(be.isDistillationTower)); TFMG.LOGGER.debug(String.valueOf(be.isDistillationTower));
} }

View File

@@ -7,12 +7,12 @@ public class MachineConfig extends ConfigBase {
public final ConfigInt fireExtinguisherClearRadius = i(1, 0, "fireExtinguisherClearRadius", Comments.fireExtinguisherClearRadius); public final ConfigInt fireExtinguisherClearRadius = i(1, 0, "fireExtinguisherClearRadius", Comments.fireExtinguisherClearRadius);
public final ConfigFloat electricMotorInternalResistance = f(100, 0, "electricMotorInternalResistance", Comments.electricMotorInternalResistance); public final ConfigFloat electricMotorInternalResistance = f(30, 0, "electricMotorInternalResistance", Comments.electricMotorInternalResistance);
public final ConfigInt cokeOvenMaxSize = i(5, 1, "cokeOvenMaxSize", Comments.cokeOvenMaxSize); public final ConfigInt cokeOvenMaxSize = i(5, 1, "cokeOvenMaxSize", Comments.cokeOvenMaxSize);
public final ConfigFloat FEtoWattTickConversionRate = f(1, 0, "FEtoWattTickConversionRate", Comments.FEtoWattTickConversionRate); public final ConfigFloat FEtoWattTickConversionRate = f(1, 0, "FEtoWattTickConversionRate", Comments.FEtoWattTickConversionRate);
public final ConfigInt electrolysisMinimumCurrent = i(5, 1, "electrolysisMinimumCurrent", Comments.electrolysisMinimumCurrent); public final ConfigInt electrolysisMinimumCurrent = i(10, 1, "electrolysisMinimumCurrent", Comments.electrolysisMinimumCurrent);
public final ConfigInt engineMaxLength = i(5, 1, "engineMaxLength", Comments.engineMaxLength); public final ConfigInt engineMaxLength = i(5, 1, "engineMaxLength", Comments.engineMaxLength);
public final ConfigInt surfaceScannerScanDepth = i(-64, -512, "surfaceScannerScanDepth", Comments.surfaceScannerScanDepth); public final ConfigInt surfaceScannerScanDepth = i(-64, -512, "surfaceScannerScanDepth", Comments.surfaceScannerScanDepth);
public final ConfigInt polarizerItemChargingRate = i(1000, 1, "polarizerItemChargingRate", Comments.polarizerItemChargingRate); public final ConfigInt polarizerItemChargingRate = i(1000, 1, "polarizerItemChargingRate", Comments.polarizerItemChargingRate);

View File

@@ -27,7 +27,7 @@ import net.neoforged.neoforge.client.model.generators.ConfiguredModel;
import static com.simibubi.create.foundation.data.ModelGen.customItemModel; import static com.simibubi.create.foundation.data.ModelGen.customItemModel;
import static com.simibubi.create.foundation.data.TagGen.axeOrPickaxe; import static com.simibubi.create.foundation.data.TagGen.axeOrPickaxe;
import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly; import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly;
@SuppressWarnings("removal")
public class TFMGPipeEntry { public class TFMGPipeEntry {
private final TFMGPipes.PipeMaterial material; private final TFMGPipes.PipeMaterial material;
private final TFMGRegistrate registrate; private final TFMGRegistrate registrate;
@@ -95,7 +95,14 @@ public class TFMGPipeEntry {
.initialProperties(SharedProperties::copperMetal) .initialProperties(SharedProperties::copperMetal)
.transform(pickaxeOnly()) .transform(pickaxeOnly())
.blockstate(BlockStateGen.pipe()) .blockstate(BlockStateGen.pipe())
.onRegister(CreateRegistrate.blockModel(()-> this.attachmentModel)) .onRegister(CreateRegistrate.blockModel(()->
switch (this.material){
case BRASS -> TFMGPipeAttachmentModel::withAOBrass;
case STEEL -> TFMGPipeAttachmentModel::withAOSteel;
case ALUMINUM -> TFMGPipeAttachmentModel::withAOAluminum;
case CAST_IRON -> TFMGPipeAttachmentModel::withAOCastIron;
case PLASTIC -> TFMGPipeAttachmentModel::withAOPlastic;
}))
.item() .item()
.transform(customItemModel()) .transform(customItemModel())
.register(); .register();
@@ -134,7 +141,14 @@ public class TFMGPipeEntry {
.build(); .build();
}, BlockStateProperties.WATERLOGGED); }, BlockStateProperties.WATERLOGGED);
}) })
.onRegister(CreateRegistrate.blockModel(()-> this.attachmentModel)) .onRegister(CreateRegistrate.blockModel(()->
switch (this.material){
case BRASS -> TFMGPipeAttachmentModel::withAOBrass;
case STEEL -> TFMGPipeAttachmentModel::withAOSteel;
case ALUMINUM -> TFMGPipeAttachmentModel::withAOAluminum;
case CAST_IRON -> TFMGPipeAttachmentModel::withAOCastIron;
case PLASTIC -> TFMGPipeAttachmentModel::withAOPlastic;
}))
.loot((p, b) -> p.dropOther(b, this.pipe.get())) .loot((p, b) -> p.dropOther(b, this.pipe.get()))
.register(); .register();
} }
@@ -144,7 +158,14 @@ public class TFMGPipeEntry {
.initialProperties(SharedProperties::copperMetal) .initialProperties(SharedProperties::copperMetal)
.transform(pickaxeOnly()) .transform(pickaxeOnly())
.blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true))
.onRegister(CreateRegistrate.blockModel(()-> this.attachmentModel)) .onRegister(CreateRegistrate.blockModel(()->
switch (this.material){
case BRASS -> TFMGPipeAttachmentModel::withAOBrass;
case STEEL -> TFMGPipeAttachmentModel::withAOSteel;
case ALUMINUM -> TFMGPipeAttachmentModel::withAOAluminum;
case CAST_IRON -> TFMGPipeAttachmentModel::withAOCastIron;
case PLASTIC -> TFMGPipeAttachmentModel::withAOPlastic;
}))
.transform(TFMGStress.setImpact(4.0)) .transform(TFMGStress.setImpact(4.0))
.item() .item()
.transform(customItemModel()) .transform(customItemModel())
@@ -156,7 +177,14 @@ public class TFMGPipeEntry {
.initialProperties(SharedProperties::copperMetal) .initialProperties(SharedProperties::copperMetal)
.transform(pickaxeOnly()) .transform(pickaxeOnly())
.blockstate(new SmartFluidPipeGenerator()::generate) .blockstate(new SmartFluidPipeGenerator()::generate)
.onRegister(CreateRegistrate.blockModel(()-> this.attachmentModel)) .onRegister(CreateRegistrate.blockModel(()->
switch (this.material){
case BRASS -> TFMGPipeAttachmentModel::withAOBrass;
case STEEL -> TFMGPipeAttachmentModel::withAOSteel;
case ALUMINUM -> TFMGPipeAttachmentModel::withAOAluminum;
case CAST_IRON -> TFMGPipeAttachmentModel::withAOCastIron;
case PLASTIC -> TFMGPipeAttachmentModel::withAOPlastic;
}))
.item() .item()
.transform(customItemModel()) .transform(customItemModel())
.register(); .register();
@@ -170,7 +198,14 @@ public class TFMGPipeEntry {
.blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p,
(state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal",
state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed")))
.onRegister(CreateRegistrate.blockModel(() -> this.attachmentModel)) .onRegister(CreateRegistrate.blockModel(()->
switch (this.material){
case BRASS -> TFMGPipeAttachmentModel::withAOBrass;
case STEEL -> TFMGPipeAttachmentModel::withAOSteel;
case ALUMINUM -> TFMGPipeAttachmentModel::withAOAluminum;
case CAST_IRON -> TFMGPipeAttachmentModel::withAOCastIron;
case PLASTIC -> TFMGPipeAttachmentModel::withAOPlastic;
}))
.item() .item()
.transform(customItemModel()) .transform(customItemModel())
.register(); .register();

View File

@@ -43,15 +43,15 @@ public class TFMGPipes {
public static final Map<PipeMaterial, TFMGPipeEntry> PIPES = new HashMap<>(); public static final Map<PipeMaterial, TFMGPipeEntry> PIPES = new HashMap<>();
static { static {
PIPES.put(PipeMaterial.BRASS, createEntry(PipeMaterial.BRASS, TFMGPipeAttachmentModel::withAOBrass, TFMGSpriteShifts.BRASS_FLUID_CASING)); PIPES.put(PipeMaterial.BRASS, createEntry(PipeMaterial.BRASS, TFMGSpriteShifts.BRASS_FLUID_CASING));
PIPES.put(PipeMaterial.STEEL, createEntry(PipeMaterial.STEEL, TFMGPipeAttachmentModel::withAOSteel, TFMGSpriteShifts.STEEL_FLUID_CASING)); PIPES.put(PipeMaterial.STEEL, createEntry(PipeMaterial.STEEL, TFMGSpriteShifts.STEEL_FLUID_CASING));
PIPES.put(PipeMaterial.ALUMINUM, createEntry(PipeMaterial.ALUMINUM, TFMGPipeAttachmentModel::withAOAluminum, TFMGSpriteShifts.ALUMINUM_FLUID_CASING)); PIPES.put(PipeMaterial.ALUMINUM, createEntry(PipeMaterial.ALUMINUM, TFMGSpriteShifts.ALUMINUM_FLUID_CASING));
PIPES.put(PipeMaterial.CAST_IRON, createEntry(PipeMaterial.CAST_IRON, TFMGPipeAttachmentModel::withAOCastIron, TFMGSpriteShifts.CAST_IRON_FLUID_CASING)); PIPES.put(PipeMaterial.CAST_IRON, createEntry(PipeMaterial.CAST_IRON, TFMGSpriteShifts.CAST_IRON_FLUID_CASING));
PIPES.put(PipeMaterial.PLASTIC, createEntry(PipeMaterial.PLASTIC, TFMGPipeAttachmentModel::withAOPlastic, TFMGSpriteShifts.PLASTIC_FLUID_CASING)); PIPES.put(PipeMaterial.PLASTIC, createEntry(PipeMaterial.PLASTIC, TFMGSpriteShifts.PLASTIC_FLUID_CASING));
} }
private static TFMGPipeEntry createEntry(PipeMaterial material, NonNullFunction<BakedModel, ? extends BakedModel> attachmentModel, CTSpriteShiftEntry spriteShiftEntry) { private static TFMGPipeEntry createEntry(PipeMaterial material, CTSpriteShiftEntry spriteShiftEntry) {
return new TFMGPipeEntry(material, registrate).attachmentModel(attachmentModel).encasedSpriteShift(spriteShiftEntry); return new TFMGPipeEntry(material, registrate).encasedSpriteShift(spriteShiftEntry);
} }
public static void init() { public static void init() {

View File

@@ -90,6 +90,12 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
return (int) Math.max(0, ((Math.abs(getSpeed()) - maxSpeed) * modifier)); return (int) Math.max(0, ((Math.abs(getSpeed()) - maxSpeed) * modifier));
} }
@Override
public void onSpeedChanged(float previousSpeed) {
super.onSpeedChanged(previousSpeed);
updateNextTick();
}
@Override @Override
public int powerGeneration() { public int powerGeneration() {
return (int) (generation() * 40*1.84563); return (int) (generation() * 40*1.84563);

View File

@@ -5,6 +5,10 @@ import com.simibubi.create.api.equipment.goggles.IHaveGoggleInformation;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB;
import java.util.Iterator;
import java.util.List;
public class StatorBlockEntity extends ElectricBlockEntity implements IHaveGoggleInformation { public class StatorBlockEntity extends ElectricBlockEntity implements IHaveGoggleInformation {
@@ -31,6 +35,8 @@ public class StatorBlockEntity extends ElectricBlockEntity implements IHaveGoggl
} }
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
@@ -43,9 +49,23 @@ public class StatorBlockEntity extends ElectricBlockEntity implements IHaveGoggl
} }
} }
public void updateRotor(){
Iterable<BlockPos> blocksAround = BlockPos.betweenClosed(getBlockPos().below().north().west(),getBlockPos().above().east().east());
for (BlockPos blockPos : blocksAround) {
if(level.getBlockEntity(blockPos) instanceof RotorBlockEntity be) {
be.updateNextTick();
timer = 11;
}
}
}
@Override @Override
public void onPlaced() { public void onPlaced() {
super.onPlaced(); super.onPlaced();
updateRotor();
if (rotor != null) if (rotor != null)
if (level.getBlockEntity(rotor) instanceof RotorBlockEntity be) { if (level.getBlockEntity(rotor) instanceof RotorBlockEntity be) {
timer =11; timer =11;
@@ -56,6 +76,7 @@ public class StatorBlockEntity extends ElectricBlockEntity implements IHaveGoggl
@Override @Override
public void destroy() { public void destroy() {
super.destroy(); super.destroy();
updateRotor();
if (rotor != null) if (rotor != null)
if (level.getBlockEntity(rotor) instanceof RotorBlockEntity be) { if (level.getBlockEntity(rotor) instanceof RotorBlockEntity be) {
be.updateNextTick(); be.updateNextTick();

View File

@@ -97,6 +97,7 @@ public class ElectricMotorBlockEntity extends KineticElectricBlockEntity {
public void onNetworkChanged(int oldVoltage, int oldPower) { public void onNetworkChanged(int oldVoltage, int oldPower) {
//if (oldPower != getPowerUsage() || oldVoltage != data.voltage) { //if (oldPower != getPowerUsage() || oldVoltage != data.voltage) {
delayedUpdate = true; delayedUpdate = true;
updateNextTick();
notifyUpdate(); notifyUpdate();
// } // }
} }

View File

@@ -1048,7 +1048,7 @@ public class TFMGBlocks {
.transform(pickaxeOnly()) .transform(pickaxeOnly())
.properties(BlockBehaviour.Properties::noOcclusion) .properties(BlockBehaviour.Properties::noOcclusion)
.blockstate(new CreativeMotorGenerator()::generate) .blockstate(new CreativeMotorGenerator()::generate)
.transform(TFMGStress.setCapacity(45.0)) .transform(TFMGStress.setCapacity(12))
.onRegister(BlockStressValues.setGeneratorSpeed(64, true)) .onRegister(BlockStressValues.setGeneratorSpeed(64, true))
.item() .item()
.transform(customItemModel()) .transform(customItemModel())

View File

@@ -14,7 +14,7 @@ public class TFMGElectrodes {
public static final ElectrodeEntry<Electrode> copper = REGISTRATE.electrode("copper", Electrode::new) public static final ElectrodeEntry<Electrode> copper = REGISTRATE.electrode("copper", Electrode::new)
.properties((p) -> p .properties((p) -> p
.resistance(100) .resistance(10)
.item(TFMGItems.COPPER_ELECTRODE) .item(TFMGItems.COPPER_ELECTRODE)
.operationId("tfmg:electrode") .operationId("tfmg:electrode")
) )
@@ -22,7 +22,7 @@ public class TFMGElectrodes {
public static final ElectrodeEntry<Electrode> zinc = REGISTRATE.electrode("zinc", Electrode::new) public static final ElectrodeEntry<Electrode> zinc = REGISTRATE.electrode("zinc", Electrode::new)
.properties((p) -> p .properties((p) -> p
.resistance(100) .resistance(10)
.item(TFMGItems.ZINC_ELECTRODE) .item(TFMGItems.ZINC_ELECTRODE)
.operationId("tfmg:electrode") .operationId("tfmg:electrode")
) )

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 B

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

After

Width:  |  Height:  |  Size: 473 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

After

Width:  |  Height:  |  Size: 512 B