public Mob FindOrCreateMob(int objectId, int mobType) { if (objectToMobMap.ContainsKey(objectId)) { return(objectToMobMap[objectId]); } if (mobDictionary.ContainsKey(mobType)) { MobDef resType = mobDictionary[mobType]; Mob newMob = new Mob() { MobId = objectId, Name = resType.Name, HarvestableTier = resType.HarvestableTier, HarvestableType = resType.HarvestableType == null ? null : resType.HarvestableType.Type }; objectToMobMap.Add(objectId, newMob); if (MobRemoved != null) { MobEventArgs m = new MobEventArgs(newMob); foreach (System.EventHandler <MobEventArgs> e in MobAdded?.GetInvocationList()) { e.BeginInvoke(this, m, e.EndInvoke, null); } } return(newMob); } return(null); }
public Mob FindOrCreateMob(int objectId, int mobType) { if (objectToMobMap.ContainsKey(objectId)) { return(objectToMobMap[objectId]); } if (mobDictionary.ContainsKey(mobType)) { MobDef resType = mobDictionary[mobType]; Mob newMob = new Mob() { MobId = objectId, Name = resType.Name, HarvestableTier = resType.HarvestableTier, HarvestableType = resType.HarvestableType == null ? null : resType.HarvestableType.Type }; objectToMobMap.Add(objectId, newMob); MobAdded?.Invoke(this, new MobEventArgs(newMob)); return(newMob); } return(null); }