Viewport LoadSolarSystemIntoViewportContainer(string solarSystemName) { var newViewportContainer = new ViewportContainer { AnchorBottom = 1f, AnchorTop = 0f, AnchorLeft = 0f, AnchorRight = 1f, MarginBottom = 0f, MarginTop = 0f, MarginLeft = 0f, MarginRight = 0f, Name = solarSystemName + "ViewportContainer", }; AddChild(newViewportContainer); var newViewport = new Viewport { Size = GetTree().Root.Size, Name = solarSystemName + "Viewport", }; newViewportContainer.AddChild(newViewport); //Load new solar system scene PackedScene solarSystemScene = GD.Load <PackedScene>("res://Sandbox/Scenes/SolarSystems/" + solarSystemName + ".tscn"); var newSolarSystem = solarSystemScene.Instance(); newViewport.AddChild(newSolarSystem); //Find all the warp gates in the new solar system and disable any that aren't relevant to the current galaxy map var warpGatesParent = newSolarSystem.GetNode("WarpGates"); foreach (Node2D child in warpGatesParent.GetChildren()) { if (child != null && child is WarpGate) { bool isOnMap = false; WarpGate gate = (WarpGate)child; foreach (Node mapNode in GalaxyMap.Nodes) { if (gate.Name.Contains(mapNode.Name)) { isOnMap = true; break; } } //Delete it if it leads to a solar system that's not part of this galaxy if (!isOnMap) { child.QueueFree(); } } } SolarSystemViewportContainersByName.Add(solarSystemName, newViewportContainer); return(newViewport); }
// Called when the node enters the scene tree for the first time. public override void _Ready() { ViewportContainer cont = GetNode <ViewportContainer>("ViewportContainer"); mat = (ShaderMaterial)cont.Material; mainView = GetNode <Viewport>("ViewportContainer/Viewport"); }
public override void _Ready() { mapCam = GetNode <Camera2D>("MapCam"); mapPanel = GetParent().GetParent() as Panel; centerPoint = mapPanel.GetNode <Position2D>("CenterPoint"); container = GetParent() as ViewportContainer; }
public override void _Ready() { Node root = (Node)GetTree().Root; Camera = (Camera2D)FindByName(root, "CameraMan"); EditorContainer = (ViewportContainer)FindByName(root, "Editor"); Nodes = (Control)FindByName(EditorContainer, "Nodes"); RightClickMenu = (EditorRightClickMenu)FindByName(root, "EditorRightClickMenu"); }
// HACK for finding canvas and drawing on it // Hardcoded for 3.2.4 void FindViewportControl() { // Create temp control to get spatial viewport Control ctrl = new Control(); AddControlToContainer(CustomControlContainer.SpatialEditorMenu, ctrl); // Try to get main viewport node. Must be `SpatialEditor` Control spatial_editor = ctrl.GetParent().GetParent <Control>(); // Remove and destroy temp control RemoveControlFromContainer(CustomControlContainer.SpatialEditorMenu, ctrl); ctrl.QueueFree(); spatial_viewport = null; if (spatial_editor.GetClass() == "SpatialEditor") { // Try to recursively find `SpatialEditorViewport` Func <Control, int, Control> get = null; get = (c, level) => { if (c.GetClass() == "SpatialEditorViewport") { return(c); } // 4 Levels must be enough for 3.2.4 if (level < 4) { foreach (var o in c.GetChildren()) { if (o is Control ch) { var res = get(ch, level + 1); if (res != null) { return(res); } } } } return(null); }; spatial_viewport = get(spatial_editor, 0)?.GetChild <ViewportContainer>(0); } if (spatial_viewport != null) { spatial_viewport.SetMeta("UseParentSize", true); spatial_viewport.Update(); } }
public override void _Ready() { _cameraPivot = GetNode <Spatial>("CameraPivot"); _cameraTps = GetNode <Camera>("CameraPivot/SpringArm/Camera"); _head = GetNode <Spatial>("Head"); _cameraFps = GetNode <Camera>("Head/Camera"); _fpsView = GetNode <ViewportContainer>("ViewportContainer"); Input.SetMouseMode(Input.MouseMode.Captured); ToggleCameraMode(); }
public override void _Ready() { map = GetNode <Minimap>("ViewportContainer/Viewport/MinMap"); viewRect = GetNode <Control>("ViewportContainer/Viewport/MinMap/CanvasLayer/ViewRect"); viewPortContainer = GetNode <ViewportContainer>("ViewportContainer"); }