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); }
// 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); }
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; } }
// 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); } }
// 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); }
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); } }