public override GameObject GetGameObject() { if (PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.Seamoth), out string seamothFileName)) { GameObject prefab = Resources.Load <GameObject>(seamothFileName); GameObject gameObject = GameObject.Instantiate(prefab); prefab.SetActive(false); gameObject.SetActive(false); SeaMoth seaMoth = gameObject.GetComponent <SeaMoth>(); SeamothCloneBehaviour seamothCloneBehaviour = gameObject.EnsureComponent <SeamothCloneBehaviour>(); typeof(SeaMoth).GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.Static).ForEach((x) => { try { x.SetValue(seamothCloneBehaviour, x.GetValue(seaMoth)); } catch { } }); seamothCloneBehaviour.energyInterface = seaMoth.energyInterface; GameObject.DestroyImmediate(seaMoth); gameObject.SetActive(true); return(gameObject); } return(GameObject.CreatePrimitive(PrimitiveType.Cube)); }
public override IEnumerator GetGameObjectAsync(IOut <GameObject> gameObject) { IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Alterra/DataBoxes/BeaconDataBox.prefab"); yield return(request); request.TryGetPrefab(out GameObject prefab); GameObject obj = GameObject.Instantiate(prefab); obj.name = ClassID; obj.SetActive(false); obj.GetComponent <PrefabIdentifier>().classId = this.ClassID; BlueprintHandTarget blueprintHandTarget = obj.GetComponent <BlueprintHandTarget>(); blueprintHandTarget.alreadyUnlockedTooltip = this.alreadyUnlockedTooltip; blueprintHandTarget.primaryTooltip = this.primaryTooltip; blueprintHandTarget.secondaryTooltip = this.secondaryTooltip; blueprintHandTarget.unlockTechType = this.unlockTechType; obj.SetActive(true); gameObject.Set(obj); }
private static float fActiveModeHealthRegenMultiplier = 5f; // Health regeneration is multiplied by this amount in active mode protected void Start() { string RCFilename; if (thermalReactorCharge is null && PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.Exosuit), out RCFilename)) { AddressablesUtility.LoadAsync <GameObject>(RCFilename).Completed += (x) => { GameObject gameObject1 = x.Result; Exosuit exosuit = gameObject1?.GetComponent <Exosuit>(); thermalReactorCharge = exosuit?.thermalReactorCharge; }; } if (sonarSound is null && PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.Seamoth), out RCFilename)) { AddressablesUtility.LoadAsync <GameObject>(RCFilename).Completed += (x) => { GameObject gameObject1 = x.Result; SeaMoth seamoth = gameObject1?.GetComponent <SeaMoth>(); if (seamoth?.sonarSound != null) { sonarSound = this.gameObject.AddComponent <FMOD_CustomEmitter>(); sonarSound.SetAsset(seamoth.sonarSound.asset); sonarSound.UpdateEventAttributes(); } foreach (var r in gameObject1.GetComponentsInChildren <Renderer>()) { } }; } }
private void Populate() { Object[] assets = AssetDatabase.GetAllAssetPaths().Where(a => a.StartsWith("Assets/Resources/Props/")).Select(a => AssetDatabase.LoadAssetAtPath <GameObject>(a)).ToArray(); PrefabDatabase database = target as PrefabDatabase; database.Prefabs.Clear(); database.Labels.Clear(); foreach (var asset in assets) { GameObject go = asset as GameObject; if (go != null) { string[] lables = AssetDatabase.GetLabels(asset); string path = AssetDatabase.GetAssetPath(asset); WorldProp prop = go.GetComponent <WorldProp>(); if (prop != null) { database.Prefabs.Add(new PrefabDatabase.PrefabEntry(prop.name, lables, AssetDatabase.AssetPathToGUID(path), path.Replace("Assets/Resources/", "").Replace("/" + prop.name + ".prefab", ""))); database.Labels.AddRange(lables.Where(l => !database.Labels.Contains(l))); } } } EditorUtility.SetDirty(target); AssetDatabase.SaveAssets(); }
public Optional <GameObject> Spawn(Entity entity, Optional <GameObject> parent) { GameObject prefabForTechType = CraftData.GetPrefabForTechType(entity.TechType, false); if (prefabForTechType == null && !PrefabDatabase.TryGetPrefab(entity.ClassId, out prefabForTechType)) { return(Optional <GameObject> .Of(Utils.CreateGenericLoot(entity.TechType))); } GameObject gameObject = Utils.SpawnFromPrefab(prefabForTechType, null); gameObject.transform.position = entity.Position; gameObject.transform.localScale = entity.Scale; if (parent.IsPresent()) { gameObject.transform.SetParent(parent.Get().transform, true); } gameObject.transform.localRotation = entity.Rotation; GuidHelper.SetNewGuid(gameObject, entity.Guid); gameObject.SetActive(true); // Makes movable objects movable... we can probably do this before the server sends the spawner packet? if (gameObject.GetComponent <Rigidbody>() == null) { gameObject.AddComponent <Rigidbody>(); } LargeWorldEntity.Register(gameObject); CrafterLogic.NotifyCraftEnd(gameObject, entity.TechType); return(Optional <GameObject> .Of(gameObject)); }
public Optional <GameObject> Spawn(Entity entity, Optional <GameObject> parent) { TechType techType = entity.TechType.Enum(); GameObject prefab; if (!PrefabDatabase.TryGetPrefab(entity.ClassId, out prefab)) { prefab = CraftData.GetPrefabForTechType(techType, false); if (prefab == null) { return(Optional <GameObject> .Of(Utils.CreateGenericLoot(techType))); } } GameObject gameObject = Utils.SpawnFromPrefab(prefab, null); gameObject.transform.position = entity.Position; gameObject.transform.localScale = entity.Scale; if (parent.IsPresent()) { gameObject.transform.SetParent(parent.Get().transform, true); } gameObject.transform.localRotation = entity.Rotation; GuidHelper.SetNewGuid(gameObject, entity.Guid); gameObject.SetActive(true); LargeWorldEntity.Register(gameObject); CrafterLogic.NotifyCraftEnd(gameObject, techType); return(Optional <GameObject> .Of(gameObject)); }
public Optional <GameObject> Spawn(Entity entity, Optional <GameObject> parent) { TechType techType = entity.TechType.Enum(); GameObject prefab; IPrefabRequest prefabRequest = PrefabDatabase.GetPrefabAsync(entity.ClassId); if (!prefabRequest.TryGetPrefab(out prefab)) // I realize its more code but Sorry couldnt stand all the warnings { prefab = CraftData.GetPrefabForTechType(techType, false); if (prefab == null) { return(Optional <GameObject> .Of(Utils.CreateGenericLoot(techType))); } } GameObject gameObject = Utils.SpawnFromPrefab(prefab, null); gameObject.transform.position = entity.Position; gameObject.transform.localScale = entity.Scale; if (parent.IsPresent()) { gameObject.transform.SetParent(parent.Get().transform, true); } gameObject.transform.localRotation = entity.Rotation; gameObject.SetActive(true); NitroxIdentifier.SetNewId(gameObject, entity.Id); LargeWorldEntity.Register(gameObject); CrafterLogic.NotifyCraftEnd(gameObject, techType); return(Optional <GameObject> .Of(gameObject)); }
/// <summary> /// It will perform all necessary steps to serialize and save all configs from the entities on the current project /// </summary> private static void Save() { var prefabList = GetPrefabListFromBolt(); if (prefabList != null && prefabList.Count != 0) { var updateList = new List <UpdateItem>(); foreach (var prefabID in prefabList) { var go = PrefabDatabase.Find(prefabID); if (go != null) { var updateItem = BuildUpdateItem(go); if (updateItem != null) { updateList.Add(updateItem); } } } JsonSerializerUpdateUtils.SaveData(updateList, SerializedDataPath); BoltLog.Info("Save DONE!"); } else { BoltLog.Warn("No prefabs found to be serialized"); } }
// Token: 0x06002BB7 RID: 11191 RVA: 0x00104FDC File Offset: 0x001031DC private static void CreatePowerPreview(TechType constructableTechType, GameObject ghostModel) { GameObject gameObject = null; string poweredPrefabName = CraftData.GetPoweredPrefabName(constructableTechType); if (poweredPrefabName != string.Empty) { gameObject = PrefabDatabase.GetPrefabForFilename(poweredPrefabName); } if (gameObject != null) { PowerRelay component = gameObject.GetComponent <PowerRelay>(); if (component.powerFX != null && component.powerFX.attachPoint != null) { PowerFX powerFX = ghostModel.AddComponent <PowerFX>(); powerFX.attachPoint = new GameObject { transform = { parent = ghostModel.transform, localPosition = component.powerFX.attachPoint.localPosition } }.transform; } PowerRelay powerRelay = ghostModel.AddComponent <PowerRelay>(); powerRelay.maxOutboundDistance = component.maxOutboundDistance; powerRelay.dontConnectToRelays = component.dontConnectToRelays; if (component.internalPowerSource != null) { powerRelay.internalPowerSource = ghostModel.AddComponent <PowerSource>(); } } }
public static void Postfix() { foreach (var prefab in CustomPrefabHandler.customPrefabs) { PrefabDatabase.AddToCache(prefab.PrefabFileName, prefab.GetResource() as GameObject); PrefabDatabase.prefabFiles[prefab.ClassID] = prefab.PrefabFileName; } }
public static void PreparePrefabDatabase() { var originPrefabFiles = PrefabDatabase.prefabFiles; if (originPrefabFiles.Count == 0) { PrefabDatabase.LoadPrefabDatabase(SNUtils.prefabDatabaseFilename); } }
public void SpawnNetworkTechType(TechType type, Vector3 position, Quaternion rotation) { string classId = ClassIDForTechType[type]; if (PrefabDatabase.TryGetPrefabFilename(classId, out string filename)) { GameObject go = PhotonNetwork.Instantiate(filename, position, rotation, 0); } }
public static void PostFix() { foreach (var v in customPrefabs) { Debug.Log("Patching Custom Resource " + v.Path + " " + v.Key); PrefabDatabase.AddToCache(v.Path, v.LoadResource() as GameObject); PrefabDatabase.prefabFiles[v.Key] = v.Path; } }
void DrawPrefabInfo(AscensionEntity entity) { PrefabType prefabType = PrefabUtility.GetPrefabType(entity.gameObject); #if DEBUG EditorGUILayout.LabelField("Type", prefabType.ToString()); EditorGUILayout.LabelField("Scene Id", entity.SceneGuid.ToString()); #endif switch (prefabType) { case PrefabType.Prefab: case PrefabType.PrefabInstance: EditorGUILayout.LabelField("Id", entity.prefabId.ToString()); if (entity.prefabId < 0) { EditorGUILayout.HelpBox("Prefab id not set, run the 'Ascension/Emit Code' menu option to correct", MessageType.Error); } if (prefabType == PrefabType.Prefab) { if (PrefabDatabase.Contains(entity) == false) { EditorGUILayout.HelpBox("Prefab lookup not valid, run the 'Ascension/Emit Code' menu option to correct", MessageType.Error); } } break; case PrefabType.None: if (entity.prefabId != 0) { // force 0 prefab id entity.prefabId = 0; // set dirty EditorUtility.SetDirty(this); } DEditorGUI.Disabled(() => { EditorGUILayout.IntField("Prefab Id", entity.prefabId); }); break; case PrefabType.DisconnectedPrefabInstance: entity.prefabId = EditorGUILayout.IntField("Prefab Id", entity.prefabId); if (entity.prefabId < 0) { EditorGUILayout.HelpBox("Prefab Id not set", MessageType.Error); } break; } }
public void spawnresource(string prefab) { // if parameter is prefabID if (PrefabDatabase.TryGetPrefabFilename(prefab, out string prefabPath)) { prefab = prefabPath; } Utils.CreatePrefab(Resources.Load <GameObject>(prefab)); }
public static void FixPrefabDB() { Debug.Log("[UM4SN] Fixing prefab database"); foreach (KeyValuePair <string, GameObject> kvp in customTechGameObjects) { PrefabDatabase.AddToCache(kvp.Key, kvp.Value); } foreach (KeyValuePair <string, string> kvp in customTechUuids) { PrefabDatabase.prefabFiles[kvp.Key] = kvp.Value; } }
public override GameObject GetGameObject() { string classid = CraftData.GetClassIdForTechType(TechType.VehicleArmorPlating); if (PrefabDatabase.TryGetPrefabFilename(classid, out string filename)) { var prefab = Resources.Load <GameObject>(filename); var obj = GameObject.Instantiate(prefab); // Get the TechTags and PrefabIdentifiers var techTag = obj.EnsureComponent <TechTag>(); var prefabIdentifier = obj.GetComponent <PrefabIdentifier>(); // Change them so they fit to our requirements. techTag.type = TechType; prefabIdentifier.ClassId = ClassID; return(obj); } return(null); /* * // Get the ElectricalDefense module prefab and instantiate it * var path = "WorldEntities/Tools/Compass"; * var prefab = Resources.Load<GameObject>(path); * var obj = GameObject.Instantiate(prefab); * * // Get the TechTags and PrefabIdentifiers * var techTag = obj.GetComponent<TechTag>(); * var prefabIdentifier = obj.GetComponent<PrefabIdentifier>(); * * // Change them so they fit to our requirements. * techTag.type = TechType; * prefabIdentifier.ClassId = ClassID; * * var pick = obj.GetComponent<Pickupable>(); * if (pick == null) * { * CattleLogger.Message("Pickupable is Null"); * } else * { * if (pick.AllowedToPickUp()) * { * CattleLogger.Message("Allowed to pick up"); * } else * { * CattleLogger.Message("NOT Allowed to pick up"); * } * } * * return obj; */ }
private IEnumerator LoadExosuitResourcesAsync() { IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Tools/Exosuit.prefab"); yield return(request); if (!request.TryGetPrefab(out GameObject prefab)) { BZLogger.Debug("Cannot load Exosuit prefab!"); yield break; } BZLogger.Debug("Exosuit prefab loaded!"); GameObject exosuitResource = UWE.Utils.InstantiateDeactivated(prefab, transform, Vector3.zero, Quaternion.identity); exosuitResource.GetComponent <Exosuit>().enabled = false; exosuitResource.GetComponent <Rigidbody>().isKinematic = true; exosuitResource.GetComponent <WorldForces>().enabled = false; UWE.Utils.ZeroTransform(exosuitResource.transform); GameObject exoStorage = objectHelper.FindDeepChild(exosuitResource.transform, "Exosuit_01_storage"); objectHelper.GetPrefabClone(ref exoStorage, StorageLeft.transform, true, "model", out GameObject leftStorageModel); leftStorageModel.SetActive(false); objectHelper.GetPrefabClone(ref leftStorageModel, StorageRight.transform, true, "model", out GameObject rightStorageModel); rightStorageModel.SetActive(false); BoxCollider colliderLeft = StorageLeft.AddComponent <BoxCollider>(); colliderLeft.enabled = false; colliderLeft.size = new Vector3(1.0f, 0.4f, 0.8f); BoxCollider colliderRight = StorageRight.AddComponent <BoxCollider>(); colliderRight.enabled = false; colliderRight.size = new Vector3(1.0f, 0.4f, 0.8f); ColorizationHelper.AddRendererToSkyApplier(gameObject, leftStorageModel, Skies.Auto); ColorizationHelper.AddRendererToColorCustomizer(gameObject, leftStorageModel, false, new int[] { 0 }); ColorizationHelper.AddRendererToColorCustomizer(gameObject, rightStorageModel, false, new int[] { 0 }); ColorizationHelper.AddRendererToSkyApplier(gameObject, rightStorageModel, Skies.Auto); Destroy(exosuitResource); isGraphicsReady = true; yield break; }
private IEnumerator FinalSetup() { IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("Submarine/Build/SmallLocker.prefab"); yield return(request); request.TryGetPrefab(out GameObject prefab); lockerPrefab = prefab; bPrefabsLoaded = true; CreatePicker(); CreateCustomizeScreen(); yield break; }
protected void Start() { #pragma warning disable CS0612 // Type or member is obsolete if (repulsionCannonFireSound is null && PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.RepulsionCannon), out var RCFilename)) { AddressablesUtility.LoadAsync <GameObject>(RCFilename).Completed += (x) => { var gameObject1 = x.Result; var component = gameObject1?.GetComponent <RepulsionCannon>(); repulsionCannonFireSound = component?.shootSound; }; } if ((stasisRifleFireSound is null || stasisRifleEvent is null) && PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.StasisRifle), out var SRFilename)) { AddressablesUtility.LoadAsync <GameObject>(SRFilename).Completed += (x) => { var gameObject2 = x.Result; var component2 = gameObject2?.GetComponent <StasisRifle>(); stasisRifleFireSound = component2?.fireSound; stasisRifleEvent = component2?.chargeBegin; }; } if (modeChangeSound is null && PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.PropulsionCannon), out var PCFilename)) { AddressablesUtility.LoadAsync <GameObject>(PCFilename).Completed += (x) => { var gameObject3 = x.Result; var component3 = gameObject3?.GetComponent <PropulsionCannon>(); modeChangeSound = component3?.shootSound; }; } if (laserShootSound is null && PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.Welder), out var WFilename)) { AddressablesUtility.LoadAsync <GameObject>(WFilename).Completed += (x) => { var gameObject4 = x.Result; var component4 = gameObject4?.GetComponent <Welder>(); laserShootSound = component4?.weldSound; }; } #pragma warning restore CS0612 // Type or member is obsolete laserEndParticleSystem = LaserParticles.transform.Find("Laserend").gameObject.GetComponent <ParticleSystem>(); scaleParticleSystem = LaserParticles.transform.Find("scale").GetComponent <ParticleSystem>(); }
private GameObject CreateGameObject(TechType techType, string classId) { IPrefabRequest prefabRequest = PrefabDatabase.GetPrefabAsync(classId); if (!prefabRequest.TryGetPrefab(out GameObject prefab)) { prefab = CraftData.GetPrefabForTechType(techType, false); if (prefab == null) { return(Utils.CreateGenericLoot(techType)); } } return(Utils.SpawnFromPrefab(prefab, null)); }
public Optional <GameObject> Spawn(Entity entity, Optional <GameObject> parent, EntityCell cellRoot) { TechType techType = entity.TechType.Enum(); GameObject prefab; IPrefabRequest prefabRequest = PrefabDatabase.GetPrefabAsync(entity.ClassId); if (!prefabRequest.TryGetPrefab(out prefab)) // I realize its more code but Sorry couldnt stand all the warnings { prefab = CraftData.GetPrefabForTechType(techType, false); if (prefab == null) { return(Optional.Of(Utils.CreateGenericLoot(techType))); } } GameObject gameObject = Utils.SpawnFromPrefab(prefab, null); gameObject.transform.position = entity.Transform.Position; gameObject.transform.rotation = entity.Transform.Rotation; gameObject.transform.localScale = entity.Transform.LocalScale; NitroxEntity.SetNewId(gameObject, entity.Id); CrafterLogic.NotifyCraftEnd(gameObject, techType); if (parent.HasValue) { gameObject.transform.SetParent(parent.Value.transform, true); } if (parent.HasValue && !parent.Value.GetComponent <LargeWorldEntityCell>()) { LargeWorldEntity.Register(gameObject); // This calls SetActive on the GameObject } else { gameObject.SetActive(true); } Optional <EntityMetadataProcessor> metadataProcessor = EntityMetadataProcessor.FromMetaData(entity.Metadata); if (metadataProcessor.HasValue) { metadataProcessor.Value.ProcessMetadata(gameObject, entity.Metadata); } return(Optional.Of(gameObject)); }
void Footer() { GUILayout.BeginHorizontal(); //var version = Assembly.GetExecutingAssembly().GetName().Version; GUILayout.Label(string.Format("{0} ({1})", version, Core.IsDebugMode ? "DEBUG" : "RELEASE"), EditorStyles.miniLabel); GUILayout.FlexibleSpace(); PrefabDatabase db = PrefabDatabase.Instance; if (db.DatabaseMode == PrefabDatabaseMode.ManualScan) { if (DEditorGUI.IconButton("refresh")) { AscensionCompiler.UpdatePrefabsDatabase(); Debug.Log("Upading prefab database..."); } GUILayout.Space(8); } if (DEditorGUI.IconButton("code-emit")) { if (RuntimeSettings.Instance.compileAsDll) { AscensionDataAssemblyCompiler.Run(); } else { AscensionDataAssemblyCompiler.CodeEmit(); } Debug.Log("Compiling project... " + ProjectPath); } GUILayout.Space(8); if (DEditorGUI.IconButton("save-project")) { Save(); Debug.Log("Saving project... " + ProjectPath); } GUILayout.EndHorizontal(); }
private void GenerateViewsByInfo <TModel>(Transform parent, PrefabDatabase infos, IEnumerable <TModel> models, Action <BaseView> created = null) where TModel : class { foreach (var m in models) { var prefab = infos[m.GetType().AssemblyQualifiedName]; if (prefab != null) { var inst = Instantiate(prefab); inst.transform.SetParent(parent); var view = inst.GetComponentInChildren <BaseView>(); view.Load(m, this); created?.Invoke(view); } } }
protected void Start() { if (repulsionCannonFireSound is null) { if (PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.RepulsionCannon), out var RCFilename)) { var gameObject1 = Resources.Load <GameObject>(RCFilename); var component = gameObject1.GetComponent <RepulsionCannon>(); repulsionCannonFireSound = component.shootSound; gameObject1.SetActive(false); } if (PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.StasisRifle), out var SRFilename)) { var gameObject2 = Resources.Load <GameObject>(SRFilename); var component2 = gameObject2.GetComponent <StasisRifle>(); stasisRifleFireSound = component2.fireSound; stasisRifleEvent = component2.chargeBegin; gameObject2.SetActive(false); } if (PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.PropulsionCannon), out var PCFilename)) { var gameObject3 = Resources.Load <GameObject>(PCFilename); var component3 = gameObject3.GetComponent <PropulsionCannon>(); modeChangeSound = component3.shootSound; gameObject3.SetActive(false); } if (PrefabDatabase.TryGetPrefabFilename(CraftData.GetClassIdForTechType(TechType.Welder), out var WFilename)) { var gameObject4 = Resources.Load <GameObject>(WFilename); var component4 = gameObject4.GetComponent <Welder>(); laserShootSound = component4.weldSound; gameObject4.SetActive(false); } Transform transform1; laserEndParticleSystem = LaserParticles.transform.Find("Laserend").gameObject.GetComponent <ParticleSystem>(); scaleParticleSystem = LaserParticles.transform.Find("scale").GetComponent <ParticleSystem>(); } else { rigidbody.detectCollisions = true; } }
private IEnumerator LoadBiodomeRobotArmResourcesAsync() { IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Alterra/Base/biodome_Robot_Arm.prefab"); yield return(request); if (!request.TryGetPrefab(out robotArmResource)) { BZLogger.Warn("Cannot load [biodome_robot_arm] prefab!"); yield break; } BZLogger.Debug("Resource loaded: [biodome_robot_arm]"); Utils.ZeroTransform(robotArmResource.transform); yield break; }
private static void CreateButtonPrefab() { GameObject prefab = null; string classId = CraftData.GetClassIdForTechType(TechType.SmallLocker); string logtmp = ("InLine CreateButton Prefab - MrPurple6411 way - " + classId); QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Warn, logtmp); string filename; if (PrefabDatabase.TryGetPrefabFilename(classId, out filename)) { QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Warn, "InLine CreateButton Prefab - MrPurple6411 way - trygetprefabfilename"); prefab = Resources.Load <GameObject>(filename); Mod.PrintObject(prefab, "asdf1234"); } else { QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Warn, "InLine CreateButton Prefab - MrPurple6411 way - bad 1"); } if (prefab != null) { /* * GameObject smallLocker = Resources.Load<GameObject>("Submarine/Build/SmallLocker.prefab"); * //QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Warn, "InLine CreateButton Prefab - DEV Step 02"); * //Mod.PrintObject(smallLocker, "asdf1234"); //Thats the Problem for the Null Reference Error * QModManager.Utility.Logger.Log(QModManager.Utility.Logger.Level.Warn, "InLine CreateButton Prefab - DEV Step 02-01"); */ var signInput = prefab.GetComponentInChildren <uGUI_SignInput>(); var original = signInput.transform.GetChild(1).gameObject.GetComponent <Button>(); buttonPrefab = GameObject.Instantiate(original); var go = buttonPrefab.gameObject; GameObject.DestroyImmediate(buttonPrefab); buttonPrefab = go.AddComponent <Button>(); buttonPrefab.transition = original.transition; buttonPrefab.targetGraphic = go.GetComponentInChildren <Image>(); buttonPrefab.colors = original.colors; go.SetActive(true); } }
public Optional <GameObject> Spawn(Entity entity, Optional <GameObject> parent) { GameObject prefabForTechType = CraftData.GetPrefabForTechType(entity.TechType, false); if (prefabForTechType == null && !PrefabDatabase.TryGetPrefab(entity.ClassId, out prefabForTechType)) { return(Optional <GameObject> .Of(Utils.CreateGenericLoot(entity.TechType))); } GameObject gameObject = Utils.SpawnFromPrefab(prefabForTechType, null); gameObject.transform.position = entity.Position; gameObject.transform.localRotation = entity.Rotation; GuidHelper.SetNewGuid(gameObject, entity.Guid); gameObject.SetActive(true); LargeWorldEntity.Register(gameObject); CrafterLogic.NotifyCraftEnd(gameObject, entity.TechType); return(Optional <GameObject> .Of(gameObject)); }
private GameObject CreateGameObject(TechType techType, string classId) { GameObject prefab = null; if (PrefabDatabase.TryGetPrefabFilename(classId, out string filename)) { prefab = Resources.Load <GameObject>(filename); } if (prefab == null) { prefab = CraftData.GetPrefabForTechType(techType, false); if (prefab == null) { return(Utils.CreateGenericLoot(techType)); } } return(Utils.SpawnFromPrefab(prefab, null)); }
private IEnumerator LoadExosuitResourcesAsync() { IPrefabRequest request = PrefabDatabase.GetPrefabForFilenameAsync("WorldEntities/Tools/Exosuit.prefab"); yield return(request); if (!request.TryGetPrefab(out GameObject prefab)) { BZLogger.Warn("API message: Cannot load [Exosuit] prefab!"); yield break; } exosuitResource = UWE.Utils.InstantiateDeactivated(prefab, GraphicsRoot.transform, Vector3.zero, Quaternion.identity); exosuitResource.GetComponent <Exosuit>().enabled = false; exosuitResource.GetComponent <Rigidbody>().isKinematic = true; exosuitResource.GetComponent <WorldForces>().enabled = false; UWE.Utils.ZeroTransform(exosuitResource.transform); yield break; }
public void gen_rand_forinfo(ref PrefabDatabase.PrefabInfo info) { if (!info.use_global_rand){ list_rands.Add(new Random_help(info.scale_seed)); info.rand_index = list_rands.Count - 1; info.first_rand = list_rands[info.rand_index].Next_Gaussian(info.dynamic_scale, info.scale_var); } }
private void Awake() { _Instance = this; }