//+ PREFAB CONTROL /// <summary> /// Gets all the prefabs from the given IDs /// </summary> /// <param name="dir">The lookup director</param> /// <param name="ids">The IDs</param> public static GameObject[] GetPrefabs(this LookupDirector dir, Identifiable.Id[] ids) { List <GameObject> objs = new List <GameObject>(); foreach (Identifiable.Id id in ids) { objs.Add(dir.GetPrefab(id)); } return(objs.ToArray()); }
private void CommandLoadPrefabs() //load the prefab maps we need for randomization { lookupDirector = SRSingleton <GameContext> .Instance.LookupDirector; var slimes = Identifiable.SLIME_CLASS; slimePrefabToId = new Dictionary <String, Identifiable.Id>(); foreach (Identifiable.Id id in slimes) { slimePrefabToId.Add(lookupDirector.GetPrefab(id).ToString(), id); } var produce = Identifiable.FRUIT_CLASS.ToList(); produce.AddRange(Identifiable.VEGGIE_CLASS); producePrefabToId = new Dictionary <string, Identifiable.Id>(); foreach (Identifiable.Id id in produce) { producePrefabToId.Add(lookupDirector.GetPrefab(id).ToString(), id); } }
public static GameObject GetRandomizedSlime(GameObject prefab) //currently no largo support, in future this will be added here { if (slimePrefabToId != null && !slimePrefabToId.ContainsKey(prefab.ToString())) //this slime is a largo. for now just return it { return(prefab); } Identifiable.Id id = slimePrefabToId[prefab.ToString()]; if (!allowedSlimes.Contains(id)) //this means the slime was excluded via an option, return back the original (don't do anything) { return(prefab); } switch (slime_randomMode) { case RandomMode.DISABLED: //randomization deactivated return(prefab); case RandomMode.CHAOTIC: //no mapping return(lookupDirector.GetPrefab(allowedSlimes.ElementAt(runTimeRand.Next(allowedSlimes.Count)))); case RandomMode.MAPPED_NODUPES: //mapping return(lookupDirector.GetPrefab(slimeMap[slimePrefabToId[prefab.ToString()]])); case RandomMode.MAPPED_DUPES: //also mapping return(lookupDirector.GetPrefab(slimeMap[slimePrefabToId[prefab.ToString()]])); default: //do nothing Log("Warning: Invalid randomization mode: " + slime_randomMode); return(prefab); } }
public static GameObject GetLargoPrefab(this LookupDirector director, Identifiable.Id slimeA, Identifiable.Id slimeB) { Identifiable.Id largo = Identifiable.Id.NONE; string nameA = slimeA.ToString().Replace("_SLIME", ""); string nameB = slimeB.ToString().Replace("_SLIME", ""); string largoA = $"{nameA}_{nameB}_LARGO"; string largoB = $"{nameB}_{nameA}_LARGO"; object result = Enum.Parse(typeof(Identifiable.Id), largoA) ?? Enum.Parse(typeof(Identifiable.Id), largoB); if (result != null) { largo = (Identifiable.Id)result; } return(largo == Identifiable.Id.NONE ? null : director.GetPrefab(largo)); }
// Get Component Methods public static Identifiable GetIdentifiable(this LookupDirector director, Identifiable.Id ID) { return(director.GetPrefab(ID).GetComponent <Identifiable>()); }
// Initializes the Extension internal static void InitExtension(this LookupDirector director) { // Required prefabs GameObject gingerSpawnResource = director.GetPrefab(Identifiable.Id.GINGER_VEGGIE).CreatePrefabCopy(); gingerSpawnResource.GetComponent <ResourceCycle>().unripeGameHours = 12; GameObject kookadobaSpawnResource = director.GetPrefab(Identifiable.Id.KOOKADOBA_FRUIT).CreatePrefabCopy(); kookadobaSpawnResource.GetComponent <ResourceCycle>().unripeGameHours = 6; // Load garden resources gardenResources.Add(Identifiable.Id.BEET_VEGGIE, director.GetPrefab(Identifiable.Id.BEET_VEGGIE)); gardenResources.Add(Identifiable.Id.CARROT_VEGGIE, director.GetPrefab(Identifiable.Id.CARROT_VEGGIE)); gardenResources.Add(Identifiable.Id.GINGER_VEGGIE, gingerSpawnResource); gardenResources.Add(Identifiable.Id.OCAOCA_VEGGIE, director.GetPrefab(Identifiable.Id.OCAOCA_VEGGIE)); gardenResources.Add(Identifiable.Id.ONION_VEGGIE, director.GetPrefab(Identifiable.Id.BEET_VEGGIE)); gardenResources.Add(Identifiable.Id.PARSNIP_VEGGIE, director.GetPrefab(Identifiable.Id.PARSNIP_VEGGIE)); gardenResources.Add(Identifiable.Id.CUBERRY_FRUIT, director.GetPrefab(Identifiable.Id.CUBERRY_FRUIT)); gardenResources.Add(Identifiable.Id.KOOKADOBA_FRUIT, kookadobaSpawnResource); gardenResources.Add(Identifiable.Id.LEMON_FRUIT, director.GetPrefab(Identifiable.Id.LEMON_FRUIT)); gardenResources.Add(Identifiable.Id.MANGO_FRUIT, director.GetPrefab(Identifiable.Id.MANGO_FRUIT)); gardenResources.Add(Identifiable.Id.PEAR_FRUIT, director.GetPrefab(Identifiable.Id.PEAR_FRUIT)); gardenResources.Add(Identifiable.Id.POGO_FRUIT, director.GetPrefab(Identifiable.Id.POGO_FRUIT)); }