Ejemplo n.º 1
0
        public static void ragdollAnimal(Vector3 point, Quaternion rotation, Transform skeleton, Vector3 ragdoll, ushort id)
        {
            if (!GraphicsSettings.ragdolls)
            {
                return;
            }
            ragdoll.y += 8f;
            ragdoll.x += Random.Range(-16f, 16f);
            ragdoll.z += Random.Range(-16f, 16f);
            ragdoll   *= (float)((!(Player.player != null) || Player.player.skills.boost != EPlayerBoost.FLIGHT) ? 32 : 256);
            AnimalAsset animalAsset = (AnimalAsset)Assets.find(EAssetType.ANIMAL, id);

            if (animalAsset == null)
            {
                return;
            }
            Transform transform = Object.Instantiate <GameObject>(animalAsset.ragdoll, point + Vector3.up * 0.1f, rotation * Quaternion.Euler(0f, 90f, 0f)).transform;

            transform.name   = "Ragdoll";
            transform.parent = Level.effects;
            if (skeleton != null)
            {
                RagdollTool.applySkeleton(skeleton, transform.FindChild("Skeleton"));
            }
            transform.FindChild("Skeleton").FindChild("Spine").GetComponent <Rigidbody>().AddForce(ragdoll);
            Object.Destroy(transform.gameObject, GraphicsSettings.effect);
        }
Ejemplo n.º 2
0
        // Token: 0x06002707 RID: 9991 RVA: 0x000E7DB4 File Offset: 0x000E61B4
        private Animal addAnimal(ushort id, Vector3 point, float angle, bool isDead)
        {
            AnimalAsset animalAsset = (AnimalAsset)Assets.find(EAssetType.ANIMAL, id);

            if (animalAsset != null)
            {
                Transform transform;
                if (Dedicator.isDedicated)
                {
                    transform = UnityEngine.Object.Instantiate <GameObject>(animalAsset.dedicated).transform;
                }
                else if (Provider.isServer)
                {
                    transform = UnityEngine.Object.Instantiate <GameObject>(animalAsset.server).transform;
                }
                else
                {
                    transform = UnityEngine.Object.Instantiate <GameObject>(animalAsset.client).transform;
                }
                transform.name     = id.ToString();
                transform.parent   = LevelAnimals.models;
                transform.position = point;
                transform.rotation = Quaternion.Euler(0f, angle, 0f);
                Animal animal = transform.gameObject.AddComponent <Animal>();
                animal.index  = (ushort)AnimalManager.animals.Count;
                animal.id     = id;
                animal.isDead = isDead;
                AnimalManager.animals.Add(animal);
                return(animal);
            }
            return(null);
        }
Ejemplo n.º 3
0
 private static void onClickedAddAnimalButton(SleekButton button)
 {
     if ((int)EditorSpawns.selectedAnimal < LevelAnimals.tables.Count && (int)EditorSpawnsAnimalsUI.selectedTier < LevelAnimals.tables[(int)EditorSpawns.selectedAnimal].tiers.Count)
     {
         AnimalAsset animalAsset = (AnimalAsset)Assets.find(EAssetType.ANIMAL, EditorSpawnsAnimalsUI.animalIDField.state);
         if (animalAsset != null)
         {
             LevelAnimals.tables[(int)EditorSpawns.selectedAnimal].addAnimal(EditorSpawnsAnimalsUI.selectedTier, EditorSpawnsAnimalsUI.animalIDField.state);
             EditorSpawnsAnimalsUI.updateSelection();
             EditorSpawnsAnimalsUI.spawnsScrollBox.state = new Vector2(0f, float.MaxValue);
         }
         EditorSpawnsAnimalsUI.animalIDField.state = 0;
     }
 }
Ejemplo n.º 4
0
        // Token: 0x060026F5 RID: 9973 RVA: 0x000E76A8 File Offset: 0x000E5AA8
        public static void spawnAnimal(ushort id, Vector3 point, Quaternion angle)
        {
            AnimalAsset animalAsset = (AnimalAsset)Assets.find(EAssetType.ANIMAL, id);

            if (animalAsset != null)
            {
                Animal           animal   = AnimalManager.manager.addAnimal(id, point, angle.eulerAngles.y, false);
                AnimalSpawnpoint item     = new AnimalSpawnpoint(0, point);
                PackInfo         packInfo = new PackInfo();
                animal.pack = packInfo;
                packInfo.animals.Add(animal);
                packInfo.spawns.Add(item);
                AnimalManager.packs.Add(packInfo);
                AnimalManager.manager.channel.openWrite();
                AnimalManager.manager.sendAnimal(animal);
                AnimalManager.manager.channel.closeWrite("tellAnimal", ESteamCall.OTHERS, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER);
            }
        }
Ejemplo n.º 5
0
        // Token: 0x060026F4 RID: 9972 RVA: 0x000E7604 File Offset: 0x000E5A04
        public static bool giveAnimal(Player player, ushort id)
        {
            AnimalAsset animalAsset = (AnimalAsset)Assets.find(EAssetType.ANIMAL, id);

            if (animalAsset != null)
            {
                Vector3    vector = player.transform.position + player.transform.forward * 6f;
                RaycastHit raycastHit;
                Physics.Raycast(vector + Vector3.up * 16f, Vector3.down, out raycastHit, 32f, RayMasks.BLOCK_VEHICLE);
                if (raycastHit.collider != null)
                {
                    vector = raycastHit.point;
                }
                AnimalManager.spawnAnimal(id, vector, player.transform.rotation);
                return(true);
            }
            return(false);
        }
Ejemplo n.º 6
0
 public static void updateSelection()
 {
     if ((int)EditorSpawns.selectedAnimal < LevelAnimals.tables.Count)
     {
         AnimalTable animalTable = LevelAnimals.tables[(int)EditorSpawns.selectedAnimal];
         EditorSpawnsAnimalsUI.selectedBox.text       = animalTable.name;
         EditorSpawnsAnimalsUI.tableNameField.text    = animalTable.name;
         EditorSpawnsAnimalsUI.tableIDField.state     = animalTable.tableID;
         EditorSpawnsAnimalsUI.tableColorPicker.state = animalTable.color;
         if (EditorSpawnsAnimalsUI.tierButtons != null)
         {
             for (int i = 0; i < EditorSpawnsAnimalsUI.tierButtons.Length; i++)
             {
                 EditorSpawnsAnimalsUI.spawnsScrollBox.remove(EditorSpawnsAnimalsUI.tierButtons[i]);
             }
         }
         EditorSpawnsAnimalsUI.tierButtons = new SleekButton[animalTable.tiers.Count];
         for (int j = 0; j < EditorSpawnsAnimalsUI.tierButtons.Length; j++)
         {
             AnimalTier  animalTier  = animalTable.tiers[j];
             SleekButton sleekButton = new SleekButton();
             sleekButton.positionOffset_X = 240;
             sleekButton.positionOffset_Y = 170 + j * 70;
             sleekButton.sizeOffset_X     = 200;
             sleekButton.sizeOffset_Y     = 30;
             sleekButton.text             = animalTier.name;
             SleekButton sleekButton2 = sleekButton;
             if (EditorSpawnsAnimalsUI.< > f__mg$cache1 == null)
             {
                 EditorSpawnsAnimalsUI.< > f__mg$cache1 = new ClickedButton(EditorSpawnsAnimalsUI.onClickedTierButton);
             }
             sleekButton2.onClickedButton = EditorSpawnsAnimalsUI.< > f__mg$cache1;
             EditorSpawnsAnimalsUI.spawnsScrollBox.add(sleekButton);
             SleekSlider sleekSlider = new SleekSlider();
             sleekSlider.positionOffset_Y = 40;
             sleekSlider.sizeOffset_X     = 200;
             sleekSlider.sizeOffset_Y     = 20;
             sleekSlider.orientation      = ESleekOrientation.HORIZONTAL;
             sleekSlider.state            = animalTier.chance;
             sleekSlider.addLabel(Mathf.RoundToInt(animalTier.chance * 100f) + "%", ESleekSide.LEFT);
             SleekSlider sleekSlider2 = sleekSlider;
             if (EditorSpawnsAnimalsUI.< > f__mg$cache2 == null)
             {
                 EditorSpawnsAnimalsUI.< > f__mg$cache2 = new Dragged(EditorSpawnsAnimalsUI.onDraggedChanceSlider);
             }
             sleekSlider2.onDragged = EditorSpawnsAnimalsUI.< > f__mg$cache2;
             sleekButton.add(sleekSlider);
             EditorSpawnsAnimalsUI.tierButtons[j] = sleekButton;
         }
         EditorSpawnsAnimalsUI.tierNameField.positionOffset_Y    = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70;
         EditorSpawnsAnimalsUI.addTierButton.positionOffset_Y    = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 40;
         EditorSpawnsAnimalsUI.removeTierButton.positionOffset_Y = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 40;
         if (EditorSpawnsAnimalsUI.animalButtons != null)
         {
             for (int k = 0; k < EditorSpawnsAnimalsUI.animalButtons.Length; k++)
             {
                 EditorSpawnsAnimalsUI.spawnsScrollBox.remove(EditorSpawnsAnimalsUI.animalButtons[k]);
             }
         }
         if ((int)EditorSpawnsAnimalsUI.selectedTier < animalTable.tiers.Count)
         {
             EditorSpawnsAnimalsUI.tierNameField.text = animalTable.tiers[(int)EditorSpawnsAnimalsUI.selectedTier].name;
             EditorSpawnsAnimalsUI.animalButtons      = new SleekButton[animalTable.tiers[(int)EditorSpawnsAnimalsUI.selectedTier].table.Count];
             for (int l = 0; l < EditorSpawnsAnimalsUI.animalButtons.Length; l++)
             {
                 SleekButton sleekButton3 = new SleekButton();
                 sleekButton3.positionOffset_X = 240;
                 sleekButton3.positionOffset_Y = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 80 + l * 40;
                 sleekButton3.sizeOffset_X     = 200;
                 sleekButton3.sizeOffset_Y     = 30;
                 AnimalAsset animalAsset = (AnimalAsset)Assets.find(EAssetType.ANIMAL, animalTable.tiers[(int)EditorSpawnsAnimalsUI.selectedTier].table[l].animal);
                 string      str         = "?";
                 if (animalAsset != null)
                 {
                     if (string.IsNullOrEmpty(animalAsset.animalName))
                     {
                         str = animalAsset.name;
                     }
                     else
                     {
                         str = animalAsset.animalName;
                     }
                 }
                 sleekButton3.text = animalTable.tiers[(int)EditorSpawnsAnimalsUI.selectedTier].table[l].animal.ToString() + " " + str;
                 SleekButton sleekButton4 = sleekButton3;
                 if (EditorSpawnsAnimalsUI.< > f__mg$cache3 == null)
                 {
                     EditorSpawnsAnimalsUI.< > f__mg$cache3 = new ClickedButton(EditorSpawnsAnimalsUI.onClickAnimalButton);
                 }
                 sleekButton4.onClickedButton = EditorSpawnsAnimalsUI.< > f__mg$cache3;
                 EditorSpawnsAnimalsUI.spawnsScrollBox.add(sleekButton3);
                 EditorSpawnsAnimalsUI.animalButtons[l] = sleekButton3;
             }
         }
         else
         {
             EditorSpawnsAnimalsUI.tierNameField.text = string.Empty;
             EditorSpawnsAnimalsUI.animalButtons      = new SleekButton[0];
         }
         EditorSpawnsAnimalsUI.animalIDField.positionOffset_Y      = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 80 + EditorSpawnsAnimalsUI.animalButtons.Length * 40;
         EditorSpawnsAnimalsUI.addAnimalButton.positionOffset_Y    = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 80 + EditorSpawnsAnimalsUI.animalButtons.Length * 40 + 40;
         EditorSpawnsAnimalsUI.removeAnimalButton.positionOffset_Y = 170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 80 + EditorSpawnsAnimalsUI.animalButtons.Length * 40 + 40;
         EditorSpawnsAnimalsUI.spawnsScrollBox.area = new Rect(0f, 0f, 5f, (float)(170 + EditorSpawnsAnimalsUI.tierButtons.Length * 70 + 80 + EditorSpawnsAnimalsUI.animalButtons.Length * 40 + 70));
     }
     else
     {
         EditorSpawnsAnimalsUI.selectedBox.text       = string.Empty;
         EditorSpawnsAnimalsUI.tableNameField.text    = string.Empty;
         EditorSpawnsAnimalsUI.tableIDField.state     = 0;
         EditorSpawnsAnimalsUI.tableColorPicker.state = Color.white;
         if (EditorSpawnsAnimalsUI.tierButtons != null)
         {
             for (int m = 0; m < EditorSpawnsAnimalsUI.tierButtons.Length; m++)
             {
                 EditorSpawnsAnimalsUI.spawnsScrollBox.remove(EditorSpawnsAnimalsUI.tierButtons[m]);
             }
         }
         EditorSpawnsAnimalsUI.tierButtons                       = null;
         EditorSpawnsAnimalsUI.tierNameField.text                = string.Empty;
         EditorSpawnsAnimalsUI.tierNameField.positionOffset_Y    = 170;
         EditorSpawnsAnimalsUI.addTierButton.positionOffset_Y    = 210;
         EditorSpawnsAnimalsUI.removeTierButton.positionOffset_Y = 210;
         if (EditorSpawnsAnimalsUI.animalButtons != null)
         {
             for (int n = 0; n < EditorSpawnsAnimalsUI.animalButtons.Length; n++)
             {
                 EditorSpawnsAnimalsUI.spawnsScrollBox.remove(EditorSpawnsAnimalsUI.animalButtons[n]);
             }
         }
         EditorSpawnsAnimalsUI.animalButtons = null;
         EditorSpawnsAnimalsUI.animalIDField.positionOffset_Y      = 250;
         EditorSpawnsAnimalsUI.addAnimalButton.positionOffset_Y    = 290;
         EditorSpawnsAnimalsUI.removeAnimalButton.positionOffset_Y = 290;
         EditorSpawnsAnimalsUI.spawnsScrollBox.area = new Rect(0f, 0f, 5f, 320f);
     }
 }