/** Loads data for the given atlas or creates a new one. */ public AtlasData getAtlasData(int atlasID, World world) { String key = getAtlasDataKey(atlasID); AtlasData data = null; if (world.isRemote) { // Since atlas data doesn't really belong to a single world-dimension, // it can be cached. This should fix #67 data = atlasDataClientCache.get(key); } if (data == null) { data = (AtlasData) world.loadData(AtlasData.class, key); if (data == null) { data = new AtlasData(key); world.setData(key, data); } if (world.isRemote) atlasDataClientCache.put(key, data); } return data; }