/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.common.blocks; import mods.railcraft.common.core.RailcraftConfig; import mods.railcraft.common.modules.ModuleManager.Module; /** * * @author CovertJaguar <http://www.railcraft.info/> */ public abstract class BlockFactory { private boolean needsInit = true; public final String tag; public BlockFactory(String tag) { this.tag = tag; } public final void initBlock() { if (needsInit && isBlockEnabled()) { needsInit = false; doBlockInit(); } } protected boolean isBlockEnabled() { return RailcraftConfig.isBlockEnabled(tag); } protected abstract void doBlockInit(); public final void initRecipes(Module module) { if (!needsInit) doRecipeInit(module); } protected abstract void doRecipeInit(Module module); public final void finalizeBlocks(Module module) { if (!needsInit) doBlockFinalize(module); } protected void doBlockFinalize(Module module) { } }