private void drawOnMap(IHasNode hasNode, Color4 color4, float size) { var localPos = Vector3.TransformCoordinate(hasNode.Node.Position, Matrix.Invert(level.LocalPlayer.Node.Absolute)); var rel = localPos.TakeXZ(); rel /= mapViewRange; rel = (rel + new Vector2(1)) * 0.5f; // 0-1 range var pos = mapPos + Vector2.Modulate(mapSize, rel); pos -= new Vector2(size * 0.5f); TW.Graphics.TextureRenderer.DrawColor(color4, pos, new Vector2(size)); }
public static IDisposable AllowEdits <TSyntax>(params IHasSyntax <TSyntax>[] editableObjects) where TSyntax : class { foreach (IHasSyntax <TSyntax> editableObject in editableObjects) { IHasNode <TSyntax> node = editableObject as IHasNode <TSyntax>; if (node == null) { throw new InvalidOperationException(editableObject.GetType().FullName + " is not set up for edits."); } editedNodes.Add(node.Node); } return(new DisposableValue()); }