Adjustable Tick Rates.

This commit is contained in:
AlgorithmX2 2014-03-17 14:59:50 -05:00
parent a05bdd82e9
commit c2bcfeeb25
13 changed files with 78 additions and 32 deletions

View file

@ -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<? extends Enum> class1, Enum myDefault)

View file

@ -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);
}
}

View file

@ -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

View file

@ -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

View file

@ -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 );
}
}

View file

@ -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

View file

@ -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 );
}
}

View file

@ -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

View file

@ -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<PartP2PBCPower> 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

View file

@ -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<PartP2PTunnelME> 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

View file

@ -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

View file

@ -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

View file

@ -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