Esempio n. 1
0
        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";
        }
Esempio n. 4
0
        public void Awake()
        {
            helper = SeatruckServices.Main.GetSeaTruckHelper(gameObject);

            BZLogger.Debug("Adding slot listener handlers...");

            helper.onUpgradeModuleEquip   += OnUpgradeModuleChanged;
            helper.onUpgradeModuleUnEquip += OnUpgradeModuleChanged;
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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);
        }