public void Awake() { helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject); helper.onUpgradeModuleEquip += OnUpgradeModuleChanged; helper.onUpgradeModuleUnEquip += OnUpgradeModuleChanged; }
public void Awake() { //helper = new SeaTruckHelper(gameObject, false, false, false); helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject); mainCab = helper.MainCab; motor = helper.TruckMotor; engineSound = motor.engineSound; rigidbody = helper.TruckWorldForces.useRigidbody; CoroutineHost.StartCoroutine(LoadBiodomeRobotArmResourcesAsync()); CoroutineHost.StartCoroutine(Init_Graphics()); engineDefault = ScriptableObject.CreateInstance <FMODAsset>(); engineDefault.name = "engine"; engineDefault.path = "event:/bz/vehicles/seatruck/engine"; engine = ScriptableObject.CreateInstance <FMODAsset>(); engine.name = "engine"; engine.path = "event:/sub/drone/motor_loop"; isFlying.changedEvent.AddHandler(this, new Event <Utils.MonitoredValue <bool> > .HandleFunction(OnFlyModeChanged)); mainCabExitPoint = helper.TruckSegment.exitPosition.localPosition; //helper.onPilotingBegin += OnPilotingBegin; #if DEBUG CoroutineHost.StartCoroutine(InitDebugHUD()); #endif }
public virtual void Awake() { TruckHelper = GetComponentInParent <SeaTruckArmManager>().helper; animator = GetComponent <Animator>(); front = ArmServices.main.objectHelper.FindDeepChild(gameObject, "hook").transform; ExosuitGrapplingArm component = GetComponent <ExosuitGrapplingArm>(); hookPrefab = Instantiate(component.hookPrefab); hookPrefab.GetComponent <Collider>().enabled = false; rope = ArmServices.main.objectHelper.GetObjectClone(component.rope); DestroyImmediate(hookPrefab.GetComponent <GrapplingHook>()); DestroyImmediate(component); hook = hookPrefab.AddComponent <SeaTruckGrapplingHook>(); hook.transform.parent = front; hook.transform.localPosition = Vector3.zero; hook.transform.localRotation = Quaternion.identity; hook.transform.localScale = new Vector3(1f, 1f, 1f); rope.attachPoint = hook.transform; grapplingLoopSound = GetComponent <FMOD_CustomLoopingEmitter>(); shootSound = ScriptableObject.CreateInstance <FMODAsset>(); shootSound.path = "event:/sub/exo/hook_shoot"; shootSound.name = "hook_shoot"; }
public void Awake() { helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject); BZLogger.Debug("Adding slot listener handlers..."); helper.onUpgradeModuleEquip += OnUpgradeModuleChanged; helper.onUpgradeModuleUnEquip += OnUpgradeModuleChanged; }
private void Awake() { helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject); objectHelper = Main.graphics.objectHelper; vfxConstructing = GetComponent <VFXConstructing>(); leftArmAttachPoint = objectHelper.CreateGameObject("leftArmAttachPoint", transform, new Vector3(-1.06f, -0.52f, 1.82f), new Vector3(350, 7, 0)); leftArmAttach = leftArmAttachPoint.transform; GameObject armSocketLeft = Instantiate(Main.graphics.ArmSocket, leftArmAttach); armSocketLeft.SetActive(true); armSocketLeft.name = "armSocketLeft"; ColorizationHelper.AddRendererToColorCustomizer(gameObject, armSocketLeft, false, new int[] { 0 }); ColorizationHelper.AddRendererToSkyApplier(gameObject, armSocketLeft, Skies.Auto); LeftSocketMat = armSocketLeft.GetComponent <Renderer>().material; rightArmAttachPoint = objectHelper.CreateGameObject("rightArmAttachPoint", transform, new Vector3(1.06f, -0.52f, 1.82f), new Vector3(350, 353, 0)); rightArmAttach = rightArmAttachPoint.transform; objectHelper.GetPrefabClone(ref armSocketLeft, rightArmAttach, true, "armSocketRight", out GameObject armSocketRight); ColorizationHelper.AddRendererToColorCustomizer(gameObject, armSocketRight, false, new int[] { 0 }); ColorizationHelper.AddRendererToSkyApplier(gameObject, armSocketRight, Skies.Auto); armSocketLeft.transform.localPosition = new Vector3(0f, 0.01f, -0.01f); armSocketLeft.transform.localScale = new Vector3(1.17f, 1.50f, 1.50f); armSocketLeft.transform.localRotation = Quaternion.Euler(90, 0, 0); RightSocketMat = armSocketRight.GetComponent <Renderer>().material; armSocketRight.transform.localPosition = new Vector3(0f, 0.01f, -0.01f); armSocketRight.transform.localScale = new Vector3(-1.17f, 1.50f, 1.50f); armSocketRight.transform.localRotation = Quaternion.Euler(90, 0, 0); GameObject leftAimForward = objectHelper.CreateGameObject("leftAimForward", transform); aimTargetLeft = leftAimForward.transform; GameObject rightAimForward = objectHelper.CreateGameObject("rightAimForward", transform); aimTargetRight = rightAimForward.transform; }
private void Awake() { // set this SlotExtenderZero instance Instance = this; if (gameObject.GetComponent <Exosuit>()) { // this Vehicle type is Exosuit ThisVehicle = Instance.GetComponent <Exosuit>(); } else if (gameObject.GetComponent <SeaTruckUpgrades>() != null) { // this Vehicle type is Seatruck //helper = new SeaTruckHelper(gameObject, false, false, false); helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject); } }
public void Awake() { helper = GetComponentInParent <SeaTruckStorageManager>().helper; tr = GetComponent <Transform>(); sequence = new Sequence(); collider = GetComponent <Collider>(); model = gameObject.FindChild("model"); flap = model.transform; openSound = ScriptableObject.CreateInstance <FMODAsset>(); openSound.name = "storage_open"; openSound.path = "event:/sub/seamoth/storage_open"; closeSound = ScriptableObject.CreateInstance <FMODAsset>(); closeSound.name = "storage_close"; closeSound.path = "event:/sub/seamoth/storage_close"; UpdateColliderState(); }
private IEnumerator PreStart() { while (!isGraphicsReady) { yield return(null); } helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject); helper.TruckEquipment.isAllowedToRemove += IsAllowedToRemove; helper.TruckEquipment.onEquip += OnEquip; helper.TruckEquipment.onUnequip += OnUnequip; StorageInputLeft = StorageLeft.AddComponent <SeaTruckStorageInput>(); StorageInputRight = StorageRight.AddComponent <SeaTruckStorageInput>(); StorageInputs.Add(StorageInputLeft, -1); StorageInputs.Add(StorageInputRight, -1); CheckStorageSlots(); yield break; }
public void OnDrill(Vector3 position, SeaTruckHelper helper, out GameObject hitObject) { float num = 0f; for (int i = 0; i < drillable.health.Length; i++) { num += drillable.health[i]; } this.helper = helper; Vector3 zero = Vector3.zero; int num2 = FindClosestMesh(position, out zero); hitObject = renderers[num2].gameObject; timeLastDrilled = Time.time; if (num > 0f) { float num3 = drillable.health[num2]; drillable.health[num2] = Mathf.Max(0f, drillable.health[num2] - 5f); num -= num3 - drillable.health[num2]; if (num3 > 0f && drillable.health[num2] <= 0f) { renderers[num2].gameObject.SetActive(false); SpawnFX(drillable.breakFX, zero); if (drillable.resources.Length != 0) { StartCoroutine(SpawnLootAsync(zero)); } } if (num <= 0f) { SpawnFX(drillable.breakAllFX, zero); onDrilled?.Invoke(drillable); if (drillable.deleteWhenDrilled) { ResourceTracker component = GetComponent <ResourceTracker>(); if (component) { component.OnBreakResource(); } float time = (!drillable.lootPinataOnSpawn) ? 0f : 6f; drillable.Invoke("DestroySelf", time); } } } BehaviourUpdateUtils.Register(this); }