package net.scapeemulator.game.model.player; import java.util.EnumMap; import java.util.Map; public class PlayerVariables { public enum Variable { FIRST_LOGIN(1), SLAYER_TASK, SLAYER_INFO, HOME_LOCATION, // Runecrafting SMALL_POUCH(), MEDIUM_POUCH(), LARGE_POUCH(), GIANT_POUCH(), // Construction CON_FURN_REMOVE(false), HERALDRY_CREST; private final boolean persists; private final int defaultValue; private Variable() { this(0, true); } private Variable(int defaultValue) { this(defaultValue, true); } private Variable(boolean persists) { this(0, persists); } private Variable(int defaultValue, boolean persists) { this.defaultValue = defaultValue; this.persists = persists; } public boolean shouldPersist() { return persists; } } private final Map<Variable, Integer> vars; PlayerVariables() { vars = new EnumMap<Variable, Integer>(Variable.class); } public boolean hasVar(Variable var) { return vars.containsKey(var); } public int getVar(Variable var) { if (vars.containsKey(var)) { return vars.get(var); } setVar(var, var.defaultValue); return var.defaultValue; } public Map<Variable, Integer> getVariables() { return vars; } public void setVar(Variable var, int value) { vars.put(var, value); } }