Implement server config. Add config for upgrades.

This commit is contained in:
raoulvdberge
2019-09-19 09:39:13 +02:00
parent 3581e72a8f
commit 2b82d4cbbb
10 changed files with 148 additions and 206 deletions

View File

@@ -1,58 +0,0 @@
package com.raoulvdberge.refinedstorage;
import com.electronwill.nightconfig.core.file.CommentedFileConfig;
import net.minecraftforge.common.ForgeConfigSpec;
import java.nio.file.Paths;
public class Config {
private ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
private ForgeConfigSpec spec;
private Controller controller;
public Config() {
controller = new Controller();
spec = builder.build();
spec.setConfig(CommentedFileConfig.builder(Paths.get("config", "refinedstorage.toml")).build());
}
public Controller getController() {
return controller;
}
public class Controller {
private final ForgeConfigSpec.IntValue baseUsage;
private final ForgeConfigSpec.IntValue maxReceive;
private final ForgeConfigSpec.IntValue capacity;
private final ForgeConfigSpec.BooleanValue useEnergy;
public Controller() {
builder.push("controller");
baseUsage = builder.comment("The base energy used by the Controller").defineInRange("baseUsage", 0, 0, Integer.MAX_VALUE);
maxReceive = builder.comment("The maximum energy the Controller receives per tick").defineInRange("maxReceive", Integer.MAX_VALUE, 0, Integer.MAX_VALUE);
capacity = builder.comment("The energy capacity of the Controller").defineInRange("capacity", 32000, 0, Integer.MAX_VALUE);
useEnergy = builder.comment("Whether the Controller uses energy").define("useEnergy", true);
builder.pop();
}
public int getBaseUsage() {
return baseUsage.get();
}
public int getMaxReceive() {
return maxReceive.get();
}
public int getCapacity() {
return capacity.get();
}
public boolean getUseEnergy() {
return useEnergy.get();
}
}
}

View File

@@ -8,6 +8,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskFactoryIt
import com.raoulvdberge.refinedstorage.block.ControllerBlock;
import com.raoulvdberge.refinedstorage.block.MachineCasingBlock;
import com.raoulvdberge.refinedstorage.block.QuartzEnrichedIronBlock;
import com.raoulvdberge.refinedstorage.config.ServerConfig;
import com.raoulvdberge.refinedstorage.container.ControllerContainer;
import com.raoulvdberge.refinedstorage.container.FilterContainer;
import com.raoulvdberge.refinedstorage.item.*;
@@ -31,7 +32,9 @@ import net.minecraftforge.common.extensions.IForgeContainerType;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@@ -44,11 +47,13 @@ public final class RS {
public static final NetworkHandler NETWORK_HANDLER = new NetworkHandler();
public static final ItemGroup MAIN_GROUP = new MainItemGroup();
public static final Config CONFIG = new Config();
public static final ServerConfig SERVER_CONFIG = new ServerConfig();
public RS() {
DistExecutor.runWhenOn(Dist.CLIENT, () -> ClientSetup::new);
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, SERVER_CONFIG.getSpec());
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::onCommonSetup);
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(Block.class, this::onRegisterBlocks);
FMLJavaModLoadingContext.get().getModEventBus().addGenericListener(TileEntityType.class, this::onRegisterTiles);
@@ -153,13 +158,6 @@ public final class RS {
}
/* TODO
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
config = new RSConfig(null, e.getSuggestedConfigurationFile());
PROXY.preInit(e);
}
@EventHandler
public void onServerStarting(FMLServerStartingEvent e) {
e.registerServerCommand(new CommandCreateDisk());

View File

@@ -1,11 +1,6 @@
package com.raoulvdberge.refinedstorage;
import javax.annotation.Nullable;
public class RSOldConfig {
// private Configuration config;
private RSOldConfig originalClientVersion;
//region Energy
public int cableUsage;
public int constructorUsage;
@@ -81,17 +76,6 @@ public class RSOldConfig {
public int wirelessCraftingMonitorCancelAllUsage;
//endregion
//region Upgrades
public int rangeUpgradeUsage;
public int speedUpgradeUsage;
public int craftingUpgradeUsage;
public int stackUpgradeUsage;
public int silkTouchUpgradeUsage;
public int fortune1UpgradeUsagePerFortune;
public int fortune2UpgradeUsagePerFortune;
public int fortune3UpgradeUsagePerFortune;
//endregion
//region Readers and Writers
public int readerUsage;
public int writerUsage;
@@ -115,44 +99,12 @@ public class RSOldConfig {
private static final String PORTABLE_GRID = "portableGrid";
private static final String WIRELESS_FLUID_GRID = "wirelessFluidGrid";
private static final String WIRELESS_CRAFTING_MONITOR = "wirelessCraftingMonitor";
private static final String UPGRADES = "upgrades";
private static final String READER_WRITER = "readerWriter";
private static final String COVERS = "covers";
private static final String AUTOCRAFTING = "autocrafting";
//endregion
/*
public RSConfig(@Nullable RSConfig originalClientVersion, File configFile) {
this(originalClientVersion, new Configuration(configFile));
}
public RSConfig(@Nullable RSConfig originalClientVersion, Configuration config) {
this.originalClientVersion = originalClientVersion;
// this.config = config;
MinecraftForge.EVENT_BUS.register(this);
// this.loadConfig();
}*/
/*public Configuration getConfig() {
return config;
}*/
@Nullable
public RSOldConfig getOriginalClientVersion() {
return originalClientVersion;
}
/*@SubscribeEvent
public void onConfigChangedEvent(ConfigChangedEvent.OnConfigChangedEvent event) {
if (event.getModID().equalsIgnoreCase(RS.ID)) {
loadConfig();
}
}*/
/*
private void loadConfig() {
/*private void loadConfig() {
//region Energy
controllerBaseUsage = config.getInt("controllerBase", ENERGY, 0, 0, Integer.MAX_VALUE, "The base energy used by the Controller");
controllerMaxReceive = config.getInt("controllerMaxReceive", ENERGY, Integer.MAX_VALUE, 0, Integer.MAX_VALUE, "The maximum energy the controller receives per tick");
@@ -235,17 +187,6 @@ public class RSOldConfig {
wirelessCraftingMonitorCancelAllUsage = config.getInt("cancelAll", WIRELESS_CRAFTING_MONITOR, 5, 0, Integer.MAX_VALUE, "The energy used by the Wireless Crafting Monitor to cancel all tasks");
//endregion
//region Upgrades
rangeUpgradeUsage = config.getInt("range", UPGRADES, 8, 0, Integer.MAX_VALUE, "The additional energy used per Range Upgrade");
speedUpgradeUsage = config.getInt("speed", UPGRADES, 2, 0, Integer.MAX_VALUE, "The additional energy used per Speed Upgrade");
craftingUpgradeUsage = config.getInt("crafting", UPGRADES, 5, 0, Integer.MAX_VALUE, "The additional energy used per Crafting Upgrade");
stackUpgradeUsage = config.getInt("stack", UPGRADES, 12, 0, Integer.MAX_VALUE, "The additional energy used per Stack Upgrade");
silkTouchUpgradeUsage = config.getInt("silkTouch", UPGRADES, 15, 0, Integer.MAX_VALUE, "The additional energy used by the Silk Touch Upgrade");
fortune1UpgradeUsagePerFortune = config.getInt("fortune1", UPGRADES, 10, 0, Integer.MAX_VALUE, "The additional energy used by the Fortune 1 Upgrade");
fortune2UpgradeUsagePerFortune = config.getInt("fortune2", UPGRADES, 10, 0, Integer.MAX_VALUE, "The additional energy used by the Fortune 2 Upgrade");
fortune3UpgradeUsagePerFortune = config.getInt("fortune3", UPGRADES, 10, 0, Integer.MAX_VALUE, "The additional energy used by the Fortune 3 Upgrade");
//endregion
//region Readers and Writers
readerUsage = config.getInt("reader", READER_WRITER, 2, 0, Integer.MAX_VALUE, "The energy used by Readers");
writerUsage = config.getInt("writer", READER_WRITER, 2, 0, Integer.MAX_VALUE, "The energy used by Writers");

View File

@@ -0,0 +1,122 @@
package com.raoulvdberge.refinedstorage.config;
import net.minecraftforge.common.ForgeConfigSpec;
public class ServerConfig {
private ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder();
private ForgeConfigSpec spec;
private Controller controller;
private Upgrades upgrades;
public ServerConfig() {
controller = new Controller();
upgrades = new Upgrades();
spec = builder.build();
}
public Controller getController() {
return controller;
}
public Upgrades getUpgrades() {
return upgrades;
}
public ForgeConfigSpec getSpec() {
return spec;
}
public class Controller {
private final ForgeConfigSpec.IntValue baseUsage;
private final ForgeConfigSpec.IntValue maxReceive;
private final ForgeConfigSpec.IntValue capacity;
private final ForgeConfigSpec.BooleanValue useEnergy;
public Controller() {
builder.push("controller");
baseUsage = builder.comment("The base energy used by the Controller").defineInRange("baseUsage", 0, 0, Integer.MAX_VALUE);
maxReceive = builder.comment("The maximum energy the Controller receives per tick").defineInRange("maxReceive", Integer.MAX_VALUE, 0, Integer.MAX_VALUE);
capacity = builder.comment("The energy capacity of the Controller").defineInRange("capacity", 32000, 0, Integer.MAX_VALUE);
useEnergy = builder.comment("Whether the Controller uses energy").define("useEnergy", true);
builder.pop();
}
public int getBaseUsage() {
return baseUsage.get();
}
public int getMaxReceive() {
return maxReceive.get();
}
public int getCapacity() {
return capacity.get();
}
public boolean getUseEnergy() {
return useEnergy.get();
}
}
public class Upgrades {
private final ForgeConfigSpec.IntValue rangeUpgradeUsage;
private final ForgeConfigSpec.IntValue speedUpgradeUsage;
private final ForgeConfigSpec.IntValue craftingUpgradeUsage;
private final ForgeConfigSpec.IntValue stackUpgradeUsage;
private final ForgeConfigSpec.IntValue silkTouchUpgradeUsage;
private final ForgeConfigSpec.IntValue fortune1UpgradeUsage;
private final ForgeConfigSpec.IntValue fortune2UpgradeUsage;
private final ForgeConfigSpec.IntValue fortune3UpgradeUsage;
public Upgrades() {
builder.push("upgrades");
rangeUpgradeUsage = builder.comment("The additional energy used by the Range Upgrade").defineInRange("rangeUpgradeUsage", 8, 0, Integer.MAX_VALUE);
speedUpgradeUsage = builder.comment("The additional energy used by the Speed Upgrade").defineInRange("speedUpgradeUsage", 2, 0, Integer.MAX_VALUE);
craftingUpgradeUsage = builder.comment("The additional energy used by the Crafting Upgrade").defineInRange("craftingUpgradeUsage", 5, 0, Integer.MAX_VALUE);
stackUpgradeUsage = builder.comment("The additional energy used by the Stack Upgrade").defineInRange("stackUpgradeUsage", 12, 0, Integer.MAX_VALUE);
silkTouchUpgradeUsage = builder.comment("The additional energy used by the Silk Touch Upgrade").defineInRange("silkTouchUpgradeUsage", 15, 0, Integer.MAX_VALUE);
fortune1UpgradeUsage = builder.comment("The additional energy used by the Fortune 1 Upgrade").defineInRange("fortune1UpgradeUsage", 10, 0, Integer.MAX_VALUE);
fortune2UpgradeUsage = builder.comment("The additional energy used by the Fortune 2 Upgrade").defineInRange("fortune2UpgradeUsage", 12, 0, Integer.MAX_VALUE);
fortune3UpgradeUsage = builder.comment("The additional energy used by the Fortune 3 Upgrade").defineInRange("fortune3UpgradeUsage", 14, 0, Integer.MAX_VALUE);
builder.pop();
}
public int getRangeUpgradeUsage() {
return rangeUpgradeUsage.get();
}
public int getSpeedUpgradeUsage() {
return speedUpgradeUsage.get();
}
public int getCraftingUpgradeUsage() {
return craftingUpgradeUsage.get();
}
public int getStackUpgradeUsage() {
return stackUpgradeUsage.get();
}
public int getSilkTouchUpgradeUsage() {
return silkTouchUpgradeUsage.get();
}
public int getFortune1UpgradeUsage() {
return fortune1UpgradeUsage.get();
}
public int getFortune2UpgradeUsage() {
return fortune2UpgradeUsage.get();
}
public int getFortune3UpgradeUsage() {
return fortune3UpgradeUsage.get();
}
}
}

View File

@@ -40,21 +40,21 @@ public class UpgradeItem extends Item {
case NORMAL:
return 0;
case RANGE:
return RS.INSTANCE.config.rangeUpgradeUsage;
return RS.SERVER_CONFIG.getUpgrades().getRangeUpgradeUsage();
case SPEED:
return RS.INSTANCE.config.speedUpgradeUsage;
return RS.SERVER_CONFIG.getUpgrades().getSpeedUpgradeUsage();
case CRAFTING:
return RS.INSTANCE.config.craftingUpgradeUsage;
return RS.SERVER_CONFIG.getUpgrades().getCraftingUpgradeUsage();
case STACK:
return RS.INSTANCE.config.stackUpgradeUsage;
return RS.SERVER_CONFIG.getUpgrades().getStackUpgradeUsage();
case SILK_TOUCH:
return RS.INSTANCE.config.silkTouchUpgradeUsage;
return RS.SERVER_CONFIG.getUpgrades().getSilkTouchUpgradeUsage();
case FORTUNE_1:
return RS.INSTANCE.config.fortune1UpgradeUsagePerFortune;
return RS.SERVER_CONFIG.getUpgrades().getFortune1UpgradeUsage();
case FORTUNE_2:
return RS.INSTANCE.config.fortune2UpgradeUsagePerFortune;
return RS.SERVER_CONFIG.getUpgrades().getFortune2UpgradeUsage();
case FORTUNE_3:
return RS.INSTANCE.config.fortune3UpgradeUsagePerFortune;
return RS.SERVER_CONFIG.getUpgrades().getFortune3UpgradeUsage();
default:
throw new IllegalStateException("What even am I?");
}

View File

@@ -10,7 +10,7 @@ import net.minecraftforge.energy.IEnergyStorage;
public class ControllerBlockItem extends EnergyBlockItem {
public ControllerBlockItem(ControllerBlock block) {
super(block, new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1), block.getType() == ControllerBlock.Type.CREATIVE, () -> RS.CONFIG.getController().getCapacity());
super(block, new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1), block.getType() == ControllerBlock.Type.CREATIVE, () -> RS.SERVER_CONFIG.getController().getCapacity());
this.setRegistryName(block.getRegistryName());
this.addPropertyOverride(new ResourceLocation("energy_type"), (stack, world, entity) -> {

View File

@@ -49,9 +49,8 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
public void addItemColor(Item item, IItemColor itemColor) {
}
/*
private Map<ResourceLocation, Function<IBakedModel, IBakedModel>> bakedModelOverrides = new HashMap<>();
private List<Pair<Item, IItemColor>> itemColors = new LinkedList<>();
/*private List<Pair<Item, IItemColor>> itemColors = new LinkedList<>();
@Override
public void preInit(FMLPreInitializationEvent e) {
@@ -72,65 +71,11 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
itemColors.forEach(p -> Minecraft.getMinecraft().getItemColors().registerItemColorHandler(p.getRight(), p.getKey()));
}
@SubscribeEvent
public void registerModels(ModelRegistryEvent e) {
for (BlockBase block : blocksToRegister) {
block.registerModels(this);
}
for (Item item : itemsToRegister) {
if (item instanceof ItemBase) {
((ItemBase) item).registerModels(this);
}
}
}
@SubscribeEvent
public void onModelBake(ModelBakeEvent e) {
for (ModelResourceLocation resource : e.getModelRegistry().getKeys()) {
ResourceLocation key = new ResourceLocation(resource.getNamespace(), resource.getPath());
if (bakedModelOverrides.containsKey(key)) {
e.getModelRegistry().putObject(resource, bakedModelOverrides.get(key).apply(e.getModelRegistry().getObject(resource)));
}
}
}
@Override
public void addBakedModelOverride(ResourceLocation resource, Function<IBakedModel, IBakedModel> override) {
bakedModelOverrides.put(resource, override);
}
@Override
public void setModel(Block block, int meta, ModelResourceLocation resource) {
setModel(Item.getItemFromBlock(block), meta, resource);
}
@Override
public void setModel(Item item, int meta, ModelResourceLocation resource) {
ModelLoader.setCustomModelResourceLocation(item, meta, resource);
}
@Override
public void setModelVariants(Item item, ResourceLocation... variants) {
ModelBakery.registerItemVariants(item, variants);
}
@Override
public void setModelMeshDefinition(Block block, ItemMeshDefinition meshDefinition) {
ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(block), meshDefinition);
}
@Override
public void addModelLoader(Supplier<ICustomModelLoader> modelLoader) {
ModelLoaderRegistry.registerLoader(modelLoader.get());
}
@Override
public void setStateMapper(Block block, IStateMapper stateMapper) {
ModelLoader.setCustomStateMapper(block, stateMapper);
}
@Override
public void setTesr(Class<? extends TileEntity> tile, TileEntitySpecialRenderer tesr) {
ClientRegistry.bindTileEntitySpecialRenderer(tile, tesr);
@@ -139,7 +84,5 @@ public class ProxyClient extends ProxyCommon implements IModelRegistration {
@Override
public void addItemColor(Item item, IItemColor itemColor) {
itemColors.add(Pair.of(item, itemColor)); // ItemColors is only available in init.
}
*/
}*/
}

View File

@@ -1,10 +1,7 @@
package com.raoulvdberge.refinedstorage.proxy;
public class ProxyCommon {
/* TODO
protected List<Item> itemsToRegister = new LinkedList<>();
protected List<BlockBase> blocksToRegister = new LinkedList<>();
/* TODO
public void preInit(FMLPreInitializationEvent e) {
MinecraftForge.EVENT_BUS.register(this);
@@ -69,8 +66,6 @@ public class ProxyCommon {
API.instance().addExternalStorageProvider(StorageType.ITEM, new ExternalStorageProviderItem());
API.instance().addExternalStorageProvider(StorageType.FLUID, new ExternalStorageProviderFluid());
NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler());
MinecraftForge.EVENT_BUS.register(new NetworkNodeListener());
IntegrationInventorySorter.register();

View File

@@ -97,7 +97,8 @@ public class ScrollbarWidget implements IGuiEventListener {
@Override
public boolean mouseScrolled(double mouseX, double mouseY, double scrollDelta) {
if (isEnabled()) {
setOffset(offset + Math.max(Math.min(-(int) Math.round(scrollDelta), 1), -1));
setOffset(offset + Math.max(Math.min(-(int) scrollDelta, 1), -1));
return true;
}

View File

@@ -145,8 +145,8 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
private IReaderWriterManager readerWriterManager = new ReaderWriterManager(this);
private final IEnergy energy = new Energy(RS.CONFIG.getController().getCapacity());
private final EnergyProxy energyProxy = new EnergyProxy(this.energy, RS.CONFIG.getController().getMaxReceive());
private final IEnergy energy = new Energy(RS.SERVER_CONFIG.getController().getCapacity());
private final EnergyProxy energyProxy = new EnergyProxy(this.energy, RS.SERVER_CONFIG.getController().getMaxReceive());
private final LazyOptional<IEnergyStorage> energyProxyCap = LazyOptional.of(() -> energyProxy);
private final LazyOptional<INetworkNodeProxy<ControllerTile>> networkNodeProxyCap = LazyOptional.of(() -> this);
@@ -229,7 +229,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
}
if (type == ControllerBlock.Type.NORMAL) {
if (!RS.CONFIG.getController().getUseEnergy()) {
if (!RS.SERVER_CONFIG.getController().getUseEnergy()) {
this.energy.setStored(this.energy.getCapacity());
} else if (this.energy.extract(getEnergyUsage(), Action.SIMULATE) >= 0) {
this.energy.extract(getEnergyUsage(), Action.PERFORM);
@@ -620,7 +620,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
@Override
public int getEnergyUsage() {
int usage = RS.CONFIG.getController().getBaseUsage();
int usage = RS.SERVER_CONFIG.getController().getBaseUsage();
for (INetworkNode node : nodeGraph.all()) {
if (node.canUpdate()) {