/** 设置配置 */ public virtual void initSceneID(int id) { _config = SceneConfig.get(id); _mapConfig = SceneMapConfig.get(_config.mapID); _placeConfig = ScenePlaceConfig.getSync(id); //绑定驱动类型 if (_config.instanceType == SceneInstanceType.ClientDriveSinglePlayerBattle) { driveType = SceneDriveType.ClientDriveAll; } else { driveType = CommonSetting.sceneDriveType; } originPos.setByIArr(_mapConfig.origin); sizePos.setByIArr(_mapConfig.size); endPos.x = originPos.x + sizePos.x; endPos.y = originPos.y + sizePos.y; endPos.z = originPos.z + sizePos.z; method.onSetConfig(); preInit(); }
public static ScenePlaceConfig getSync(int id) { if (_loadedSet.contains(id)) { return(get(id)); } ScenePlaceConfig cConfig = (ScenePlaceConfig)BaseC.config.getSplitConfigSync(ConfigType.ScenePlaceEditor, CommonSetting.scenePlaceEditor, id); if (cConfig != null) { addSceneConfig(cConfig); } return(get(id)); }
public static void load(int id, Action <ScenePlaceConfig> func) { if (_loadedSet.contains(id)) { func(get(id)); return; } BaseC.config.loadSplit(ConfigType.ScenePlaceEditor, CommonSetting.scenePlaceEditor, id, v => { ScenePlaceConfig cConfig = (ScenePlaceConfig)v; addSceneConfig(cConfig); func(get(id)); }); }
/** 重新加载配置 */ public void onReloadConfig() { int id = _config.id; _config = SceneConfig.get(id); _placeConfig = ScenePlaceConfig.get(id); Unit[] values; Unit v; for (int i = (values = _units.getValues()).Length - 1; i >= 0; --i) { if ((v = values[i]) != null) { v.onReloadConfig(); } } }
/// <summary> /// 读完所有表后处理 /// </summary> public static void afterReadConfigAll() { LongObjectMap <ScenePlaceElementConfig> fDic; if (!(fDic = _dic).isEmpty()) { ScenePlaceElementConfig[] values; ScenePlaceElementConfig v; for (int i = (values = fDic.getValues()).Length - 1; i >= 0; --i) { if ((v = values[i]) != null) { ScenePlaceConfig.get(v.sceneID).addElement(v); } } } }
public static void addSceneConfig(ScenePlaceConfig config) { ScenePlaceConfig sConfig = _dic.get(config.id); if (sConfig == null) { _dic.put(config.id, config); } else { ScenePlaceElementConfig[] values2; ScenePlaceElementConfig v2; for (int i2 = (values2 = config.elements.getValues()).Length - 1; i2 >= 0; --i2) { if ((v2 = values2[i2]) != null) { sConfig.addElement(v2); } } } }