private void SetupClusters() { for (int x = 0; x < graphCountX; x++) { for (int y = 0; y < graphCountY; y++) { Node node = graph[x, y]; int clusterID = 0; Ray ray = new Ray(node.WorldPosition + Vector3.up * 50, Vector3.down); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100)) { ClusterID clusterIDObj = hit.transform.GetComponent <ClusterID>(); if (clusterIDObj != null) { clusterID = clusterIDObj.ID; if (!clusterCenters.ContainsKey(clusterID)) { if (hit.transform.childCount > 0) { clusterCenters.Add(clusterID, FindNodeFromWorldPosition(hit.transform.GetChild(0).position)); } else { clusterCenters.Add(clusterID, FindNodeFromWorldPosition(hit.transform.position)); } } } } node.ClusterID = clusterID; } } }
public override int GetHashCode() { var hash = 17; hash = hash * 23 + ClusterID.GetHashCode(); hash = hash * 23 + MSMSID.GetHashCode(); hash = hash * 23 + GroupID.GetHashCode(); return(hash); }
public override int GetHashCode() { int hash = 1; if (HasNodeID) { hash ^= NodeID.GetHashCode(); } if (HasClusterID) { hash ^= ClusterID.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public override bool Equals(object obj) { var other = (MSMSClusterMap)obj; if (other == null) { return(false); } if (!ClusterID.Equals(other.ClusterID)) { return(false); } if (!GroupID.Equals(other.GroupID)) { return(false); } return(MSMSID.Equals(other.MSMSID)); }
public void AsText(StringBuilder b, int pad) { b.Append(' ', pad); b.AppendLine("SceneSpecification:"); b.Append(' ', pad++); b.AppendLine("{"); b.Append(' ', pad); b.AppendLine("CellZ: 0x" + CellZ.ToString("X8") + " (" + CellZ + ")"); Cell.AsText(b, pad); b.Append(' ', pad); b.AppendLine("arSnoLevelAreas:"); b.Append(' ', pad); b.AppendLine("{"); for (int i = 0; i < SNOLevelAreas.Length;) { b.Append(' ', pad + 1); for (int j = 0; j < 8 && i < SNOLevelAreas.Length; j++, i++) { b.Append("0x" + SNOLevelAreas[i].ToString("X8") + ", "); } b.AppendLine(); } b.Append(' ', pad); b.AppendLine("}"); b.AppendLine(); b.Append(' ', pad); b.AppendLine("snoPrevWorld: 0x" + SNOPrevWorld.ToString("X8")); b.Append(' ', pad); b.AppendLine("Unknown1: 0x" + Unknown1.ToString("X8") + " (" + Unknown1 + ")"); b.Append(' ', pad); b.AppendLine("snoPrevLevelArea: 0x" + SNOPrevLevelArea.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoNextWorld: 0x" + SNONextWorld.ToString("X8")); b.Append(' ', pad); b.AppendLine("Unknown2: 0x" + Unknown2.ToString("X8") + " (" + Unknown2 + ")"); b.Append(' ', pad); b.AppendLine("snoNextLevelArea: 0x" + SNONextLevelArea.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoMusic: 0x" + SNOMusic.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoCombatMusic: 0x" + SNOCombatMusic.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoAmbient: 0x" + SNOAmbient.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoReverb: 0x" + SNOReverb.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoWeather: 0x" + SNOWeather.ToString("X8")); b.Append(' ', pad); b.AppendLine("snoPresetWorld: 0x" + SNOPresetWorld.ToString("X8")); b.Append(' ', pad); b.AppendLine("Unknown3: 0x" + Unknown3.ToString("X8") + " (" + Unknown3 + ")"); b.Append(' ', pad); b.AppendLine("Unknown4: 0x" + Unknown4.ToString("X8") + " (" + Unknown4 + ")"); b.Append(' ', pad); b.AppendLine("Unknown5: 0x" + Unknown5.ToString("X8") + " (" + Unknown5 + ")"); b.Append(' ', pad); b.AppendLine("ClusterId: 0x" + ClusterID.ToString("X8") + " (" + ClusterID + ")"); SceneCachedValues.AsText(b, pad); b.Append(' ', --pad); b.AppendLine("}"); }