package shedar.mods.ic2.nuclearcontrol.panel; import java.util.HashMap; import java.util.Map; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import shedar.mods.ic2.nuclearcontrol.IC2NuclearControl; import shedar.mods.ic2.nuclearcontrol.api.ICardSettingsWrapper; import shedar.mods.ic2.nuclearcontrol.api.IPanelDataSource; import shedar.mods.ic2.nuclearcontrol.gui.GuiInfoPanel; import shedar.mods.ic2.nuclearcontrol.utils.NuclearNetworkHelper; import cpw.mods.fml.client.FMLClientHandler; public class CardSettingsWrapperImpl implements ICardSettingsWrapper { private ItemStack card; private TileEntity panel; private Map<String, Object> updateSet; private GuiInfoPanel gui; private int slot; public CardSettingsWrapperImpl(ItemStack card, TileEntity panel, GuiInfoPanel gui, int slot) { if (!(card.getItem() instanceof IPanelDataSource)) { IC2NuclearControl.logger.error("CardHelper sould be used for IPanelDataSource items."); } this.card = card; this.panel = panel; updateSet = new HashMap<String, Object>(); this.gui = gui; this.slot = slot; } @Override public void setInt(String name, Integer value) { updateSet.put(name, value); } @Override public void setDouble(String name, double value) { updateSet.put(name, value); } @Override public void setString(String name, String value) { updateSet.put(name, value); } @Override public void setBoolean(String name, Boolean value) { updateSet.put(name, value); } @Override public void commit() { if (!updateSet.isEmpty()) { NuclearNetworkHelper.setCardSettings(card, panel, updateSet, slot); updateSet = new HashMap<String, Object>(); } } @Override public void closeGui() { gui.prevCard = null; FMLClientHandler.instance().getClient().displayGuiScreen(gui); } }