package NET.worlds.scape; import NET.worlds.core.IniFile; import java.util.Vector; public class ProgressiveAdder implements FrameHandler { Vector addList = new Vector(); static ProgressiveAdder theProgressiveAdder = null; public static ProgressiveAdder get() { if (theProgressiveAdder == null) { theProgressiveAdder = new ProgressiveAdder(); } return theProgressiveAdder; } ProgressiveAdder() { } public boolean enabled() { return IniFile.gamma().getIniInt("ProgressiveAvLoading", 0) == 1; } void scheduleForAdd(WObject parent, WObject child) { synchronized (this.addList) { WObject[] objs = new WObject[]{parent, child}; this.addList.addElement(objs); } } @Override public boolean handle(FrameEvent fe) { synchronized (this.addList) { if (this.addList.size() > 0) { WObject[] objs = (WObject[])this.addList.elementAt(0); WObject parent = objs[0]; WObject child = objs[1]; if (!parent.discarded && !child.discarded) { parent.add(child); } this.addList.removeElementAt(0); } return true; } } }