コード例 #1
0
    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);
    }
コード例 #2
0
    // 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");
    }
コード例 #3
0
    public override void _Ready()
    {
        mapCam      = GetNode <Camera2D>("MapCam");
        mapPanel    = GetParent().GetParent() as Panel;
        centerPoint = mapPanel.GetNode <Position2D>("CenterPoint");

        container = GetParent() as ViewportContainer;
    }
コード例 #4
0
ファイル: Global.cs プロジェクト: abhinav3967/Logica
    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");
    }
コード例 #5
0
    // 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();
        }
    }
コード例 #6
0
        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();
        }
コード例 #7
0
ファイル: MinmapControl.cs プロジェクト: sericaer/Fengj_godot
 public override void _Ready()
 {
     map               = GetNode <Minimap>("ViewportContainer/Viewport/MinMap");
     viewRect          = GetNode <Control>("ViewportContainer/Viewport/MinMap/CanvasLayer/ViewRect");
     viewPortContainer = GetNode <ViewportContainer>("ViewportContainer");
 }