public void RemoveWatch(ReferenceChain refChain) { if (watches.Contains(refChain)) { watches.Remove(refChain); } }
public object ReadWatch(ReferenceChain refChain) { object ret = null; if (fieldWatches.ContainsKey(refChain)) { try { ret = fieldWatches[refChain].Key.GetValue(fieldWatches[refChain].Value); } catch (Exception) { return(null); } } if (propertyWatches.ContainsKey(refChain)) { try { ret = propertyWatches[refChain].Key.GetValue(propertyWatches[refChain].Value, null); } catch (Exception) { return(null); } } return(ret); }
void Update() { if (!initializedBuildingsPanel) { sceneExplorer = FindObjectOfType <SceneExplorer>(); buildingsBufferRefChain = new ReferenceChain(); buildingsBufferRefChain = buildingsBufferRefChain.Add(BuildingManager.instance.gameObject); buildingsBufferRefChain = buildingsBufferRefChain.Add(BuildingManager.instance); buildingsBufferRefChain = buildingsBufferRefChain.Add(typeof(BuildingManager).GetField("m_buildings")); buildingsBufferRefChain = buildingsBufferRefChain.Add(typeof(Array16 <Building>).GetField("m_buffer")); zonedBuildingInfoPanel = GameObject.Find("(Library) ZonedBuildingWorldInfoPanel").GetComponent <ZonedBuildingWorldInfoPanel>(); if (zonedBuildingInfoPanel != null) { AddZonedBuildingPanelControls(); initializedBuildingsPanel = true; } } if (zonedBuildingInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate <InstanceID>(zonedBuildingInfoPanel, "m_InstanceID"); var building = BuildingManager.instance.m_buildings.m_buffer[instance.Building]; zonedBuildingAssetNameLabel.text = "AssetName: " + building.Info.name; } }
public void WriteWatch(ReferenceChain refChain, object value) { if (fieldWatches.ContainsKey(refChain)) { try { fieldWatches[refChain].Key.SetValue(fieldWatches[refChain].Value, value); } catch (Exception) { return; } } if (propertyWatches.ContainsKey(refChain)) { try { propertyWatches[refChain].Key.SetValue(propertyWatches[refChain].Value, value, null); } catch (Exception) { return; } } }
public ReferenceChain Add(Component component) { ReferenceChain copy = Copy(); copy.chainObjects[count] = component; copy.chainTypes[count] = ReferenceType.Component; copy.count++; return(copy); }
public ReferenceChain Add(string namedProperty) { ReferenceChain copy = Copy(); copy.chainObjects[count] = namedProperty; copy.chainTypes[count] = ReferenceType.SpecialNamedProperty; copy.count++; return(copy); }
public ReferenceChain Add(int index) { ReferenceChain copy = Copy(); copy.chainObjects[count] = index; copy.chainTypes[count] = ReferenceType.EnumerableItem; copy.count++; return(copy); }
public ReferenceChain Add(MethodInfo methodInfo) { ReferenceChain copy = Copy(); copy.chainObjects[count] = methodInfo; copy.chainTypes[count] = ReferenceType.Method; copy.count++; return(copy); }
public ReferenceChain Add(PropertyInfo propertyInfo) { ReferenceChain copy = Copy(); copy.chainObjects[count] = propertyInfo; copy.chainTypes[count] = ReferenceType.Property; copy.count++; return(copy); }
public ReferenceChain Add(FieldInfo fieldInfo) { ReferenceChain copy = Copy(); copy.chainObjects[count] = fieldInfo; copy.chainTypes[count] = ReferenceType.Field; copy.count++; return(copy); }
public ReferenceChain Add(GameObject go) { ReferenceChain copy = Copy(); copy.chainObjects[count] = go; copy.chainTypes[count] = ReferenceType.GameObject; copy.count++; return(copy); }
public static TextureViewer CreateTextureViewer(ReferenceChain refChain, Texture texture) { var go = new GameObject("TextureViewer"); go.transform.parent = ModTools.Instance.transform; var textureViewer = go.AddComponent<TextureViewer>(); textureViewer.caller = refChain; textureViewer.previewTexture = texture; textureViewer.visible = true; return textureViewer; }
public static MeshViewer CreateMeshViewer(ReferenceChain refChain, Mesh mesh) { var go = new GameObject("MeshViewer"); go.transform.parent = ModTools.Instance.transform; var meshViewer = go.AddComponent<MeshViewer>(); meshViewer.caller = refChain; meshViewer.previewMesh = mesh; meshViewer.visible = true; return meshViewer; }
public void RemoveWatch(ReferenceChain refChain) { if (fieldWatches.ContainsKey(refChain)) { fieldWatches.Remove(refChain); } if (propertyWatches.ContainsKey(refChain)) { propertyWatches.Remove(refChain); } }
public static MeshViewer CreateMeshViewer(ReferenceChain refChain, Mesh mesh) { var go = new GameObject("MeshViewer"); go.transform.parent = ModTools.Instance.transform; var meshViewer = go.AddComponent <MeshViewer>(); meshViewer.caller = refChain; meshViewer.previewMesh = mesh; meshViewer.visible = true; return(meshViewer); }
public static TextureViewer CreateTextureViewer(ReferenceChain refChain, Texture texture) { var go = new GameObject("TextureViewer"); go.transform.parent = ModTools.Instance.transform; var textureViewer = go.AddComponent <TextureViewer>(); textureViewer.caller = refChain; textureViewer.previewTexture = texture; textureViewer.visible = true; return(textureViewer); }
public Type GetWatchType(ReferenceChain refChain) { Type ret = null; if (watches.Contains(refChain)) { var item = refChain.LastItem; var info = item as FieldInfo; ret = info?.FieldType ?? (item as PropertyInfo)?.PropertyType; } return(ret); }
public bool IsConstWatch(ReferenceChain refChain) { if (fieldWatches.ContainsKey(refChain)) { return fieldWatches[refChain].Key.IsInitOnly; } if (propertyWatches.ContainsKey(refChain)) { return !propertyWatches[refChain].Key.CanWrite; } return true; }
public bool IsConstWatch(ReferenceChain refChain) { if (fieldWatches.ContainsKey(refChain)) { return(fieldWatches[refChain].Key.IsInitOnly); } if (propertyWatches.ContainsKey(refChain)) { return(!propertyWatches[refChain].Key.CanWrite); } return(true); }
public ReferenceChain Copy() { ReferenceChain copy = new ReferenceChain(); copy.count = count; for (int i = 0; i < count; i++) { copy.chainObjects[i] = chainObjects[i]; copy.chainTypes[i] = chainTypes[i]; } copy.identOffset = identOffset; return(copy); }
public Type GetWatchType(ReferenceChain refChain) { Type ret = null; if (fieldWatches.ContainsKey(refChain)) { ret = fieldWatches[refChain].Key.FieldType; } if (propertyWatches.ContainsKey(refChain)) { ret = propertyWatches[refChain].Key.PropertyType; } return(ret); }
public ReferenceChain Copy() { var copy = new ReferenceChain { Length = Length }; for (var i = 0; i < Length; i++) { copy.ChainObjects[i] = ChainObjects[i]; copy.ChainTypes[i] = ChainTypes[i]; } copy.IdentOffset = IdentOffset; return(copy); }
public Type GetWatchType(ReferenceChain refChain) { Type ret = null; if (fieldWatches.ContainsKey(refChain)) { ret = fieldWatches[refChain].Key.FieldType; } if (propertyWatches.ContainsKey(refChain)) { ret = propertyWatches[refChain].Key.PropertyType; } return ret; }
public ReferenceChain[] GetWatches() { ReferenceChain[] watches = new ReferenceChain[fieldWatches.Count + propertyWatches.Count]; int i = 0; foreach (var item in fieldWatches) { watches[i++] = item.Key; } foreach (var item in propertyWatches) { watches[i++] = item.Key; } return watches; }
public ReferenceChain[] GetWatches() { ReferenceChain[] watches = new ReferenceChain[fieldWatches.Count + propertyWatches.Count]; int i = 0; foreach (var item in fieldWatches) { watches[i++] = item.Key; } foreach (var item in propertyWatches) { watches[i++] = item.Key; } return(watches); }
void Update() { var hoveredLocal = hoveredComponent; if (drawDebugInfo && hoveredLocal != null) { if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.F)) { var uiView = FindObjectOfType <UIView>(); if (uiView == null) { return; } var current = hoveredLocal; var refChain = new ReferenceChain(); refChain = refChain.Add(current); while (current != null) { refChain = refChain.Add(current.gameObject); current = current.parent; } ; refChain = refChain.Add(uiView.gameObject); var sceneExplorer = FindObjectOfType <SceneExplorer>(); sceneExplorer.ExpandFromRefChain(refChain.Reverse); sceneExplorer.visible = true; } if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.G)) { if (hoveredComponents.Count > 1 && hoveredComponent != null) { var index = hoveredComponents.IndexOf(hoveredComponent); var newIndex = (index + hoveredComponents.Count + 1) % hoveredComponents.Count; hoveredComponent = hoveredComponents[newIndex]; } } } }
public void AddWatch(ReferenceChain refChain, PropertyInfo property, object o) { propertyWatches.Add(refChain, new KeyValuePair<PropertyInfo, object>(property, o)); visible = true; }
public void AddWatch(ReferenceChain refChain, FieldInfo field, object o) { fieldWatches.Add(refChain, new KeyValuePair<FieldInfo, object>(field, o)); visible = true; }
public void ExpandFromRefChain(ReferenceChain refChain) { if (refChain == null) { Log.Error("SceneExplorer: ExpandFromRefChain(): Null refChain"); return; } if (refChain.Length == 0) { Log.Error("SceneExplorer: ExpandFromRefChain(): Invalid refChain, expected Length >= 0"); return; } if (refChain.ChainTypes[0] != ReferenceChain.ReferenceType.GameObject) { Log.Error(String.Format("SceneExplorer: ExpandFromRefChain(): invalid chain type for element [0] - expected {0}, got {1}", ReferenceChain.ReferenceType.GameObject, refChain.ChainTypes[0])); return; } sceneRoots.Clear(); ClearExpanded(); searchDisplayString = String.Format("Showing results for \"{0}\"", refChain.ToString()); var rootGameObject = (GameObject)refChain.ChainObjects[0]; sceneRoots.Add(rootGameObject, true); var expandedRefChain = new ReferenceChain().Add(rootGameObject); state.expandedGameObjects.Add(expandedRefChain, true); for (int i = 1; i < refChain.Length; i++) { switch (refChain.ChainTypes[i]) { case ReferenceChain.ReferenceType.GameObject: var go = (GameObject)refChain.ChainObjects[i]; expandedRefChain = expandedRefChain.Add(go); state.expandedGameObjects.Add(expandedRefChain, true); break; case ReferenceChain.ReferenceType.Component: var component = (Component)refChain.ChainObjects[i]; expandedRefChain = expandedRefChain.Add(component); state.expandedComponents.Add(expandedRefChain, true); break; case ReferenceChain.ReferenceType.Field: var field = (FieldInfo)refChain.ChainObjects[i]; expandedRefChain = expandedRefChain.Add(field); state.expandedObjects.Add(expandedRefChain, true); break; case ReferenceChain.ReferenceType.Property: var property = (PropertyInfo)refChain.ChainObjects[i]; expandedRefChain = expandedRefChain.Add(property); state.expandedObjects.Add(expandedRefChain, true); break; case ReferenceChain.ReferenceType.Method: break; case ReferenceChain.ReferenceType.EnumerableItem: var index = (int)refChain.ChainObjects[i]; state.selectedArrayStartIndices[expandedRefChain] = index; state.selectedArrayEndIndices[expandedRefChain] = index; expandedRefChain = expandedRefChain.Add(index); state.expandedObjects.Add(expandedRefChain, true); break; } } state.currentRefChain = refChain.Copy(); state.currentRefChain.IdentOffset = -state.currentRefChain.Length; }
private void Initialize() { if (!initializedZonedBuildingsPanel) { sceneExplorer = FindObjectOfType <SceneExplorer>(); buildingsBufferRefChain = new ReferenceChain() .Add(BuildingManager.instance.gameObject) .Add(BuildingManager.instance) .Add(typeof(BuildingManager).GetField("m_buildings")) .Add(typeof(Array16 <Building>).GetField("m_buffer")); zonedBuildingInfoPanel = GameObject.Find("(Library) ZonedBuildingWorldInfoPanel").GetComponent <ZonedBuildingWorldInfoPanel>(); if (zonedBuildingInfoPanel != null) { AddBuildingPanelControls(zonedBuildingInfoPanel, out zonedBuildingAssetNameLabel, out zonedBuildingShowExplorerButton, new Vector3(-8.0f, 100.0f, 0.0f), out zonedBuildingDumpMeshTextureButton, new Vector3(-8.0f, 132.0f, 0.0f) ); initializedZonedBuildingsPanel = true; } } if (!initializedServiceBuildingsPanel) { sceneExplorer = FindObjectOfType <SceneExplorer>(); serviceBuildingInfoPanel = GameObject.Find("(Library) CityServiceWorldInfoPanel").GetComponent <CityServiceWorldInfoPanel>(); if (serviceBuildingInfoPanel != null) { AddBuildingPanelControls(serviceBuildingInfoPanel, out serviceBuildingAssetNameLabel, out serviceBuildingShowExplorerButton, new Vector3(-8.0f, 175.0f, 0.0f), out serviceBuildingDumpMeshTextureButton, new Vector3(-8.0f, 200.0f, 0.0f) ); initializedServiceBuildingsPanel = true; } } if (!initializedCitizenVehiclePanel) { sceneExplorer = FindObjectOfType <SceneExplorer>(); vehiclesBufferRefChain = new ReferenceChain() .Add(VehicleManager.instance.gameObject) .Add(VehicleManager.instance) .Add(typeof(VehicleManager).GetField("m_vehicles")) .Add(typeof(Array16 <Vehicle>).GetField("m_buffer")); vehiclesParkedBufferRefChain = new ReferenceChain() .Add(VehicleManager.instance.gameObject) .Add(VehicleManager.instance) .Add(typeof(VehicleManager).GetField("m_parkedVehicles")) .Add(typeof(Array16 <VehicleParked>).GetField("m_buffer")); citizenVehicleInfoPanel = GameObject.Find("(Library) CitizenVehicleWorldInfoPanel").GetComponent <CitizenVehicleWorldInfoPanel>(); if (citizenVehicleInfoPanel != null) { AddVehiclePanelControls( citizenVehicleInfoPanel, out citizenVehicleAssetNameLabel, out citizenVehicleShowExplorerButton, out citizenVehicleDumpTextureMeshButton ); initializedCitizenVehiclePanel = true; } } if (!initializedCityServiceVehiclePanel) { sceneExplorer = FindObjectOfType <SceneExplorer>(); cityServiceVehicleInfoPanel = GameObject.Find("(Library) CityServiceVehicleWorldInfoPanel") .GetComponent <CityServiceVehicleWorldInfoPanel>(); if (cityServiceVehicleInfoPanel != null) { AddVehiclePanelControls( cityServiceVehicleInfoPanel, out cityServiceVehicleAssetNameLabel, out cityServiceVehicleShowExplorerButton, out cityServiceVehicleDumpTextureMeshButton); initializedCityServiceVehiclePanel = true; } } if (!initializedPublicTransportVehiclePanel) { sceneExplorer = FindObjectOfType <SceneExplorer>(); publicTransportVehicleInfoPanel = GameObject.Find("(Library) PublicTransportVehicleWorldInfoPanel") .GetComponent <PublicTransportVehicleWorldInfoPanel>(); if (publicTransportVehicleInfoPanel != null) { AddVehiclePanelControls( publicTransportVehicleInfoPanel, out publicTransportVehicleAssetNameLabel, out publicTransportVehicleShowExplorerButton, out publicTransportVehicleDumpTextureMeshButton); initializedPublicTransportVehiclePanel = true; } } if (!initializedAnimalPanel) { citizenInstancesBufferRefChain = new ReferenceChain() .Add(CitizenManager.instance.gameObject) .Add(CitizenManager.instance) .Add(typeof(CitizenManager).GetField("m_instances")) .Add(typeof(Array16 <CitizenInstance>).GetField("m_buffer")); citizensBufferRefChain = new ReferenceChain() .Add(CitizenManager.instance.gameObject) .Add(CitizenManager.instance) .Add(typeof(CitizenManager).GetField("m_citizens")) .Add(typeof(Array32 <Citizen>).GetField("m_buffer")); citizensUnitsBufferRefChain = new ReferenceChain() .Add(CitizenManager.instance.gameObject) .Add(CitizenManager.instance) .Add(typeof(CitizenManager).GetField("m_units")) .Add(typeof(Array32 <CitizenUnit>).GetField("m_buffer")); sceneExplorer = FindObjectOfType <SceneExplorer>(); animalInfoPanel = GameObject.Find("(Library) AnimalWorldInfoPanel").GetComponent <AnimalWorldInfoPanel>(); if (animalInfoPanel != null) { AddCitizenPanelControls(animalInfoPanel, out animalAssetNameLabel, out animalShowExplorerButton, new Vector3(-8.0f, 65.0f, 0.0f), out animalShowInstanceButton, new Vector3(-8.0f, 90.0f, 0.0f), out animalShowUnitButton, new Vector3(-8.0f, 115.0f, 0.0f) ); initializedAnimalPanel = true; } } if (!initializedCitizenPanel) { citizenInstancesBufferRefChain = new ReferenceChain() .Add(CitizenManager.instance.gameObject) .Add(CitizenManager.instance) .Add(typeof(CitizenManager).GetField("m_instances")) .Add(typeof(Array16 <CitizenInstance>).GetField("m_buffer")); citizensBufferRefChain = new ReferenceChain() .Add(CitizenManager.instance.gameObject) .Add(CitizenManager.instance) .Add(typeof(CitizenManager).GetField("m_citizens")) .Add(typeof(Array32 <Citizen>).GetField("m_buffer")); citizensUnitsBufferRefChain = new ReferenceChain() .Add(CitizenManager.instance.gameObject) .Add(CitizenManager.instance) .Add(typeof(CitizenManager).GetField("m_units")) .Add(typeof(Array32 <CitizenUnit>).GetField("m_buffer")); sceneExplorer = FindObjectOfType <SceneExplorer>(); citizenInfoPanel = GameObject.Find("(Library) CitizenWorldInfoPanel").GetComponent <HumanWorldInfoPanel>(); if (citizenInfoPanel != null) { AddCitizenPanelControls(citizenInfoPanel, out citizenAssetNameLabel, out citizenShowExplorerButton, new Vector3(-8.0f, 110.0f, 0.0f), out citizenShowInstanceButton, new Vector3(-8.0f, 135.0f, 0.0f), out citizenShowUnitButton, new Vector3(-8.0f, 160.0f, 0.0f) ); initializedCitizenPanel = true; } } }
void Update() { if (!initializedBuildingsPanel) { sceneExplorer = FindObjectOfType<SceneExplorer>(); buildingsBufferRefChain = new ReferenceChain(); buildingsBufferRefChain = buildingsBufferRefChain.Add(BuildingManager.instance.gameObject); buildingsBufferRefChain = buildingsBufferRefChain.Add(BuildingManager.instance); buildingsBufferRefChain = buildingsBufferRefChain.Add(typeof(BuildingManager).GetField("m_buildings")); buildingsBufferRefChain = buildingsBufferRefChain.Add(typeof(Array16<Building>).GetField("m_buffer")); zonedBuildingInfoPanel = GameObject.Find("(Library) ZonedBuildingWorldInfoPanel").GetComponent<ZonedBuildingWorldInfoPanel>(); if (zonedBuildingInfoPanel != null) { AddZonedBuildingPanelControls(); initializedBuildingsPanel = true; } } if (zonedBuildingInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate<InstanceID>(zonedBuildingInfoPanel, "m_InstanceID"); var building = BuildingManager.instance.m_buildings.m_buffer[instance.Building]; zonedBuildingAssetNameLabel.text = "AssetName: " + building.Info.name; } }
public void AddWatch(ReferenceChain refChain, PropertyInfo property, object o) { propertyWatches.Add(refChain, new KeyValuePair <PropertyInfo, object>(property, o)); visible = true; }
void Update() { if (!initializedZonedBuildingsPanel) { sceneExplorer = FindObjectOfType<SceneExplorer>(); buildingsBufferRefChain = new ReferenceChain(); buildingsBufferRefChain = buildingsBufferRefChain.Add(BuildingManager.instance.gameObject); buildingsBufferRefChain = buildingsBufferRefChain.Add(BuildingManager.instance); buildingsBufferRefChain = buildingsBufferRefChain.Add(typeof(BuildingManager).GetField("m_buildings")); buildingsBufferRefChain = buildingsBufferRefChain.Add(typeof(Array16<Building>).GetField("m_buffer")); zonedBuildingInfoPanel = GameObject.Find("(Library) ZonedBuildingWorldInfoPanel").GetComponent<ZonedBuildingWorldInfoPanel>(); if (zonedBuildingInfoPanel != null) { AddBuildingPanelControls(zonedBuildingInfoPanel, out zonedBuildingAssetNameLabel, out zonedBuildingShowExplorerButton, new Vector3(-8.0f, 100.0f, 0.0f), out zonedBuildingDumpMeshTextureButton, new Vector3(-8.0f, 132.0f, 0.0f) ); initializedZonedBuildingsPanel = true; } } if (!initializedServiceBuildingsPanel) { sceneExplorer = FindObjectOfType<SceneExplorer>(); serviceBuildingInfoPanel = GameObject.Find("(Library) CityServiceWorldInfoPanel").GetComponent<CityServiceWorldInfoPanel>(); if (serviceBuildingInfoPanel != null) { AddBuildingPanelControls(serviceBuildingInfoPanel, out serviceBuildingAssetNameLabel, out serviceBuildingShowExplorerButton, new Vector3(-8.0f, 100.0f, 0.0f), out serviceBuildingDumpMeshTextureButton, new Vector3(-8.0f, 132.0f, 0.0f) ); initializedServiceBuildingsPanel = true; } } if (!initializedCitizenVehiclePanel) { sceneExplorer = FindObjectOfType<SceneExplorer>(); vehiclesBufferRefChain = new ReferenceChain(); vehiclesBufferRefChain = vehiclesBufferRefChain.Add(VehicleManager.instance.gameObject); vehiclesBufferRefChain = vehiclesBufferRefChain.Add(VehicleManager.instance); vehiclesBufferRefChain = vehiclesBufferRefChain.Add(typeof(VehicleManager).GetField("m_vehicles")); vehiclesBufferRefChain = vehiclesBufferRefChain.Add(typeof(Array16<Vehicle>).GetField("m_buffer")); vehiclesParkedBufferRefChain = new ReferenceChain(); vehiclesParkedBufferRefChain = vehiclesParkedBufferRefChain.Add(VehicleManager.instance.gameObject); vehiclesParkedBufferRefChain = vehiclesParkedBufferRefChain.Add(VehicleManager.instance); vehiclesParkedBufferRefChain = vehiclesParkedBufferRefChain.Add(typeof(VehicleManager).GetField("m_parkedVehicles")); vehiclesParkedBufferRefChain = vehiclesParkedBufferRefChain.Add(typeof(Array16<VehicleParked>).GetField("m_buffer")); citizenVehicleInfoPanel = GameObject.Find("(Library) CitizenVehicleWorldInfoPanel").GetComponent<CitizenVehicleWorldInfoPanel>(); if (citizenVehicleInfoPanel != null) { AddVehiclePanelControls( citizenVehicleInfoPanel, out citizenVehicleAssetNameLabel, out citizenVehicleShowExplorerButton, out citizenVehicleDumpTextureMeshButton ); initializedCitizenVehiclePanel = true; } } if (!initializedCityServiceVehiclePanel) { sceneExplorer = FindObjectOfType<SceneExplorer>(); cityServiceVehicleInfoPanel = GameObject.Find("(Library) CityServiceVehicleWorldInfoPanel").GetComponent<CityServiceVehicleWorldInfoPanel>(); if (cityServiceVehicleInfoPanel != null) { AddVehiclePanelControls( cityServiceVehicleInfoPanel, out cityServiceVehicleAssetNameLabel, out cityServiceVehicleShowExplorerButton, out cityServiceVehicleDumpTextureMeshButton); initializedCityServiceVehiclePanel = true; } } if (!initializedPublicTransportVehiclePanel) { sceneExplorer = FindObjectOfType<SceneExplorer>(); publicTransportVehicleInfoPanel = GameObject.Find("(Library) PublicTransportVehicleWorldInfoPanel").GetComponent<PublicTransportVehicleWorldInfoPanel>(); if (publicTransportVehicleInfoPanel != null) { AddVehiclePanelControls( publicTransportVehicleInfoPanel, out publicTransportVehicleAssetNameLabel, out publicTransportVehicleShowExplorerButton, out publicTransportVehicleDumpTextureMeshButton); initializedPublicTransportVehiclePanel = true; } } if (zonedBuildingInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate<InstanceID>(zonedBuildingInfoPanel, "m_InstanceID"); var building = BuildingManager.instance.m_buildings.m_buffer[instance.Building]; zonedBuildingAssetNameLabel.text = "AssetName: " + building.Info.name; } if (serviceBuildingInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate<InstanceID>(serviceBuildingInfoPanel, "m_InstanceID"); var building = BuildingManager.instance.m_buildings.m_buffer[instance.Building]; serviceBuildingAssetNameLabel.text = "AssetName: " + building.Info.name; } if (citizenVehicleInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate<InstanceID>(citizenVehicleInfoPanel, "m_InstanceID"); if (instance.Vehicle == 0) { var vehicle = VehicleManager.instance.m_parkedVehicles.m_buffer[instance.ParkedVehicle]; citizenVehicleAssetNameLabel.text = "AssetName: " + vehicle.Info.name; } else { var vehicle = VehicleManager.instance.m_vehicles.m_buffer[instance.Vehicle]; citizenVehicleAssetNameLabel.text = "AssetName: " + vehicle.Info.name; } } if (cityServiceVehicleInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate<InstanceID>(cityServiceVehicleInfoPanel, "m_InstanceID"); if (instance.Vehicle == 0) { var vehicle = VehicleManager.instance.m_parkedVehicles.m_buffer[instance.ParkedVehicle]; cityServiceVehicleAssetNameLabel.text = "AssetName: " + vehicle.Info.name; } else { var vehicle = VehicleManager.instance.m_vehicles.m_buffer[instance.Vehicle]; cityServiceVehicleAssetNameLabel.text = "AssetName: " + vehicle.Info.name; } } if (publicTransportVehicleInfoPanel.component.isVisible) { InstanceID instance = Util.GetPrivate<InstanceID>(publicTransportVehicleInfoPanel, "m_InstanceID"); if (instance.Vehicle == 0) { var vehicle = VehicleManager.instance.m_parkedVehicles.m_buffer[instance.ParkedVehicle]; publicTransportVehicleAssetNameLabel.text = "AssetName: " + vehicle.Info.name; } else { var vehicle = VehicleManager.instance.m_vehicles.m_buffer[instance.Vehicle]; publicTransportVehicleAssetNameLabel.text = "AssetName: " + vehicle.Info.name; } } }
public static object EditorValueField(ReferenceChain refChain, string hash, Type type, object value) { if (type == typeof(System.Single)) { var f = (float)value; FloatField(hash, "", ref f, 0.0f, true, true); if (f != (float)value) { return(f); } return(value); } if (type == typeof(System.Double)) { var f = (double)value; DoubleField(hash, "", ref f, 0.0f, true, true); if (f != (double)value) { return(f); } return(value); } if (type == typeof(System.Byte)) { var f = (byte)value; ByteField(hash, "", ref f, 0.0f, true, true); if (f != (byte)value) { return(f); } return(value); } if (type == typeof(System.Int32)) { var f = (int)value; IntField(hash, "", ref f, 0.0f, true, true); if (f != (int)value) { return(f); } return(value); } if (type == typeof(System.UInt32)) { var f = (uint)value; UIntField(hash, "", ref f, 0.0f, true, true); if (f != (uint)value) { return(f); } return(value); } if (type == typeof(System.Int64)) { var f = (Int64)value; Int64Field(hash, "", ref f, 0.0f, true, true); if (f != (Int64)value) { return(f); } return(value); } if (type == typeof(System.UInt64)) { var f = (UInt64)value; UInt64Field(hash, "", ref f, 0.0f, true, true); if (f != (UInt64)value) { return(f); } return(value); } if (type == typeof(System.Int16)) { var f = (Int16)value; Int16Field(hash, "", ref f, 0.0f, true, true); if (f != (Int16)value) { return(f); } return(value); } if (type == typeof(System.UInt16)) { var f = (UInt16)value; UInt16Field(hash, "", ref f, 0.0f, true, true); if (f != (UInt16)value) { return(f); } return(value); } if (type == typeof(System.Boolean)) { var f = (bool)value; BoolField("", ref f, 0.0f, true, true); if (f != (bool)value) { return(f); } return(value); } if (type == typeof(System.String)) { var f = (string)value; StringField(hash, "", ref f, 0.0f, true, true); if (f != (string)value) { return(f); } return(value); } if (type == typeof(System.Char)) { var f = (char)value; CharField(hash, "", ref f, 0.0f, true, true); if (f != (char)value) { return(f); } return(value); } if (type == typeof(UnityEngine.Vector2)) { var f = (Vector2)value; Vector2Field(hash, "", ref f, 0.0f, null, true, true); if (f != (Vector2)value) { return(f); } return(value); } if (type == typeof(UnityEngine.Vector3)) { var f = (Vector3)value; Vector3Field(hash, "", ref f, 0.0f, null, true, true); if (f != (Vector3)value) { return(f); } return(value); } if (type == typeof(UnityEngine.Vector4)) { var f = (Vector4)value; Vector4Field(hash, "", ref f, 0.0f, null, true, true); if (f != (Vector4)value) { return(f); } return(value); } if (type == typeof(UnityEngine.Quaternion)) { var f = (Quaternion)value; QuaternionField(hash, "", ref f, 0.0f, null, true, true); if (f != (Quaternion)value) { return(f); } return(value); } if (type == typeof(UnityEngine.Color)) { var f = (Color)value; ColorField(hash, "", ref f, 0.0f, null, true, true, color => { refChain.SetValue(color); }); if (f != (Color)value) { return(f); } return(value); } if (type == typeof(UnityEngine.Color32)) { var f = (Color32)value; Color32Field(hash, "", ref f, 0.0f, null, true, true, color => { refChain.SetValue(color); }); var v = (Color32)value; if (f.r != v.r || f.g != v.g || f.b != v.b || f.a != v.a) { return(f); } return(value); } if (type.IsEnum) { var f = value; EnumField(hash, "", ref f, 0.0f, true, true); if (f != value) { return(f); } return(value); } return(value); }
public void AddWatch(ReferenceChain refChain, FieldInfo field, object o) { fieldWatches.Add(refChain, new KeyValuePair <FieldInfo, object>(field, o)); visible = true; }
public ReferenceChain Copy() { ReferenceChain copy = new ReferenceChain(); copy.count = count; for (int i = 0; i < count; i++) { copy.chainObjects[i] = chainObjects[i]; copy.chainTypes[i] = chainTypes[i]; } copy.identOffset = identOffset; return copy; }
public static object EditorValueField(ReferenceChain refChain, string hash, Type type, object value) { if (type == typeof(System.Single)) { var f = (float)value; FloatField(hash, "", ref f, 0.0f, true, true); if (f != (float)value) { return f; } return value; } if (type == typeof(System.Double)) { var f = (double)value; DoubleField(hash, "", ref f, 0.0f, true, true); if (f != (double)value) { return f; } return value; } if (type == typeof(System.Byte)) { var f = (byte)value; ByteField(hash, "", ref f, 0.0f, true, true); if (f != (byte)value) { return f; } return value; } if (type == typeof(System.Int32)) { var f = (int)value; IntField(hash, "", ref f, 0.0f, true, true); if (f != (int)value) { return f; } return value; } if (type == typeof(System.UInt32)) { var f = (uint)value; UIntField(hash, "", ref f, 0.0f, true, true); if (f != (uint)value) { return f; } return value; } if (type == typeof(System.Int64)) { var f = (Int64)value; Int64Field(hash, "", ref f, 0.0f, true, true); if (f != (Int64)value) { return f; } return value; } if (type == typeof(System.UInt64)) { var f = (UInt64)value; UInt64Field(hash, "", ref f, 0.0f, true, true); if (f != (UInt64)value) { return f; } return value; } if (type == typeof(System.Int16)) { var f = (Int16)value; Int16Field(hash, "", ref f, 0.0f, true, true); if (f != (Int16)value) { return f; } return value; } if (type == typeof(System.UInt16)) { var f = (UInt16)value; UInt16Field(hash, "", ref f, 0.0f, true, true); if (f != (UInt16)value) { return f; } return value; } if (type == typeof(System.Boolean)) { var f = (bool)value; BoolField("", ref f, 0.0f, true, true); if (f != (bool)value) { return f; } return value; } if (type == typeof(System.String)) { var f = (string)value; StringField(hash, "", ref f, 0.0f, true, true); if (f != (string)value) { return f; } return value; } if (type == typeof(System.Char)) { var f = (char)value; CharField(hash, "", ref f, 0.0f, true, true); if (f != (char)value) { return f; } return value; } if (type == typeof(UnityEngine.Vector2)) { var f = (Vector2)value; Vector2Field(hash, "", ref f, 0.0f, null, true, true); if (f != (Vector2)value) { return f; } return value; } if (type == typeof(UnityEngine.Vector3)) { var f = (Vector3)value; Vector3Field(hash, "", ref f, 0.0f, null, true, true); if (f != (Vector3)value) { return f; } return value; } if (type == typeof(UnityEngine.Vector4)) { var f = (Vector4)value; Vector4Field(hash, "", ref f, 0.0f, null, true, true); if (f != (Vector4)value) { return f; } return value; } if (type == typeof(UnityEngine.Quaternion)) { var f = (Quaternion)value; QuaternionField(hash, "", ref f, 0.0f, null, true, true); if (f != (Quaternion)value) { return f; } return value; } if (type == typeof(UnityEngine.Color)) { var f = (Color)value; ColorField(hash, "", ref f, 0.0f, null, true, true, color => { refChain.SetValue(color); }); if (f != (Color)value) { return f; } return value; } if (type == typeof(UnityEngine.Color32)) { var f = (Color32)value; Color32Field(hash, "", ref f, 0.0f, null, true, true, color => { refChain.SetValue(color); }); var v = (Color32)value; if (f.r != v.r || f.g != v.g || f.b != v.b || f.a != v.a) { return f; } return value; } if (type.IsEnum) { var f = value; EnumField(hash, "", ref f, 0.0f, true, true); if (f != value) { return f; } return value; } return value; }
public void AddWatch(ReferenceChain refChain) { watches.Add(refChain); visible = true; }
public object ReadWatch(ReferenceChain refChain) { object ret = null; if (fieldWatches.ContainsKey(refChain)) { try { ret = fieldWatches[refChain].Key.GetValue(fieldWatches[refChain].Value); } catch (Exception) { return null; } } if (propertyWatches.ContainsKey(refChain)) { try { ret = propertyWatches[refChain].Key.GetValue(propertyWatches[refChain].Value, null); } catch (Exception) { return null; } } return ret; }