예제 #1
0
파일: Game.cs 프로젝트: outrera/SkyOfSteel
    public static void CloseWorld()
    {
        if (RuntimeRoot.HasNode("SkyScene"))
        {
            RuntimeRoot.GetNode("SkyScene").QueueFree();
        }
        PlayerList.Clear();
        PossessedPlayer = ((PackedScene)GD.Load("res://Player/Player.tscn")).Instance() as Player;
        //Prevent crashes when player movement commands are run when world is not initalized
        StructureRoot          = null;
        Scripting.GamemodeName = null;
        Scripting.SetupServerEngine();
        Scripting.SetupClientEngine();
        Scripting.ClientGmScript = null;

        Building.Chunks.Clear();
        Building.RemoteLoadedChunks.Clear();
    }
예제 #2
0
파일: Game.cs 프로젝트: outrera/SkyOfSteel
    public static void StartWorld(bool AsServer = false)
    {
        CloseWorld();
        Node SkyScene = ((PackedScene)GD.Load("res://World/SkyScene.tscn")).Instance();

        SkyScene.SetName("SkyScene");
        RuntimeRoot.AddChild(SkyScene);

        StructureRoot = new StructureRootClass();
        StructureRoot.SetName("StructureRoot");
        SkyScene.AddChild(StructureRoot);

        if (AsServer)
        {
            Scripting.SetupServerEngine();
            Building.Place(Items.TYPE.PLATFORM, new Vector3(), new Vector3(), 0);
        }
    }