// Called when the node enters the scene tree for the first time. public override void _Ready() { if (bulletStartPos == null) { bulletStartPos = new Vector3(); } if (bulletEndPos == null) { bulletEndPos = bulletStartPos; } bulletPos = bulletStartPos; stepPoints = new Dictionary(); collisionList = new Array <PhysicsBody>(); decal = ResourceLoader.Load <PackedScene>("res://Scenes/Decals/BulletHole.tscn"); debugDrawNode = Main.instance.GetNode("DebugDraw") as ImmediateGeometry; material = new SpatialMaterial(); material.FlagsUnshaded = true; material.FlagsUsePointSize = true; material.FlagsNoDepthTest = true; debugDrawNode.MaterialOverride = material; debugDrawNode2 = Main.instance.GetNode("DebugDrawPen") as ImmediateGeometry; material2 = new SpatialMaterial(); material2.FlagsUnshaded = true; material2.FlagsUsePointSize = true; material2.FlagsNoDepthTest = true; material2.AlbedoColor = Colors.Red; debugDrawNode2.MaterialOverride = material2; }
public override void _Ready() { base._Ready(); geometry = new ImmediateGeometry(); geometry.MaterialOverride = trailMaterial; AddChild(geometry); }
public SpatialDebugger() { instance = this; lineDrawer = new ImmediateGeometry(); lines = new List <Line>(); }
public void draw(ImmediateGeometry ig) { if (OS.IsDebugBuild()) { _DebugDraw(ig); } }
// Called when the node enters the scene tree for the first time. public override void _Ready() { Spatial spatial = GetTree().Root.GetChild(0) as Spatial; if (spatial is null) { throw new NullReferenceException("Failed to find Spatial node"); } List <CSGSphere> spheres = new List <CSGSphere>(); ImmediateGeometry lineRenderer = null; foreach (Node node in spatial.GetChildren()) { Type type = node.GetType(); string name = node.Name; if (type == typeof(CSGSphere) && name.StartsWith("Sphere")) { spheres.Add(node as CSGSphere); } else if (type == typeof(CSGBox) && name.Equals("Cube")) { cube = node as CSGBox; } else if (type == typeof(ImmediateGeometry) && name.Equals("LineRenderer")) { lineRenderer = node as ImmediateGeometry; } } if (spheres.Count < 2) { throw new NullReferenceException("Failed to find at least two Spheres"); } if (cube is null) { throw new NullReferenceException("Failed to find Cube"); } if (lineRenderer is null) { throw new NullReferenceException("Failed to find LineRenderer"); } List <Vector3> sphereOrigins = spheres.Select(sphere => sphere.Transform.origin).ToList(); if (doLoop) { sphereOrigins.Add(sphereOrigins[0]); } points = sphereOrigins.ToArray(); lineRenderer.Set("globalCoords", false); lineRenderer.Set("points", points); }
private void CreateDesiredPositionLine() { var line = new ImmediateGeometry(); // line.SetColor(new Color(1,0,0,1)); // This doesn't seem to work line.SetName("desiredPositionLine"); line.SetVisible(false); this.AddChild(line); }
public override void _Ready() { //Need to make a shader specifically for this so we don't need to duplicate the materials each time as it causes compiling lag when playing particles = GetChild <Particles>(2); UpdateColor(); if (Engine.EditorHint) { tragectory = (ImmediateGeometry)GetTree().GetNodesInGroup("Lines")[0]; } }
// core logic public override void _Ready() { mini_gui = GetNode <Control>("bot_GUI"); mini_gui.Visible = false; text = GetNode <Label>("bot_GUI/box_text"); nav = GetTree().Root.GetNode <Navigation>("Spatial/Navigation"); debug = GetNode <ImmediateGeometry>("debug_line"); RemoveChild(debug); GetTree().Root.CallDeferred("add_child", debug); goals = GetTree().Root.GetNode <Spatial>("Spatial/goals"); target_point = Translation; rng = new Random(); }
public void LoadReference() { Scene = GetTree().CurrentScene; Camera = (Camera)Scene.GetNode("CameraInGame"); ChunkManager.Camera = Camera; if (m_Debug) { UI = (Control)Scene.GetNode("DEBUG_UI/HBoxContainer"); FPS = (Label)UI.GetNode("fps"); LoadedCount = (Label)UI.GetNode("loaded"); x = (Label)UI.GetNode("x"); y = (Label)UI.GetNode("y"); z = (Label)UI.GetNode("z"); } debugCursor = Scene.GetNode("BlockOutline") as ImmediateGeometry; }
private void DrawAxis() { ImmediateGeometry xAxis = GetNode <ImmediateGeometry>("xAxis"); ImmediateGeometry yAxis = GetNode <ImmediateGeometry>("yAxis"); ImmediateGeometry zAxis = GetNode <ImmediateGeometry>("zAxis"); xAxis.Begin(Mesh.PrimitiveType.LineStrip); xAxis.AddVertex(Vector3.Zero); xAxis.AddVertex(new Vector3(100, 0, 0)); xAxis.End(); yAxis.Begin(Mesh.PrimitiveType.LineStrip); yAxis.AddVertex(Vector3.Zero); yAxis.AddVertex(new Vector3(0, 100, 0)); yAxis.End(); zAxis.Begin(Mesh.PrimitiveType.LineStrip); zAxis.AddVertex(Vector3.Zero); zAxis.AddVertex(new Vector3(0, 0, 100)); zAxis.End(); }
protected override void _DebugDraw(ImmediateGeometry ig) { if (Owner != null) { ig.Clear(); ig.Begin(Mesh.PrimitiveType.LineStrip); ig.SetColor(new Color(1, 0, 0)); if (!ig.IsSetAsToplevel()) { ig.SetAsToplevel(true); } ig.SetTranslation(new Vector3(0, 0, 0)); ig.AddVertex(Owner.Translation); foreach (var p in way_points) { ig.AddVertex(p); } ig.End(); } }
public LineRenderer1(Node parent, Camera camera, int cornerSmooth, int jointSmooth, Shader shader) { material = new ShaderMaterial(); material.SetShader(shader != null ? shader : ResourceLoader.Load("res://src/Common/Utils/Shaders/default.shader") as Shader); geometry = new ImmediateGeometry(); geometry.SetCastShadowsSetting(GeometryInstance.ShadowCastingSetting.DoubleSided); geometry.SetMaterialOverride(material); parent.AddChild(geometry); this.camera = camera; this.cornerSmooth = (cornerSmooth / 2); this.jointSmooth = jointSmooth; Last = new Vector3[2]; Up = new Vector3[4]; Low = new Vector3[4]; Variables = new Vector3[6]; Crossed = new bool[2]; Score = new float[2]; Segments = new Vector3[2]; startThickness = endThickness = 0.1f; }
private void LoadWAD(string WADPath, string LevelName) { byte[] buffer; int i; GD.Print($"Opening {WADPath}..."); File file = new File(); file.Open(WADPath, File.ModeFlags.Read); if (file.Open(WADPath, File.ModeFlags.Read) != Godot.Error.Ok) { GD.Print($"Failed to open WAD file {WADPath}"); return; } if (printDebugInfo) { GD.Print("READING HEADER..."); } Header header = new Header(); header.Type = Decode32AsString(file); header.LumpNum = file.Get32(); header.DirOffset = file.Get32(); GD.Print($"{this.WADPath} is {header.Type}"); if (printDebugInfo) { GD.Print("READING LUMPS"); } Lump lumpMapname = new Lump(); Lump lumpThings = new Lump(); Lump lumpLinedefs = new Lump(); Lump lumpSidedefs = new Lump(); Lump lumpVertexes = new Lump(); Lump lumpSegs = new Lump(); Lump lumpSubsectors = new Lump(); Lump lumpNodes = new Lump(); Lump lumpSectors = new Lump(); Lump lumpReject = new Lump(); Lump lumpBlockmap = new Lump(); bool first = true; bool breakAfter = false; file.Seek(header.DirOffset); for (int j = 0; j < header.LumpNum; j++) { Lump lump = ReadLump(file); if (first) { lumpMapname = lump; first = false; } switch (lump.Name) { case "THINGS": lumpThings = lump; break; case "LINEDEFS": lumpLinedefs = lump; break; case "SIDEDEFS": lumpSidedefs = lump; break; case "VERTEXES": lumpVertexes = lump; break; case "SEGS": lumpSegs = lump; break; case "SSECTORS": lumpSubsectors = lump; break; case "NODES": lumpNodes = lump; break; case "SECTORS": lumpSectors = lump; break; case "REJECT": lumpReject = lump; break; case "BLOCKMAP": lumpBlockmap = lump; if (breakAfter) { break; } break; default: if (lump.Name == levelName) { breakAfter = true; } break; } } if (printDebugInfo) { GD.Print($"Internal map name: {lumpMapname.Name}"); } if (printDebugInfo) { GD.Print($"READING THINGS..."); } file.Seek(lumpThings.Offset); buffer = file.GetBuffer((int)lumpThings.Size); Thing[] things = new Thing[lumpThings.Size]; i = 0; while (i < buffer.Length) { Thing thing = new Thing(); thing.X = ToShort(buffer[i], buffer[i + 1]); thing.Y = ToShort(buffer[i + 2], buffer[i + 3]); thing.Angle = ToShort(buffer[i + 4], buffer[i + 5]); thing.Type = ToShort(buffer[i + 6], buffer[i + 7]); thing.Options = ToShort(buffer[i + 8], buffer[i + 9]); things.Append(thing); i += 10; } if (printDebugInfo) { GD.Print("READING LINEDEFS..."); } file.Seek(lumpLinedefs.Offset); buffer = file.GetBuffer((int)lumpLinedefs.Size); Linedef[] linedefs = new Linedef[lumpLinedefs.Size]; i = 0; int k = 0; while (i < buffer.Length) { Linedef linedef = new Linedef(); linedef.StartVertex = ToShort(buffer[i], buffer[i + 1]); linedef.EndVertex = ToShort(buffer[i + 2], buffer[i + 3]); linedef.Flags = ToShort(buffer[i + 4], buffer[i + 5]); linedef.Type = ToShort(buffer[i + 6], buffer[i + 7]); linedef.Trigger = ToShort(buffer[i + 8], buffer[i + 9]); linedef.RightSidedef = ToShort(buffer[i + 10], buffer[i + 11]); linedef.LeftSidedef = ToShort(buffer[i + 12], buffer[i + 13]); //linedefs.Append(linedef); linedefs[k++] = linedef; i += 14; } if (printDebugInfo) { GD.Print("READING SIDEDEFS..."); } file.Seek(lumpSidedefs.Offset); buffer = file.GetBuffer((int)lumpSidedefs.Size); Sidedef[] sieddefs = new Sidedef[lumpSidedefs.Size]; i = 0; while (i < buffer.Length) { Sidedef sidedef = new Sidedef(); sidedef.XOffset = ToShort(buffer[i], buffer[i + 1]); sidedef.YOffset = ToShort(buffer[i + 2], buffer[i + 3]); sidedef.UpperTexture = Combine8BytesToString(buffer[i + 4], buffer[i + 5], buffer[i + 6], buffer[i + 7], buffer[i + 8], buffer[i + 9], buffer[i + 10], buffer[i + 11]); sidedef.LowerTexture = Combine8BytesToString(buffer[i + 12], buffer[i + 13], buffer[i + 14], buffer[i + 15], buffer[i + 16], buffer[i + 17], buffer[i + 18], buffer[i + 19]); sidedef.MiddleTexture = Combine8BytesToString(buffer[i + 20], buffer[i + 21], buffer[i + 22], buffer[i + 23], buffer[i + 24], buffer[i + 25], buffer[i + 26], buffer[i + 27]); sidedef.Sector = ToShort(buffer[i + 28], buffer[i + 29]); sieddefs.Append(sidedef); i += 30; } if (printDebugInfo) { GD.Print("READING VERTEXES..."); } file.Seek(lumpVertexes.Offset); buffer = buffer = file.GetBuffer((int)lumpVertexes.Size); Vertex[] vertexes = new Vertex[lumpVertexes.Size]; i = 0; k = 0; while (i < buffer.Length) { float x = ToShort(buffer[i], buffer[i + 1]) * scale; float y = ToShort(buffer[i + 2], buffer[i + 3]) * scale; Vertex vertex = new Vertex(); vertex.X = x; vertex.Y = y; vertexes[k] = vertex; k += 1; i += 4; } if (printDebugInfo) { GD.Print("READING SUB-SECTORS..."); } file.Seek(lumpSubsectors.Offset); buffer = buffer = file.GetBuffer((int)lumpSubsectors.Size); SubSector[] subSectors = new SubSector[lumpSubsectors.Size]; i = 0; while (i < buffer.Length) { SubSector subSector = new SubSector(); subSector.SegCount = ToShort(buffer[i], buffer[i + 1]); subSector.SegNum = ToShort(buffer[i + 2], buffer[i + 3]); subSectors.Append(subSector); i += 4; } if (printDebugInfo) { GD.Print("READING NODES..."); } file.Seek(lumpNodes.Offset); buffer = buffer = file.GetBuffer((int)lumpNodes.Size); Node[] nodes = new Node[lumpNodes.Size]; i = 0; while (i < buffer.Length) { Node node = new Node(); node.X = ToShort(buffer[i], buffer[i + 1]); node.Y = ToShort(buffer[i + 2], buffer[i + 3]); node.DX = ToShort(buffer[i + 4], buffer[i + 5]); node.DY = ToShort(buffer[i + 6], buffer[i + 7]); node.YUpperRight = ToShort(buffer[i + 8], buffer[i + 9]); node.YLowerRight = ToShort(buffer[i + 10], buffer[i + 11]); node.XLowerRight = ToShort(buffer[i + 12], buffer[i + 13]); node.XUpperRight = ToShort(buffer[i + 14], buffer[i + 15]); node.YUpperLeft = ToShort(buffer[i + 16], buffer[i + 17]); node.YLowerLeft = ToShort(buffer[i + 18], buffer[i + 19]); node.XLowerLeft = ToShort(buffer[i + 20], buffer[i + 20]); node.XUpperLeft = ToShort(buffer[i + 22], buffer[i + 23]); node.NodeRight = ToShort(buffer[i + 24], buffer[i + 25]); node.NodeLeft = ToShort(buffer[i + 26], buffer[i + 27]); i += 28; } if (printDebugInfo) { GD.Print("READING SECTORS..."); } file.Seek(lumpSectors.Offset); buffer = buffer = file.GetBuffer((int)lumpSectors.Size); Sector[] sectors = new Sector[lumpSectors.Size]; i = 0; while (i < buffer.Length) { Sector sector = new Sector(); sector.FloorHeight = ToShort(buffer[i], buffer[i + 1]); sector.FloorHeight = ToShort(buffer[i + 1], buffer[i + 3]); sector.FloorTexture = Combine8BytesToString(buffer[i + 4], buffer[i + 5], buffer[i + 6], buffer[i + 7], buffer[i + 8], buffer[i + 9], buffer[i + 10], buffer[i + 11]); sector.CeilTexture = Combine8BytesToString(buffer[i + 12], buffer[i + 13], buffer[i + 14], buffer[i + 15], buffer[i + 16], buffer[i + 17], buffer[i + 18], buffer[i + 19]); sector.LightLevel = ToShort(buffer[i + 20], buffer[i + 21]); sector.Special = ToShort(buffer[i + 22], buffer[i + 23]); sector.Tag = ToShort(buffer[i + 24], buffer[i + 25]); sectors.Append(sector); i += 26; } file.Close(); if (printDebugInfo) { GD.Print("BUILDING GEOMETRY"); } foreach (var ld in linedefs) { if (ld == null) { continue; } Vertex vertex1 = vertexes[ld.StartVertex]; Vertex vertex2 = vertexes[ld.EndVertex]; ImmediateGeometry geometry = new ImmediateGeometry(); geometry.MaterialOverride = _surfaceMaterial; geometry.Begin(Mesh.PrimitiveType.Lines); if (ld.Type != 0) { geometry.SetColor(new Color(1, 1, 0)); } else { geometry.SetColor(new Color(1, 0, 0)); } geometry.AddVertex(new Vector3(vertex1.X, 0, vertex1.Y)); geometry.AddVertex(new Vector3(vertex2.X, 0, vertex2.Y)); geometry.End(); AddChild(geometry); } }
protected override void _DebugDraw(ImmediateGeometry ig) { }
// Called when the node enters the scene tree for the first time. public override void _Ready() { geom = GetNode <ImmediateGeometry>("ImmediateGeometry"); geom.AddVertex(StartPosition); geom.AddVertex(EndPosition); }
protected abstract void _DebugDraw(ImmediateGeometry ig);
public override void _Ready() { GD.Print("This is the same as overriding _Ready()... 2"); Account account = new Account { Email = "*****@*****.**", Active = true, CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc), Roles = new List <string> { "User", "Admin" } }; string json = JsonConvert.SerializeObject(account, Formatting.Indented); // { // "Email": "*****@*****.**", // "Active": true, // "CreatedDate": "2013-01-20T00:00:00Z", // "Roles": [ // "User", // "Admin" // ] // } GD.Print(json); /*var foo = new Triangle3( * new SharpNav.Vector3(0, 0, 0), * new SharpNav.Vector3(0, 1f, 0), * new SharpNav.Vector3(0, 1f, 1f) * );*/ this.mainCamera = (PlayerCamera)GetNode("Navigation/PlayerCharacter/Camera"); this.playerCharacter = (KinematicBody)GetNode("Navigation/PlayerCharacter"); this.navigation = new App.Navigation(); this.immediateGeometry = (ImmediateGeometry)GetNode("ImmediateGeometry"); this.inventory = (Control)GetNode("Inventory"); this.characterScreen = (Control)GetNode("CharacterScreen"); var map = (Spatial)GetNode("Navigation/map"); if (map != null && this.navigation != null) { //this.generateNavigationMeshInstances(this.navigation, map.GetChildren()); if (this.playerCharacter != null) { var closestPoint = this.navigation.GetClosestPoint(this.playerCharacter.Translation); closestPoint.y = (float)Math.Round(closestPoint.y); closestPoint.y = 0; // this.playerCharacter.Translation = closestPoint; } } if (map != null) { var dummyItemOnTheGround = new App.Inventory.InventoryItem((Texture)GD.Load("res://static/dummy-sword-inventory-1x2.png"), new Vector2(1, 2)); var groundNode = dummyItemOnTheGround.getGroundNode(); groundNode.Translation = new Vector3(12f, -1f, -12f); map.AddChild(groundNode); } }
public override void _Ready() { LeftController = GetNode <Controller>("LeftController"); RightController = GetNode <Controller>("RightController"); RibbonMesh = GetNode <ImmediateGeometry>("RibbonMesh"); }