Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 73ffbc5e70 | |||
| c8e24a4052 | |||
| d6cbfe2e31 | |||
| 3b61d126a7 |
@@ -90,11 +90,11 @@ public final class AppEng {
|
|||||||
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, AEConfig.CLIENT_SPEC);
|
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, AEConfig.CLIENT_SPEC);
|
||||||
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, AEConfig.COMMON_SPEC);
|
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, AEConfig.COMMON_SPEC);
|
||||||
|
|
||||||
proxy = DistExecutor.safeRunForDist(() -> ClientHelper::new, () -> ServerHelper::new);
|
|
||||||
|
|
||||||
CreativeTab.init();
|
CreativeTab.init();
|
||||||
new FacadeItemGroup(); // This call has a side-effect (adding it to the creative screen)
|
new FacadeItemGroup(); // This call has a side-effect (adding it to the creative screen)
|
||||||
|
|
||||||
|
proxy = DistExecutor.safeRunForDist(() -> ClientHelper::new, () -> ServerHelper::new);
|
||||||
|
|
||||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||||
registration = new Registration();
|
registration = new Registration();
|
||||||
modEventBus.addGenericListener(Block.class, registration::registerBlocks);
|
modEventBus.addGenericListener(Block.class, registration::registerBlocks);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import appeng.api.events.LocatableEventAnnounce;
|
|||||||
import appeng.api.events.LocatableEventAnnounce.LocatableEvent;
|
import appeng.api.events.LocatableEventAnnounce.LocatableEvent;
|
||||||
import appeng.api.features.ILocatable;
|
import appeng.api.features.ILocatable;
|
||||||
import appeng.api.features.ILocatableRegistry;
|
import appeng.api.features.ILocatableRegistry;
|
||||||
|
import appeng.core.AELog;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
public final class LocatableRegistry implements ILocatableRegistry {
|
public final class LocatableRegistry implements ILocatableRegistry {
|
||||||
@@ -45,8 +46,10 @@ public final class LocatableRegistry implements ILocatableRegistry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (e.change == LocatableEvent.REGISTER) {
|
if (e.change == LocatableEvent.REGISTER) {
|
||||||
|
AELog.debug("Registering locatable %s: %s", e.target.getLocatableSerial(), e.target);
|
||||||
this.set.put(e.target.getLocatableSerial(), e.target);
|
this.set.put(e.target.getLocatableSerial(), e.target);
|
||||||
} else if (e.change == LocatableEvent.UNREGISTER) {
|
} else if (e.change == LocatableEvent.UNREGISTER) {
|
||||||
|
AELog.debug("Unregistering locatable %s: %s", e.target.getLocatableSerial(), e.target);
|
||||||
this.set.remove(e.target.getLocatableSerial());
|
this.set.remove(e.target.getLocatableSerial());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,16 +96,15 @@ public class FluidImportBusPart extends SharedFluidBusPart {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final TileEntity te = this.getConnectedTE();
|
final TileEntity te = this.getConnectedTE();
|
||||||
LazyOptional<IFluidHandler> fhOpt = LazyOptional.empty();
|
|
||||||
if (te != null) {
|
if (te != null) {
|
||||||
te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, this.getSide().getFacing().getOpposite());
|
LazyOptional<IFluidHandler> fhOpt = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY,
|
||||||
}
|
this.getSide().getFacing().getOpposite());
|
||||||
if (fhOpt.isPresent()) {
|
|
||||||
try {
|
if (fhOpt.isPresent()) {
|
||||||
final IFluidHandler fh = fhOpt.orElse(null);
|
try {
|
||||||
final IMEMonitor<IAEFluidStack> inv = this.getProxy().getStorage().getInventory(this.getChannel());
|
final IFluidHandler fh = fhOpt.orElseThrow(() -> new IllegalStateException());
|
||||||
|
final IMEMonitor<IAEFluidStack> inv = this.getProxy().getStorage().getInventory(this.getChannel());
|
||||||
|
|
||||||
if (fh != null) {
|
|
||||||
final FluidStack fluidStack = fh.drain(this.calculateAmountToSend(), FluidAction.SIMULATE);
|
final FluidStack fluidStack = fh.drain(this.calculateAmountToSend(), FluidAction.SIMULATE);
|
||||||
|
|
||||||
if (this.filterEnabled() && !this.isInFilter(fluidStack)) {
|
if (this.filterEnabled() && !this.isInFilter(fluidStack)) {
|
||||||
@@ -128,12 +127,11 @@ public class FluidImportBusPart extends SharedFluidBusPart {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return TickRateModulation.IDLE;
|
return TickRateModulation.IDLE;
|
||||||
|
} catch (GridAccessException e) {
|
||||||
|
// skip
|
||||||
}
|
}
|
||||||
} catch (GridAccessException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return TickRateModulation.SLEEP;
|
return TickRateModulation.SLEEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import java.util.Iterator;
|
|||||||
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.ChunkPos;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
@@ -160,13 +159,17 @@ public class QuantumCluster implements ILocatable, IAECluster {
|
|||||||
if (qc != null) {
|
if (qc != null) {
|
||||||
final World theWorld = qc.center.getWorld();
|
final World theWorld = qc.center.getWorld();
|
||||||
if (!qc.isDestroyed) {
|
if (!qc.isDestroyed) {
|
||||||
ChunkPos cPos = new ChunkPos(qc.center.getPos());
|
// In future versions, we might actually want to delay the entire registration
|
||||||
if (theWorld.getChunkProvider().isChunkLoaded(cPos)) {
|
// until the center
|
||||||
|
// tile begins ticking normally.
|
||||||
|
if (theWorld.isBlockLoaded(qc.center.getPos())) {
|
||||||
final DimensionType id = theWorld.dimension.getType();
|
final DimensionType id = theWorld.dimension.getType();
|
||||||
final World cur = theWorld.getServer().getWorld(id);
|
final World cur = theWorld.getServer().getWorld(id);
|
||||||
|
|
||||||
final TileEntity te = theWorld.getTileEntity(qc.center.getPos());
|
final TileEntity te = theWorld.getTileEntity(qc.center.getPos());
|
||||||
return te != qc.center || theWorld != cur;
|
return te != qc.center || theWorld != cur;
|
||||||
|
} else {
|
||||||
|
AELog.warn("Found a registered QNB with serial %s whose chunk seems to be unloaded: %s", qe, qc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -277,4 +280,17 @@ public class QuantumCluster implements ILocatable, IAECluster {
|
|||||||
private void setRing(final QuantumBridgeTileEntity[] ring) {
|
private void setRing(final QuantumBridgeTileEntity[] ring) {
|
||||||
this.Ring = ring;
|
this.Ring = ring;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
if (center == null) {
|
||||||
|
return "QuantumCluster{no-center}";
|
||||||
|
}
|
||||||
|
|
||||||
|
World world = center.getWorld();
|
||||||
|
BlockPos pos = center.getPos();
|
||||||
|
|
||||||
|
return "QuantumCluster{" + world + "," + pos + "}";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,9 +253,11 @@ public class AEBaseTileEntity extends TileEntity implements IOrientable, ICommon
|
|||||||
if (this.renderFragment > 0) {
|
if (this.renderFragment > 0) {
|
||||||
this.renderFragment |= 1;
|
this.renderFragment |= 1;
|
||||||
} else {
|
} else {
|
||||||
|
// Clearing the cached model-data is always harmless regardless of status
|
||||||
|
this.requestModelDataUpdate();
|
||||||
|
|
||||||
// TODO: Optimize Network Load
|
// TODO: Optimize Network Load
|
||||||
if (this.world != null) {
|
if (this.world != null && !this.isRemoved() && !notLoaded()) {
|
||||||
this.requestModelDataUpdate();
|
|
||||||
|
|
||||||
boolean alreadyUpdated = false;
|
boolean alreadyUpdated = false;
|
||||||
// Let the block update it's own state with our internal state changes
|
// Let the block update it's own state with our internal state changes
|
||||||
@@ -367,7 +369,6 @@ public class AEBaseTileEntity extends TileEntity implements IOrientable, ICommon
|
|||||||
* null means nothing to store...
|
* null means nothing to store...
|
||||||
*
|
*
|
||||||
* @param from source of settings
|
* @param from source of settings
|
||||||
*
|
|
||||||
* @return compound of source
|
* @return compound of source
|
||||||
*/
|
*/
|
||||||
public CompoundNBT downloadSettings(final SettingsFrom from) {
|
public CompoundNBT downloadSettings(final SettingsFrom from) {
|
||||||
|
|||||||
Reference in New Issue
Block a user