/// <summary> /// Creates a new GameObject with the given parameters /// </summary> public static GameObject Create(GOEntry entry, IWorldLocation where, GOSpawnEntry spawnEntry = null, GOSpawnPoint spawnPoint = null) { var go = entry.GOCreator(); var handlerCreator = entry.HandlerCreator; go.Init(entry, spawnEntry, spawnPoint); if (handlerCreator != null) { go.Handler = handlerCreator(); } else { log.Warn("GOEntry {0} did not have a HandlerCreator set - Type: {1}", entry, entry.Type); go.Delete(); return null; } go.Phase = where.Phase; var pos = where.Position; if (spawnPoint == null) { pos.Z = where.Map.Terrain.GetGroundHeightUnderneath(pos); } where.Map.AddObject(go, ref pos); go.MarkUpdate(GameObjectFields.DYNAMIC); return go; }
/// <summary> /// Creates a new GameObject with the given parameters /// </summary> public static GameObject Create(GOEntry entry, GOTemplate templ) { var go = entry.GOCreator(); var handlerCreator = entry.HandlerCreator; go.Init(entry, templ); if (handlerCreator != null) { go.Handler = handlerCreator(); } else { log.Warn("GOEntry {0} did not have a HandlerCreator set - Type: {1}", entry, entry.Type); go.Delete(); return null; } return go; }
/// <summary> /// Creates a new GameObject with the given parameters /// </summary> public static GameObject Create(GOEntry entry, IWorldLocation where, GOSpawnEntry spawnEntry = null, GOSpawnPoint spawnPoint = null) { var go = entry.GOCreator(); var handlerCreator = entry.HandlerCreator; go.Init(entry, spawnEntry, spawnPoint); if (handlerCreator != null) { go.Handler = handlerCreator(); } else { log.Warn("GOEntry {0} did not have a HandlerCreator set - Type: {1}", entry, entry.Type); go.Delete(); return null; } go.Phase = where.Phase; var pos = where.Position; where.Map.AddObject(go, ref pos); return go; }