示例#1
0
 public static void SetupObjects()
 {
     SaveGame.m_Objects.Clear();
     SaveGame.m_Objects.Add(MainLevel.Instance);
     SaveGame.m_Objects.Add(Scenario.Get());
     SaveGame.m_Objects.Add(AIManager.Get());
     SaveGame.m_Objects.Add(TriggersManager.Get());
     SaveGame.m_Objects.Add(ItemsManager.Get());
     SaveGame.m_Objects.Add(SensorManager.Get());
     SaveGame.m_Objects.Add(ConstructionGhostManager.Get());
     SaveGame.m_Objects.Add(StaticObjectsManager.Get());
     SaveGame.m_Objects.Add(Player.Get());
     SaveGame.m_Objects.Add(PlayerConditionModule.Get());
     SaveGame.m_Objects.Add(PlayerInjuryModule.Get());
     SaveGame.m_Objects.Add(PlayerDiseasesModule.Get());
     SaveGame.m_Objects.Add(StatsManager.Get());
     SaveGame.m_Objects.Add(HintsManager.Get());
     SaveGame.m_Objects.Add(ObjectivesManager.Get());
     SaveGame.m_Objects.Add(HUDObjectives.Get());
     SaveGame.m_Objects.Add(MenuNotepad.Get());
     SaveGame.m_Objects.Add(MapTab.Get());
     SaveGame.m_Objects.Add(Music.Get());
     SaveGame.m_Objects.Add(RainManager.Get());
     SaveGame.m_Objects.Add(BalanceSystem.Get());
 }
示例#2
0
    protected void DestroyMe(DamageInfo damage_info, string destroyed_prefab_name = "")
    {
        if (base.gameObject.GetComponent <DestroyablePlant>() != null)
        {
            base.gameObject.GetComponent <DestroyablePlant>().OnDestroyPlant();
        }
        string text = (destroyed_prefab_name.Length <= 0) ? this.m_Item.m_Info.m_DestroyedPrefabName : destroyed_prefab_name;

        if (text.Length > 0)
        {
            GameObject prefab = GreenHellGame.Instance.GetPrefab(text);
            if (!prefab)
            {
                DebugUtils.Assert("[:DestroyMe] Can't find destroyed prefab - " + text, true, DebugUtils.AssertType.Info);
                return;
            }
            GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(prefab, base.transform.position, base.transform.rotation);
        }
        for (int i = 0; i < this.m_Item.m_Info.m_ItemsToBackpackOnDestroy.Count; i++)
        {
            Item item = ItemsManager.Get().CreateItem(this.m_Item.m_Info.m_ItemsToBackpackOnDestroy[i], false, Vector3.zero, Quaternion.identity);
            if (item && !item.Take())
            {
                Inventory3DManager.Get().DropItem(item);
            }
        }
        StaticObjectsManager.Get().ObjectDestroyed(base.gameObject);
        this.PlayDestroySound();
        UnityEngine.Object.Destroy(base.gameObject);
    }
示例#3
0
 public static void SetupObjects()
 {
     SaveGame.m_Objects.Clear();
     SaveGame.m_Objects.Add(DifficultySettings.Get());
     SaveGame.m_Objects.Add(DialogsManager.Get());
     SaveGame.m_Objects.Add(AIManager.Get());
     SaveGame.m_Objects.Add(EnemyAISpawnManager.Get());
     SaveGame.m_Objects.Add(TriggersManager.Get());
     SaveGame.m_Objects.Add(ItemsManager.Get());
     SaveGame.m_Objects.Add(SensorManager.Get());
     SaveGame.m_Objects.Add(ConstructionGhostManager.Get());
     SaveGame.m_Objects.Add(StaticObjectsManager.Get());
     SaveGame.m_Objects.Add(Player.Get());
     SaveGame.m_Objects.Add(PlayerConditionModule.Get());
     SaveGame.m_Objects.Add(PlayerInjuryModule.Get());
     SaveGame.m_Objects.Add(PlayerDiseasesModule.Get());
     SaveGame.m_Objects.Add(StatsManager.Get());
     SaveGame.m_Objects.Add(HintsManager.Get());
     SaveGame.m_Objects.Add(ObjectivesManager.Get());
     SaveGame.m_Objects.Add(StoryObjectivesManager.Get());
     SaveGame.m_Objects.Add(HUDObjectives.Get());
     SaveGame.m_Objects.Add(MenuNotepad.Get());
     SaveGame.m_Objects.Add(MapTab.Get());
     SaveGame.m_Objects.Add(Music.Get());
     SaveGame.m_Objects.Add(RainManager.Get());
     SaveGame.m_Objects.Add(SleepController.Get());
     SaveGame.m_Objects.Add(MainLevel.Instance);
     SaveGame.m_Objects.Add(ScenarioManager.Get());
     SaveGame.m_Objects.Add(InventoryBackpack.Get());
     SaveGame.m_Objects.Add(ReplicatedSessionState.Get());
 }
示例#4
0
 private void Start()
 {
     LeavesPusher.s_Shader = Shader.Find("Custom/WindLeavesC2Standard");
     LeavesPusher.s_ShaderPropertyShakeAdd     = Shader.PropertyToID("_BranchAmplitudeAdd");
     LeavesPusher.s_ShaderPropertyShakeTimeAdd = Shader.PropertyToID("_BranchFreqAdd");
     this.m_SOM = StaticObjectsManager.Get();
     this.m_CharacterController = Player.Get().GetComponent <CharacterController>();
 }
示例#5
0
 public override void OnReplicationDeserialize(P2PNetworkReader reader, bool initialState)
 {
     if (!initialState)
     {
         uint num  = reader.ReadPackedUInt32();
         int  num2 = 0;
         while ((long)num2 < (long)((ulong)num))
         {
             StaticObjectsManager.Get().ObjectDestroyed(reader.ReadVector3());
             num2++;
         }
     }
 }
示例#6
0
 private void Start()
 {
     StaticObjectsManager.Get().OnStaticObjectAdded(base.gameObject);
 }
示例#7
0
 private void OnDestroy()
 {
     this.m_IsBeingDestroyed = true;
     StaticObjectsManager.Get().OnStaticObjectRemoved(base.gameObject);
 }
    public void DestroyMe(DamageInfo damage_info = null, string destroyed_prefab_name = "")
    {
        if (!this.ReplIsOwner())
        {
            return;
        }
        if (base.gameObject.GetComponent <DestroyablePlant>() != null)
        {
            base.gameObject.GetComponent <DestroyablePlant>().OnDestroyPlant();
        }
        string text = (destroyed_prefab_name.Length > 0) ? destroyed_prefab_name : this.m_Item.m_Info.m_DestroyedPrefabName;

        if (text.Length > 0)
        {
            GameObject prefab = GreenHellGame.Instance.GetPrefab(text);
            if (!prefab)
            {
                DebugUtils.Assert("[:DestroyMe] Can't find destroyed prefab - " + text, true, DebugUtils.AssertType.Info);
                return;
            }
            Vector3 position = base.transform.position;
            if (this.m_Item && this.m_Item.m_Info != null && this.m_Item.m_Info.m_ID == ItemID.small_plant_01_acres_grown && text == "Malanga_Bulb")
            {
                position.y += 0.2f;
            }
            else if (this.m_Item && this.m_Item.m_Info != null && this.m_Item.m_Info.m_ID == ItemID.Coconut)
            {
                position.y += 0.1f;
            }
            GameObject gameObject         = UnityEngine.Object.Instantiate <GameObject>(prefab, position, base.transform.rotation);
            Item       componentDeepChild = General.GetComponentDeepChild <Item>(gameObject);
            if (componentDeepChild != null)
            {
                Vector3 ang_vel = Vector3.zero;
                if (damage_info != null)
                {
                    if (damage_info.m_Damager == null)
                    {
                        ang_vel = -Vector3.Cross(damage_info.m_HitDir, Vector3.up);
                    }
                    else if (Vector3.Dot(damage_info.m_Damager.transform.right, damage_info.m_HitDir) > 0f)
                    {
                        ang_vel = -damage_info.m_Damager.transform.forward;
                    }
                    else
                    {
                        ang_vel = damage_info.m_Damager.transform.forward;
                    }
                }
                componentDeepChild.AddAngularVelocityOnStart(ang_vel, 10f);
            }
            if (this.m_Item != null && this.m_Item.m_Acre != null && gameObject.GetComponent <ObjectWithTrunk>() != null)
            {
                this.m_Item.m_Acre.m_ObjectWithTrunk = gameObject.GetComponent <ObjectWithTrunk>();
            }
        }
        for (int i = 0; i < this.m_Item.m_Info.m_ItemsToBackpackOnDestroy.Count; i++)
        {
            Item item = ItemsManager.Get().CreateItem(this.m_Item.m_Info.m_ItemsToBackpackOnDestroy[i], false, Vector3.zero, Quaternion.identity);
            if (item)
            {
                if (!item.Take())
                {
                    Inventory3DManager.Get().DropItem(item);
                }
                else if (item.m_Info != null)
                {
                    PlayerAudioModule.Get().PlayItemSound(item.m_Info.m_GrabSound);
                }
            }
        }
        StaticObjectsManager.Get().ObjectDestroyed(base.gameObject);
        ReplicatedStaticObjects local = ReplicatedStaticObjects.GetLocal();

        if (local != null)
        {
            local.AddDestroyedObject(base.gameObject);
        }
        this.PlayDestroySound();
        UnityEngine.Object.Destroy(base.gameObject);
    }