Skip to content

Commit

Permalink
Blank turbine crashes game #187
Browse files Browse the repository at this point in the history
  • Loading branch information
igentuman committed Mar 9, 2025
1 parent eda22dd commit 12cd201
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -308,44 +308,41 @@ public TurbineMultiblock multiblock() {

private void handleValidation() {
if(multiblock == null) return;
ValidationResult wasResult = validationResult;
boolean wasFormed = multiblock().isFormed();
if (!wasFormed || !isInternalValid || !isCasingValid) {
activeCoils = 0;
coilsEfficiency = 0;
flow = 0;
reValidateCounter++;
if(reValidateCounter < 40) {
return;
if (level.getGameTime() % 40 == 0) {
ValidationResult wasResult = validationResult;
boolean wasFormed = multiblock().isFormed();
if (!wasFormed || !isInternalValid || !isCasingValid) {
activeCoils = 0;
coilsEfficiency = 0;
flow = 0;
multiblock().validate();
isCasingValid = multiblock().isOuterValid();
if (isCasingValid) {
isInternalValid = multiblock().isInnerValid();
}
powered = false;
changed = true;
}
reValidateCounter = 0;
multiblock().validate();
isCasingValid = multiblock().isOuterValid();
if(isCasingValid) {
isInternalValid = multiblock().isInnerValid();
validationResult = multiblock().validationResult;
if (validationResult.id != wasResult.id) {
changed = true;
}
if (activeCoils != multiblock().activeCoils) {
changed = true;
activeCoils = multiblock().activeCoils;
coilsEfficiency = multiblock().coilsEfficiency;
}
powered = false;
changed = true;
}
validationResult = multiblock().validationResult;
if(validationResult.id != wasResult.id) {
changed = true;
}
if(activeCoils != multiblock().activeCoils) {
changed = true;
activeCoils = multiblock().activeCoils;
coilsEfficiency = multiblock().coilsEfficiency;
}

if(flow != multiblock().flow) {
changed = true;
flow = multiblock().flow;
blades = multiblock().blades;
if (flow != multiblock().flow) {
changed = true;
flow = multiblock().flow;
blades = multiblock().blades;
}
height = multiblock().height();
width = multiblock().width();
depth = multiblock().depth();
trackChanges(wasFormed, multiblock().isFormed());
}
height = multiblock().height();
width = multiblock().width();
depth = multiblock().depth();
trackChanges(wasFormed, multiblock().isFormed());
}

public float bladesEfficiency()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ private void updateAnalogSignal() {
analogSignal = (byte) (controller().energyStorage.getEnergyStored() * 15 / controller().energyStorage.getMaxEnergyStored());
break;
case SignalSource.OVERFLOW:
if (controller().getFlow() == 0) {
analogSignal = 0;
break;
}
analogSignal = (byte) (controller().getRealFlow() * 15 / controller().getFlow());
break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ public boolean onBlockChange(BlockPos pos) {
if(allBlocks.contains(pos)) {
Block targetBlock = getBlockState(pos).getBlock();
if(targetBlock.getDescriptionId().matches(
".*fusion_proxy.*|.*fusion_core.*|.*controller.*|.*port.*|.*irradiator.*"
".*fusion_proxy.*|.*fusion_core.*|.*controller.*|.*port.*|.*irradiator.*|.*rotor.*"
)) {
return true;
}
Expand All @@ -503,7 +503,7 @@ public boolean onBlockChange(BlockPos pos) {
&& pos.getX() <= topRight.getX() && pos.getY() <= topRight.getY() && pos.getZ() <= topRight.getZ()) {
Block targetBlock = getBlockState(pos).getBlock();
if(targetBlock.getDescriptionId().matches(
".*core_proxy.*|.*fusion_core.*|.*port.*|.*irradiator.*"
".*core_proxy.*|.*fusion_core.*|.*port.*|.*irradiator.*|.*rotor.*"
)) {
return true;
}
Expand Down

0 comments on commit 12cd201

Please sign in to comment.