/// <summary> /// Create a new dynamic marker /// </summary> /// <param name="markerType">The type of marker to spawn.</param> /// <param name="position">The position at which the marker should spawn at.</param> /// <param name="scale">The scale of the marker.</param> /// <param name="rotation">The rotation of the marker.</param> /// <param name="direction">The direction of the marker.</param> /// <param name="color">The color of the marker.</param> /// <param name="bobUpDown">Whether the marker should bob up and down.</param> /// <param name="faceCamera">Whether the marker should face the entity's camera.</param> /// <param name="rotate">Whether the marker should rotate on the Y axis only.</param> /// <param name="textureDict">An optional texture dictionary to apply to the marker.</param> /// <param name="textureName">An optional texture name to apply to the marker.</param> /// <param name="drawOnEnter">Whether it should draw the marker onto an entity that intersects with it.</param> /// <param name="dimension">The dimension of the marker</param> /// <param name="streamRange">Stream distance of the marker, default is 100.</param> /// <returns></returns> public static Marker Create( MarkerTypes markerType, Vector3 position, Vector3 scale, Vector3?rotation = null, Vector3?direction = null, Rgba?color = null, int dimension = 0, bool?bobUpDown = false, bool?faceCamera = false, bool?rotate = false, string textureDict = null, string textureName = null, bool?drawOnEnter = false, uint streamRange = 100 ) { Marker marker = new Marker(position, dimension, streamRange, 0) { Rotation = rotation ?? new Vector3(0), MarkerType = markerType, Direction = direction ?? new Vector3(0), Scale = scale, Color = color ?? null, BobUpDown = bobUpDown ?? null, FaceCamera = faceCamera ?? null, Rotate = rotate ?? null, TextureDict = textureDict ?? null, TextureName = textureName ?? null, DrawOnEnter = drawOnEnter ?? null }; Marker.MarkerList.Add(marker); AltEntitySync.AddEntity(marker); return(marker); }
public Marker(Marker CopyMarker, string NewName = "") { ConnectedToChains = new List <Chain>(); AdjacentToMarker = new List <Marker>(); for (int i = 0; i < CopyMarker.ConnectedToChains.Count; i++) { ConnectedToChains.Add(CopyMarker.ConnectedToChains[i]); } for (int i = 0; i < CopyMarker.AdjacentToMarker.Count; i++) { AdjacentToMarker.Add(CopyMarker.AdjacentToMarker[i]); } if (string.IsNullOrEmpty(NewName)) { Name = GetLowestName(CopyMarker.MarkerType); } else { Name = NewName; } AddNewMarker(this); size = CopyMarker.size; amount = CopyMarker.amount; position = ScmapEditor.WorldPosToScmap(CopyMarker.MarkerObj.transform.position); orientation = Markers.MarkerObject.MarkerRotToScmapRot(CopyMarker.MarkerObj.Tr.localRotation, CopyMarker.MarkerType); prop = "/env/common/props/markers/M_Blank_prop.bp"; MarkerType = CopyMarker.MarkerType; type = MarkerTypeToString(CopyMarker.MarkerType); if (MarkerType == MarkerTypes.Mass) { resource = true; //amount = 100; prop = "/env/common/props/markers/M_Mass_prop.bp"; color = "ff808080"; } else if (MarkerType == MarkerTypes.Hydrocarbon) { //size = 3; resource = true; //amount = 100; prop = "/env/common/props/markers/M_Hydrocarbon_prop.bp"; color = "ff808080"; } else if (MarkerType == MarkerTypes.CameraInfo) { canSyncCamera = CopyMarker.canSyncCamera; canSetCamera = CopyMarker.canSetCamera; zoom = CopyMarker.zoom; } }
//Initialiser public StationFacilitiesMarker(Context Context, float XNorm, float YNorm, MarkerTypes MarkerType) { //Set Variables _XNorm = XNorm; _YNorm = YNorm; _MarkerType = MarkerType; RtGraphicsLayouts = new RtGraphicsLayouts(Context); _MarkerView = new ImageView(Context); _MarkerView.SetBackgroundResource(Resource.Drawable.IconMapDoor); }
public static GMapMarker CreateMarker(MarkerTypes type, PointLatLng point = new PointLatLng()) { var googleType = GMarkerGoogleType.blue; if (MarkerTypesHelper.Markers.ContainsKey(type)) { googleType = MarkerTypesHelper.Markers[type]; } return(new GMarkerGoogle(point, googleType)); }
/// <summary> /// Creates a new QuestMarker. /// </summary> QuestMarker CreateQuestMarker(MarkerTypes markerType, Vector3 flatPosition, int dungeonX = 0, int dungeonZ = 0) { QuestMarker questMarker = new QuestMarker(); questMarker.questUID = ParentQuest.UID; questMarker.placeSymbol = Symbol; questMarker.markerType = markerType; questMarker.flatPosition = flatPosition; questMarker.dungeonX = dungeonX; questMarker.dungeonZ = dungeonZ; return(questMarker); }
public static string MarkerTypeToString(MarkerTypes MType) { string str1 = MType.ToString(); string newstring = ""; for (int i = 0; i < str1.Length; i++) { if (i > 0 && char.IsUpper(str1[i])) { newstring += " "; } newstring += str1[i].ToString(); } return(newstring); }
/// <summary> /// Initializes a new instance of the Visifire.Commons.Marker class /// </summary> public Marker(MarkerTypes markerType, Double scaleFactor, Size markerSize, Boolean markerBevel, Brush markerColor, String markerLabelText) { MarkerType = markerType; MarkerFillColor = markerColor; Text = markerLabelText; TextOrientation = Orientation.Horizontal; TextAlignmentX = AlignmentX.Right; TextAlignmentY = AlignmentY.Center; ScaleFactor = scaleFactor; MarkerSize = markerSize; BorderThickness = 1; TextBackground = new SolidColorBrush(Colors.Transparent); Bevel = markerBevel; Opacity = 1; LabelAngle = Double.NaN; }
void RenderAvailableMoves(Unit unit) { if (unit != null) { if (unit.AvailableMoves == null) { unit.UpdateAvailableMoves(); } unit.AvailableMoves.ForEach(position => { MarkerTypes markerType = unit == ActivePlayer.CurrentUnit && ActivePlayer.turnManager.CanPerformMovement(unit) ? MarkerTypes.Movement : MarkerTypes.MovementPreview; TintMarker(movementAreaTilemap, position, markerType); availableMoves.Add(position); }); } }
private void TintMarker(Tilemap tilemap, Vector3Int position, MarkerTypes type) { Dictionary <MarkerTypes, Color> markerColors = new Dictionary <MarkerTypes, Color>() { { MarkerTypes.Default, defaultTileTint }, { MarkerTypes.Attack, attackTileTint }, { MarkerTypes.AttackPreview, attackPreviewTileTint }, { MarkerTypes.Movement, movementTileTint }, { MarkerTypes.MovementPreview, movementPreviewTileTint } }; Color tintColor = markerColors[type]; bool shouldHighlight = position == HoveredCell && (type == MarkerTypes.Attack || type == MarkerTypes.Movement); if (shouldHighlight) { tintColor.a = 180; } tilemap.SetColor(position, tintColor); }
public MarkerLayers LayerByType(MarkerTypes Type) { if (Type == MarkerTypes.BlankMarker || Type == MarkerTypes.Mass || Type == MarkerTypes.Hydrocarbon || Type == MarkerTypes.CameraInfo) { return(MarkerLayers.NoAI); } else if (Type == MarkerTypes.LandPathNode || Type == MarkerTypes.RallyPoint || Type == MarkerTypes.AmphibiousPathNode || Type == MarkerTypes.AutoPathNode) { return(MarkerLayers.Land); } else if (Type == MarkerTypes.WaterPathNode || Type == MarkerTypes.NavalRallyPoint || Type == MarkerTypes.NavalLink || Type == MarkerTypes.AutoPathNode) { return(MarkerLayers.Naval); } else if (Type == MarkerTypes.AirPathNode) { return(MarkerLayers.Air); } else { return(MarkerLayers.Other); } }
void CreateMarker(Transform parent, MarkerTypes marker, Node n) { string prefab = ""; if (marker == MarkerTypes.VideoCameraMarker) { prefab = "VideoCamera"; } if (marker == MarkerTypes.StillCameraMarker) { prefab = "StillCamera"; } if (marker == MarkerTypes.State) { prefab = "FlyState"; } GameObject gpPrefab = AssetDatabase.LoadAssetAtPath("Assets/DroneTrack/Prefabs/" + prefab + ".prefab", typeof(GameObject)) as GameObject; GameObject gog = (GameObject)Instantiate(gpPrefab); gog.transform.name = prefab; gog.transform.SetParent(parent); gog.transform.position = n.DronePosition; gog.transform.localRotation = n.DroneRotation; if (marker == MarkerTypes.State) { GameObject state = gog.transform.Find("State").gameObject; TextMesh tm = state.GetComponent <TextMesh>(); tm.text = n.FlyState; GameObject mess = gog.transform.Find("Message").gameObject; TextMesh tmm = mess.GetComponent <TextMesh>(); tmm.text = n.Message; } }
public Marker(MarkerTypes Type, string NewName = "") { ConnectedToChains = new List <Chain>(); AdjacentToMarker = new List <Marker>(); if (string.IsNullOrEmpty(NewName)) { Name = GetLowestName(Type); } else { Name = NewName; } AddNewMarker(this); size = 1; position = Vector3.zero; orientation = Vector3.zero; MarkerType = Type; type = MarkerTypeToString(Type); DefaultsByType(); }
public static string GetName(MarkerTypes type) { return(TypesHelper.GetName(Names, type)); }
public Marker(string name, LuaTable Table) { // Create marker from table Name = name; AddNewMarker(this); ConnectedToChains = new List <Chain>(); AdjacentToMarker = new List <Marker>(); string[] Keys = LuaParser.Read.GetTableKeys(Table); for (int k = 0; k < Keys.Length; k++) { switch (Keys[k]) { #region Search For Keys case KEY_POSITION: position = LuaParser.Read.Vector3FromTable(Table, KEY_POSITION); break; case KEY_ORIENTATION: orientation = LuaParser.Read.Vector3FromTable(Table, KEY_ORIENTATION); break; case KEY_SIZE: size = LuaParser.Read.FloatFromTable(Table, KEY_SIZE); break; case KEY_RESOURCE: resource = LuaParser.Read.BoolFromTable(Table, KEY_RESOURCE); break; case KEY_AMOUNT: amount = LuaParser.Read.FloatFromTable(Table, KEY_AMOUNT); break; case KEY_COLOR: color = LuaParser.Read.StringFromTable(Table, KEY_COLOR); break; case KEY_TYPE: type = LuaParser.Read.StringFromTable(Table, KEY_TYPE); break; case KEY_PROP: prop = LuaParser.Read.StringFromTable(Table, KEY_PROP); break; case KEY_EDITORICON: editorIcon = LuaParser.Read.StringFromTable(Table, KEY_EDITORICON); break; case KEY_HINT: hint = LuaParser.Read.BoolFromTable(Table, KEY_HINT); break; case KEY_ZOOM: zoom = LuaParser.Read.FloatFromTable(Table, KEY_ZOOM); break; case KEY_ADJACENTTO: adjacentTo = LuaParser.Read.StringFromTable(Table, KEY_ADJACENTTO); break; case KEY_GRAPH: graph = LuaParser.Read.StringFromTable(Table, KEY_GRAPH); break; case KEY_CANSETCAMERA: canSetCamera = LuaParser.Read.BoolFromTable(Table, KEY_CANSETCAMERA); break; case KEY_CANSYNCCAMERA: canSyncCamera = LuaParser.Read.BoolFromTable(Table, KEY_CANSYNCCAMERA); break; //Effect case KEY_OFFSET: offset = LuaParser.Read.Vector3FromTable(Table, KEY_OFFSET); break; case KEY_EFFECTTEMPLATE: EffectTemplate = LuaParser.Read.StringFromTable(Table, KEY_EFFECTTEMPLATE); break; case KEY_SCALE: scale = LuaParser.Read.FloatFromTable(Table, KEY_SCALE); break; // Weather Generator case KEY_CLOUDCOUNT: cloudCount = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDCOUNT); break; case KEY_CLOUDEMITTERSCALE: cloudEmitterScale = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDEMITTERSCALE); break; case KEY_CLOUDEMITTERSCALERANGE: cloudEmitterScaleRange = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDEMITTERSCALERANGE); break; case KEY_CLOUDCOUNTRANGE: cloudCountRange = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDCOUNTRANGE); break; case KEY_CLOUDSPREAD: cloudSpread = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDSPREAD); break; case KEY_CLOUDHEIGHTRANGE: cloudHeightRange = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDHEIGHTRANGE); break; case KEY_SPAWNCHANCE: spawnChance = LuaParser.Read.FloatFromTable(Table, KEY_SPAWNCHANCE); break; case KEY_FORCETYPE: ForceType = LuaParser.Read.StringFromTable(Table, KEY_FORCETYPE); break; case KEY_CLOUDHEIGHT: cloudHeight = LuaParser.Read.FloatFromTable(Table, KEY_CLOUDHEIGHT); break; // Weather Definition case KEY_WEATHERDRIFTDIRECTION: WeatherDriftDirection = LuaParser.Read.Vector3FromTable(Table, KEY_WEATHERDRIFTDIRECTION); break; case KEY_MAPSTYLE: MapStyle = LuaParser.Read.StringFromTable(Table, KEY_MAPSTYLE); break; case KEY_WEATHERTYPE01: WeatherType01 = LuaParser.Read.StringFromTable(Table, KEY_WEATHERTYPE01); break; case KEY_WEATHERTYPE02: WeatherType02 = LuaParser.Read.StringFromTable(Table, KEY_WEATHERTYPE02); break; case KEY_WEATHERTYPE03: WeatherType03 = LuaParser.Read.StringFromTable(Table, KEY_WEATHERTYPE03); break; case KEY_WEATHERTYPE04: WeatherType04 = LuaParser.Read.StringFromTable(Table, KEY_WEATHERTYPE04); break; case KEY_WEATHERTYPE01CHANCE: WeatherType01Chance = LuaParser.Read.FloatFromTable(Table, KEY_WEATHERTYPE01CHANCE); break; case KEY_WEATHERTYPE02CHANCE: WeatherType02Chance = LuaParser.Read.FloatFromTable(Table, KEY_WEATHERTYPE02CHANCE); break; case KEY_WEATHERTYPE03CHANCE: WeatherType03Chance = LuaParser.Read.FloatFromTable(Table, KEY_WEATHERTYPE03CHANCE); break; case KEY_WEATHERTYPE04CHANCE: WeatherType04Chance = LuaParser.Read.FloatFromTable(Table, KEY_WEATHERTYPE04CHANCE); break; #endregion } } if (string.IsNullOrEmpty(type)) { MarkerType = MarkerTypes.BlankMarker; } else { MarkerType = StringToMarkerType(type); } if (color.Contains("' ),")) { // Hard fix for wrong syntax color = color.Replace("' ),", ""); prop = prop.Replace("' ),", ""); } }
/// <summary> /// Assigns a quest resource to this Place site. /// Supports Persons, Foes, Items from within same quest as Place. /// Quest must have previously created SiteLink for layout builders to discover assigned resources. /// </summary> /// <param name="targetSymbol">Resource symbol of Person, Item, or Foe to assign.</param> public void AssignQuestResource(Symbol targetSymbol) { // Site must have at least one marker of each type if (!ValidateQuestMarkers(siteDetails.questSpawnMarkers, siteDetails.questItemMarkers)) { throw new Exception(string.Format("Tried to assign resource {0} to Place without at least 1x spawn and 1x item marker.", targetSymbol.Name)); } // Attempt to get resource from symbol QuestResource resource = ParentQuest.GetResource(targetSymbol); if (resource == null) { throw new Exception(string.Format("Could not locate quest resource with symbol {0}", targetSymbol.Name)); } // Must be a supported resource type MarkerTypes requiredMarkerType = MarkerTypes.None; if (resource is Person || resource is Foe) { requiredMarkerType = MarkerTypes.QuestSpawn; } else if (resource is Item) { requiredMarkerType = MarkerTypes.QuestItem; } else { throw new Exception(string.Format("Tried to assign incompatible resource symbol {0} to Place", targetSymbol.Name)); } // Assign target resource to marker selected for this quest if (requiredMarkerType == MarkerTypes.QuestSpawn) { AssignResourceToMarker(targetSymbol, ref siteDetails.questSpawnMarkers[siteDetails.selectedQuestSpawnMarker]); } else if (requiredMarkerType == MarkerTypes.QuestItem) { AssignResourceToMarker(targetSymbol, ref siteDetails.questItemMarkers[siteDetails.selectedQuestItemMarker]); } else { throw new Exception(string.Format("Tried to assign resource symbol _{0}_ to Place {1} but it has an unknown MarkerType {2}", targetSymbol.Name, Symbol.Name, requiredMarkerType.ToString())); } // Output debug information if (resource is Person) { if (siteDetails.siteType == SiteTypes.Building) { if (requiredMarkerType == MarkerTypes.QuestSpawn) { Debug.LogFormat("Assigned Person {0} to Building {1}", (resource as Person).DisplayName, SiteDetails.buildingName); } } else if (siteDetails.siteType == SiteTypes.Dungeon) { if (requiredMarkerType == MarkerTypes.QuestSpawn) { Debug.LogFormat("Assigned Person {0} to Dungeon {1}", (resource as Person).DisplayName, SiteDetails.locationName); } } } else if (resource is Foe) { if (siteDetails.siteType == SiteTypes.Building) { if (requiredMarkerType == MarkerTypes.QuestSpawn) { Debug.LogFormat("Assigned Foe _{0}_ to Building {1}", resource.Symbol.Name, SiteDetails.buildingName); } } else if (siteDetails.siteType == SiteTypes.Dungeon) { if (requiredMarkerType == MarkerTypes.QuestSpawn) { Debug.LogFormat("Assigned Foe _{0}_ to Dungeon {1}", resource.Symbol.Name, SiteDetails.locationName); } } } else if (resource is Item) { if (siteDetails.siteType == SiteTypes.Building) { if (requiredMarkerType == MarkerTypes.QuestItem) { Debug.LogFormat("Assigned Item _{0}_ to Building {1}", resource.Symbol.Name, SiteDetails.buildingName); } } else if (siteDetails.siteType == SiteTypes.Dungeon) { if (requiredMarkerType == MarkerTypes.QuestItem) { Debug.LogFormat("Assigned Item _{0}_ to Dungeon {1}", resource.Symbol.Name, SiteDetails.locationName); } } } }
public void InitFrom(Marker other) { DeviceId = other.DeviceId; DeviceName = other.DeviceName; MarkerType = other.MarkerType; }
/// <summary> /// Gets the quest spawn marker in player's current location. /// </summary> /// <param name="markerType">Get quest spawn or item marker.</param> /// <param name="questMarkerOut">QuestMarker out.</param> /// <param name="buildingOriginOut">Building origin in scene, or Vector3.zero if not inside a building.</param> /// <returns>True if successful.</returns> public bool GetCurrentLocationQuestMarker(MarkerTypes markerType, out QuestMarker questMarkerOut, out Vector3 buildingOriginOut) { questMarkerOut = new QuestMarker(); buildingOriginOut = Vector3.zero; // Get PlayerEnterExit for world context PlayerEnterExit playerEnterExit = GameManager.Instance.PlayerEnterExit; if (!playerEnterExit) { return(false); } // Get SiteLinks for player's current location SiteLink[] siteLinks = null; if (playerEnterExit.IsPlayerInsideBuilding) { StaticDoor[] exteriorDoors = playerEnterExit.ExteriorDoors; if (exteriorDoors == null || exteriorDoors.Length < 1) { return(false); } siteLinks = GetSiteLinks(SiteTypes.Building, GameManager.Instance.PlayerGPS.CurrentMapID, exteriorDoors[0].buildingKey); if (siteLinks == null || siteLinks.Length == 0) { return(false); } Vector3 buildingPosition = exteriorDoors[0].buildingMatrix.GetColumn(3); buildingOriginOut = exteriorDoors[0].ownerPosition + buildingPosition; } else if (playerEnterExit.IsPlayerInsideDungeon) { siteLinks = GetSiteLinks(SiteTypes.Dungeon, GameManager.Instance.PlayerGPS.CurrentMapID); } else { return(false); } // Exit if no links found if (siteLinks == null || siteLinks.Length == 0) { return(false); } // Walk through all found SiteLinks foreach (SiteLink link in siteLinks) { // Get the Quest object referenced by this link Quest quest = GetActiveQuest(link.questUID); if (quest == null) { return(false); } // Get the Place resource referenced by this link Place place = quest.GetPlace(link.placeSymbol); if (place == null) { return(false); } // Get spawn marker QuestMarker spawnMarker = place.SiteDetails.questSpawnMarkers[place.SiteDetails.selectedQuestSpawnMarker]; if (markerType == MarkerTypes.QuestSpawn && spawnMarker.targetResources != null) { questMarkerOut = spawnMarker; return(true); } // Get item marker QuestMarker itemMarker = place.SiteDetails.questItemMarkers[place.SiteDetails.selectedQuestItemMarker]; if (markerType == MarkerTypes.QuestItem && itemMarker.targetResources != null) { questMarkerOut = itemMarker; return(true); } } return(false); }
private string GetDefinition(XmlDocument document, MarkerTypes marker) { if (marker == MarkerTypes.None) { return(null); } string ns = document.DocumentElement.NamespaceURI; // Find the metadata tag var defs = document.DocumentElement.SelectSingleNode("defs"); if (defs == null) { defs = document.DocumentElement.PrependChild(document.CreateElement("defs", ns)); } // For each marker, provide a definition XmlElement elt; switch (marker) { case MarkerTypes.Arrow: elt = (XmlElement)defs.SelectSingleNode("marker[@id='arrow']"); if (elt == null) { elt = document.CreateElement("marker", ns); elt.SetAttribute("id", "arrow"); elt.SetAttribute("refX", "0"); elt.SetAttribute("refY", "0"); elt.SetAttribute("orient", "auto"); elt.SetAttribute("markerUnits", "userSpaceOnUse"); elt.SetAttribute("style", "overflow:visible"); var pl = document.CreateElement("polygon", ns); pl.SetAttribute("class", "arrowhead"); pl.SetAttribute("points", "-2.5,1 0,0 -2.5,-1 -2,0"); elt.AppendChild(pl); defs.AppendChild(elt); } return("url(#arrow)"); case MarkerTypes.Dot: elt = (XmlElement)defs.SelectSingleNode("marker[@id='dot']"); if (elt == null) { elt = document.CreateElement("marker", ns); elt.SetAttribute("id", "dot"); elt.SetAttribute("refX", "0"); elt.SetAttribute("refY", "0"); elt.SetAttribute("orient", "auto"); elt.SetAttribute("markerUnits", "userSpaceOnUse"); elt.SetAttribute("style", "overflow:visible"); var c = document.CreateElement("circle", ns); c.SetAttribute("cx", "0"); c.SetAttribute("cy", "0"); c.SetAttribute("r", "1"); c.SetAttribute("class", "dot"); elt.AppendChild(c); defs.AppendChild(elt); } return("url(#dot)"); case MarkerTypes.Slash: elt = (XmlElement)defs.SelectSingleNode("marker[@id='slash']"); if (elt == null) { elt = document.CreateElement("marker", ns); elt.SetAttribute("id", "slash"); elt.SetAttribute("refX", "0"); elt.SetAttribute("refY", "0"); elt.SetAttribute("orient", "auto"); elt.SetAttribute("markerUnits", "userSpaceOnUse"); elt.SetAttribute("style", "overflow:visible"); var pl = document.CreateElement("line", ns); pl.SetAttribute("x1", "-1"); pl.SetAttribute("y1", "2"); pl.SetAttribute("x2", "1"); pl.SetAttribute("y2", "-2"); elt.AppendChild(pl); defs.AppendChild(elt); } return("url(#slash)"); } return(null); }