public MeshColliderBatch CreateBatch() { MeshColliderBatch meshColliderBatch = this.grid.CreateInstance(); meshColliderBatch.Setup(this.cell.position, this.key.layer, this.key.material); meshColliderBatch.Alloc(); this.TempBatches.Add(meshColliderBatch); return(meshColliderBatch); }
public MeshColliderBatch CreateBatch() { MeshColliderBatch instance = this.grid.CreateInstance(); instance.Setup(this.cell.position, LayerMask.op_Implicit(this.key.layer), this.key.material); instance.Alloc(); this.TempBatches.Add(instance); return(instance); }
void OnTriggerEnter(Collider collider) { BasePlayer player = collider.GetComponentInParent <BasePlayer>(); if (player != null) { Players.Add(player); if (Definition.Options.ContainsKey("entermsg") && Definition.Options["entermsg"] != null) { player.ChatMessage(Definition.Options["entermsg"]); } Interface.Oxide.CallHook("OnEnterZone", Definition.Id, player); if (Definition.Options.Count != 0) { Interface.Oxide.CallHook("OnEnterZoneWithOptions", Definition.Id, player, Definition.Options); } } else { if (Definition.Options.ContainsKey("nobuildex")) { MeshColliderBatch batch = collider.GetComponent <MeshColliderBatch>(); if (batch != null) { FieldInfo info = batch.GetType().GetField("instances", BindingFlags.NonPublic | BindingFlags.Instance); var batchColliders = (ListDictionary <Component, ColliderCombineInstance>)info.GetValue(batch); List <ColliderCombineInstance> batchCollidersList = batchColliders.Values; for (int i = 0; i < batchCollidersList.Count; i++) { ColliderCombineInstance instance = batchCollidersList[i]; if (this.collider.bounds.Intersects(instance.bounds.ToBounds())) { instance.collider.GetComponentInParent <BaseCombatEntity>()?.Kill(BaseNetworkable.DestroyMode.Gib); } } } } } //Debug.Log("OnTriggerEnter: " + player?.userID); }
public void CreateBatches() { if (this.TempInstances.Count == 0) { return; } MeshColliderBatch meshColliderBatch = this.CreateBatch(); for (int i = 0; i < this.TempInstances.Count; i++) { MeshColliderInstance item = this.TempInstances[i]; if (meshColliderBatch.AvailableVertices < item.mesh.vertexCount) { meshColliderBatch = this.CreateBatch(); } meshColliderBatch.Add(item); } this.TempInstances.Clear(); }
public void CreateBatches() { if (this.TempInstances.Count == 0) { return; } MeshColliderBatch batch = this.CreateBatch(); for (int index = 0; index < this.TempInstances.Count; ++index) { MeshColliderInstance tempInstance = this.TempInstances[index]; if (batch.AvailableVertices < tempInstance.mesh.get_vertexCount()) { batch = this.CreateBatch(); } batch.Add(tempInstance); } this.TempInstances.Clear(); }
public static Collider GetCollider(this RaycastHit hit) { if (((RaycastHit) ref hit).get_triangleIndex() < 0) { return(((RaycastHit) ref hit).get_collider()); } if (!((Component)((RaycastHit) ref hit).get_transform()).CompareTag("MeshColliderBatch")) { return(((RaycastHit) ref hit).get_collider()); } MeshColliderBatch component = (MeshColliderBatch)((Component)((RaycastHit) ref hit).get_transform()).GetComponent <MeshColliderBatch>(); if (!Object.op_Implicit((Object)component)) { return(((RaycastHit) ref hit).get_collider()); } Collider collider = component.LookupCollider(((RaycastHit) ref hit).get_triangleIndex()); if (!Object.op_Implicit((Object)collider)) { return(((RaycastHit) ref hit).get_collider()); } return(collider); }
public static Rigidbody GetRigidbody(this RaycastHit hit) { if (((RaycastHit) ref hit).get_triangleIndex() < 0) { return(((RaycastHit) ref hit).get_rigidbody()); } if (!((Component)((RaycastHit) ref hit).get_transform()).CompareTag("MeshColliderBatch")) { return(((RaycastHit) ref hit).get_rigidbody()); } MeshColliderBatch component = (MeshColliderBatch)((Component)((RaycastHit) ref hit).get_transform()).GetComponent <MeshColliderBatch>(); if (!Object.op_Implicit((Object)component)) { return(((RaycastHit) ref hit).get_rigidbody()); } Rigidbody rigidbody = component.LookupRigidbody(((RaycastHit) ref hit).get_triangleIndex()); if (!Object.op_Implicit((Object)rigidbody)) { return(((RaycastHit) ref hit).get_rigidbody()); } return(rigidbody); }
public static Transform GetTransform(this RaycastHit hit) { if (hit.triangleIndex < 0) { return(hit.transform); } if (!hit.transform.CompareTag("MeshColliderBatch")) { return(hit.transform); } MeshColliderBatch component = hit.transform.GetComponent <MeshColliderBatch>(); if (!component) { return(hit.transform); } Transform transforms = component.LookupTransform(hit.triangleIndex); if (transforms) { return(transforms); } return(hit.transform); }
public static Collider GetCollider(this RaycastHit hit) { if (hit.triangleIndex < 0) { return(hit.collider); } if (!hit.transform.CompareTag("MeshColliderBatch")) { return(hit.collider); } MeshColliderBatch component = hit.transform.GetComponent <MeshColliderBatch>(); if (!component) { return(hit.collider); } Collider collider = component.LookupCollider(hit.triangleIndex); if (collider) { return(collider); } return(hit.collider); }
public static Rigidbody GetRigidbody(this RaycastHit hit) { if (hit.triangleIndex < 0) { return(hit.rigidbody); } if (!hit.transform.CompareTag("MeshColliderBatch")) { return(hit.rigidbody); } MeshColliderBatch component = hit.transform.GetComponent <MeshColliderBatch>(); if (!component) { return(hit.rigidbody); } Rigidbody rigidbody = component.LookupRigidbody(hit.triangleIndex); if (rigidbody) { return(rigidbody); } return(hit.rigidbody); }
public void RecycleInstance(MeshColliderBatch instance) { GameManager.server.Retire(instance.gameObject); }
public void RecycleInstance(MeshColliderBatch instance) { GameManager.server.Retire(((Component)instance).get_gameObject()); }