From c2bcfeeb253d904ae94d980ecb941d7b9b4b84e6 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Mon, 17 Mar 2014 14:59:50 -0500 Subject: [PATCH] Adjustable Tick Rates. --- core/AEConfig.java | 27 +++++-------- core/settings/TickRates.java | 42 +++++++++++++++++++++ helpers/DualityInterface.java | 3 +- parts/automation/PartAnnihilationPlane.java | 3 +- parts/automation/PartExportBus.java | 8 ++++ parts/automation/PartImportBus.java | 3 +- parts/automation/PartSharedItemBus.java | 6 --- parts/misc/PartStorageBus.java | 3 +- parts/p2p/PartP2PBCPower.java | 3 +- parts/p2p/PartP2PTunnelME.java | 3 +- tile/misc/TileInscriber.java | 3 +- tile/misc/TileVibrationChamber.java | 3 +- tile/storage/TileIOPort.java | 3 +- 13 files changed, 78 insertions(+), 32 deletions(-) create mode 100644 core/settings/TickRates.java diff --git a/core/AEConfig.java b/core/AEConfig.java index 19cfd6a9..d71e9f8e 100644 --- a/core/AEConfig.java +++ b/core/AEConfig.java @@ -14,6 +14,7 @@ import appeng.api.config.YesNo; import appeng.api.util.IConfigManager; import appeng.api.util.IConfigureableObject; import appeng.core.features.AEFeature; +import appeng.core.settings.TickRates; import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; @@ -86,6 +87,7 @@ public class AEConfig extends Configuration implements IConfigureableObject, ICo public double oreDoublePercentage = 90.0; public boolean enableEffects = true; + public boolean useLargeFonts = false; public int wireless_battery = 1600000; public int manipulator_battery = 200000; @@ -119,12 +121,10 @@ public class AEConfig extends Configuration implements IConfigureableObject, ICo grinderOres = get( "GrindStone", "grinderOres", grinderOres ).getStringList(); oreDoublePercentage = get( "GrindStone", "oreDoublePercentage", oreDoublePercentage ).getDouble( oreDoublePercentage ); enableEffects = get( "Client", "enableEffects", true ).getBoolean( true ); - - // settings.registerSetting( Settings.SEARCH_MODS, YesNo.YES ); + useLargeFonts= get( "Client", "useTerminalUseLargeFont", true ).getBoolean( true ); + settings.registerSetting( Settings.SEARCH_TOOLTIPS, YesNo.YES ); settings.registerSetting( Settings.SEARCH_MODE, SearchBoxMode.AUTOSEARCH ); - // settings.registerSetting( Settings.SORT_BY, SortOrder.NAME ); - // settings.registerSetting( Settings.SORT_DIRECTION, SortDir.ASCENDING ); spawnChargedChance = (float) (1.0 - get( "worldGen", "spawnChargedChance", 1.0 - spawnChargedChance ).getDouble( 1.0 - spawnChargedChance )); minMeteoriteDistance = get( "worldGen", "minMeteoriteDistance", minMeteoriteDistance ).getInt( minMeteoriteDistance ); @@ -176,6 +176,11 @@ public class AEConfig extends Configuration implements IConfigureableObject, ICo selectedPowerUnit = PowerUnits.AE; } + for (TickRates tr: TickRates.values() ) + { + tr.Load(this); + } + if ( isFeatureEnabled( AEFeature.SpatialIO ) ) { storageBiomeID = get( "spatialio", "storageBiomeID", storageBiomeID ).getInt( storageBiomeID ); @@ -256,21 +261,9 @@ public class AEConfig extends Configuration implements IConfigureableObject, ICo return featureFlags.contains( f ); } - public int getBlockID(Class c, String subname) - { - return 0; - // return getBlock( AEFeatureHandler.getName( c, subname ), blkBaseNumber++ ).getInt(); - } - - public int getItemID(Class c, String subname) - { - return 0; - // return getItem( AEFeatureHandler.getName( c, subname ), blkItemNumber++ ).getInt(); - } - public boolean useTerminalUseLargeFont() { - return false; + return useLargeFonts; } public Enum getSetting(String Category, Class class1, Enum myDefault) diff --git a/core/settings/TickRates.java b/core/settings/TickRates.java new file mode 100644 index 00000000..ddad506c --- /dev/null +++ b/core/settings/TickRates.java @@ -0,0 +1,42 @@ +package appeng.core.settings; + +import appeng.core.AEConfig; + +public enum TickRates { + + Interface(5,120), + + ImportBus(5, 40), + + ExportBus(5, 60), + + AnnihilationPlane(2, 120), + + MJTunnel(1, 20), + + METunnel(5, 20), + + Inscriber(1, 1), + + IOPort(1, 5), + + VibrationChamber(10, 40), + + StorageBus(5, 60); + + public int min; + public int max; + + private TickRates( int min, int max ) { + this.min = min; + this.max = max; + } + + public void Load( AEConfig config ) + { + config.addCustomCategoryComment("TickRates", " Min / Max Tickrates for dynamic ticking, most of these components also use sleeping, to prevent constant ticking, adjust with care, non standard rates are not supported or tested." ); + min = config.get( "TickRates", name()+".min", min ).getInt(min); + max = config.get( "TickRates", name()+".max", max ).getInt(max); + } + +} diff --git a/helpers/DualityInterface.java b/helpers/DualityInterface.java index 56952f90..c7d7d791 100644 --- a/helpers/DualityInterface.java +++ b/helpers/DualityInterface.java @@ -26,6 +26,7 @@ import appeng.api.util.AECableType; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.api.util.IConfigureableObject; +import appeng.core.settings.TickRates; import appeng.me.GridAccessException; import appeng.me.helpers.AENetworkProxy; import appeng.me.storage.MEMonitorIInventory; @@ -403,7 +404,7 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 5, 120, !hasWorkToDo(), true ); + return new TickingRequest( TickRates.Interface.min, TickRates.Interface.max, !hasWorkToDo(), true ); } @Override diff --git a/parts/automation/PartAnnihilationPlane.java b/parts/automation/PartAnnihilationPlane.java index eb79269b..b836e643 100644 --- a/parts/automation/PartAnnihilationPlane.java +++ b/parts/automation/PartAnnihilationPlane.java @@ -36,6 +36,7 @@ import appeng.api.parts.IPartRenderHelper; import appeng.api.storage.data.IAEItemStack; import appeng.client.texture.CableBusTextures; import appeng.core.AELog; +import appeng.core.settings.TickRates; import appeng.core.sync.packets.PacketTransitionEffect; import appeng.hooks.TickHandler; import appeng.me.GridAccessException; @@ -317,7 +318,7 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 2, 120, false, true ); + return new TickingRequest( TickRates.AnnihilationPlane.min, TickRates.AnnihilationPlane.max, false, true ); } @Override diff --git a/parts/automation/PartExportBus.java b/parts/automation/PartExportBus.java index a1073606..7fb4d386 100644 --- a/parts/automation/PartExportBus.java +++ b/parts/automation/PartExportBus.java @@ -15,12 +15,14 @@ import appeng.api.networking.security.BaseActionSource; import appeng.api.networking.security.MachineSource; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; +import appeng.api.networking.ticking.TickingRequest; import appeng.api.parts.IPartCollsionHelper; import appeng.api.parts.IPartRenderHelper; import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEMonitor; import appeng.api.storage.data.IAEItemStack; import appeng.client.texture.CableBusTextures; +import appeng.core.settings.TickRates; import appeng.core.sync.GuiBridge; import appeng.me.GridAccessException; import appeng.util.InventoryAdaptor; @@ -232,4 +234,10 @@ public class PartExportBus extends PartSharedItemBus implements IGridTickable { return getHandler() == null || super.isSleeping(); } + + @Override + public TickingRequest getTickingRequest(IGridNode node) + { + return new TickingRequest( TickRates.ExportBus.min,TickRates.ExportBus.max, isSleeping(), false ); + } } diff --git a/parts/automation/PartImportBus.java b/parts/automation/PartImportBus.java index be62a036..d6f865bb 100644 --- a/parts/automation/PartImportBus.java +++ b/parts/automation/PartImportBus.java @@ -25,6 +25,7 @@ import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEMonitor; import appeng.api.storage.data.IAEItemStack; import appeng.client.texture.CableBusTextures; +import appeng.core.settings.TickRates; import appeng.core.sync.GuiBridge; import appeng.me.GridAccessException; import appeng.util.InventoryAdaptor; @@ -138,7 +139,7 @@ public class PartImportBus extends PartSharedItemBus implements IGridTickable, I @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 5, 40, getHandler() == null, false ); + return new TickingRequest( TickRates.ImportBus.min, TickRates.ImportBus.max, getHandler() == null, false ); } private int itemToSend; // used in tickingRequest diff --git a/parts/automation/PartSharedItemBus.java b/parts/automation/PartSharedItemBus.java index a4d62b76..4c91c4ad 100644 --- a/parts/automation/PartSharedItemBus.java +++ b/parts/automation/PartSharedItemBus.java @@ -119,10 +119,4 @@ public abstract class PartSharedItemBus extends PartUpgradeable implements IGrid return super.getInventoryByName( name ); } - @Override - public TickingRequest getTickingRequest(IGridNode node) - { - return new TickingRequest( 5, 60, isSleeping(), false ); - } - } diff --git a/parts/misc/PartStorageBus.java b/parts/misc/PartStorageBus.java index 2a40051e..b3659bc7 100644 --- a/parts/misc/PartStorageBus.java +++ b/parts/misc/PartStorageBus.java @@ -40,6 +40,7 @@ import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; import appeng.api.util.IConfigManager; import appeng.client.texture.CableBusTextures; +import appeng.core.settings.TickRates; import appeng.core.sync.GuiBridge; import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; @@ -327,7 +328,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 5, 20 * 3, monitor == null, false ); + return new TickingRequest( TickRates.StorageBus.min, TickRates.StorageBus.max, monitor == null, false ); } @Override diff --git a/parts/p2p/PartP2PBCPower.java b/parts/p2p/PartP2PBCPower.java index 35fef544..5a8c67e1 100644 --- a/parts/p2p/PartP2PBCPower.java +++ b/parts/p2p/PartP2PBCPower.java @@ -14,6 +14,7 @@ import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.core.AEConfig; +import appeng.core.settings.TickRates; import appeng.me.GridAccessException; import appeng.me.cache.helpers.TunnelCollection; import buildcraft.api.power.IPowerReceptor; @@ -44,7 +45,7 @@ public class PartP2PBCPower extends PartP2PTunnel implements IPo @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 1, 20, false, false ); + return new TickingRequest( TickRates.MJTunnel.min, TickRates.MJTunnel.max, false, false ); } @Override diff --git a/parts/p2p/PartP2PTunnelME.java b/parts/p2p/PartP2PTunnelME.java index b0d164f3..18b533dc 100644 --- a/parts/p2p/PartP2PTunnelME.java +++ b/parts/p2p/PartP2PTunnelME.java @@ -20,6 +20,7 @@ import appeng.api.networking.ticking.TickingRequest; import appeng.api.parts.IPartHost; import appeng.api.util.AECableType; import appeng.core.AELog; +import appeng.core.settings.TickRates; import appeng.hooks.TickHandler; import appeng.me.GridAccessException; import appeng.me.cache.helpers.Connections; @@ -110,7 +111,7 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 5, 20, output, false ); + return new TickingRequest( TickRates.METunnel.min, TickRates.METunnel.max, output, false ); } @Override diff --git a/tile/misc/TileInscriber.java b/tile/misc/TileInscriber.java index 8176ccfe..1e1edaec 100644 --- a/tile/misc/TileInscriber.java +++ b/tile/misc/TileInscriber.java @@ -19,6 +19,7 @@ import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.api.util.AECableType; +import appeng.core.settings.TickRates; import appeng.me.GridAccessException; import appeng.recipes.handlers.Inscribe; import appeng.recipes.handlers.Inscribe.InscriberRecipe; @@ -312,7 +313,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 1, 1, !hasWork(), false ); + return new TickingRequest( TickRates.Inscriber.min, TickRates.Inscriber.max, !hasWork(), false ); } @Override diff --git a/tile/misc/TileVibrationChamber.java b/tile/misc/TileVibrationChamber.java index d18bd624..d4dfdd3b 100644 --- a/tile/misc/TileVibrationChamber.java +++ b/tile/misc/TileVibrationChamber.java @@ -18,6 +18,7 @@ import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.api.util.AECableType; import appeng.api.util.DimensionalCoord; +import appeng.core.settings.TickRates; import appeng.me.GridAccessException; import appeng.tile.events.AETileEventHandler; import appeng.tile.events.TileEventType; @@ -154,7 +155,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka if ( burnTime <= 0 ) eatFuel(); - return new TickingRequest( 10, 40, burnTime <= 0, false ); + return new TickingRequest( TickRates.VibrationChamber.min, TickRates.VibrationChamber.max, burnTime <= 0, false ); } @Override diff --git a/tile/storage/TileIOPort.java b/tile/storage/TileIOPort.java index 66ef8a1c..b82d334f 100644 --- a/tile/storage/TileIOPort.java +++ b/tile/storage/TileIOPort.java @@ -29,6 +29,7 @@ import appeng.api.storage.data.IItemList; import appeng.api.util.AECableType; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; +import appeng.core.settings.TickRates; import appeng.me.GridAccessException; import appeng.parts.automation.UpgradeInventory; import appeng.tile.events.AETileEventHandler; @@ -203,7 +204,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC @Override public TickingRequest getTickingRequest(IGridNode node) { - return new TickingRequest( 1, 5, hasWork(), false ); + return new TickingRequest( TickRates.IOPort.min, TickRates.IOPort.max, hasWork(), false ); } @Override