Exemplo n.º 1
0
    public static void SaveKeyBindings()
    {
        string path = OutputUtils.InputSaveKeyBindings;

        Debug.Log("Saving key bindings to '" + path + "'...");
        OutputUtils.ObjectToFile(keyBindings, path); // Will be auto
    }
Exemplo n.º 2
0
    public static void SaveHolding(string reality, Player player)
    {
        if (string.IsNullOrEmpty(reality))
        {
            Debug.LogError("Reality is null or em empty, cannot save held item.");
            return;
        }
        if (player == null)
        {
            Debug.LogError("Null player, cannot perform IO operation for held item.");
            return;
        }

        // Get file path.
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.HeldItemSaveFile;

        // Get the player holding monobehaviour.
        PlayerHolding holding = player.Holding;

        if (holding.Item == null)
        {
            OutputUtils.ObjectToFile(null, path);
        }
        else
        {
            ItemSaveData sd = holding.Item.GetSaveData();
            OutputUtils.ObjectToFile(sd, path);
        }
        // Done!
    }
Exemplo n.º 3
0
    public static void SaveBuildingInventory(string reality, Player player)
    {
        if (string.IsNullOrWhiteSpace(reality) || player == null)
        {
            Debug.LogError("Reality is null or player is null! Both must not be null!");
            return;
        }

        // Get all the items in the building inventory...
        var items = player.BuildingInventory.GetItems().ToArray();

        if (items == null)
        {
            Debug.LogError("Inventory building items for player '" + player.Name + "' are null!");
            return;
        }

        // Get path...
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.PlayerSaveDirectory + player.Name + OutputUtils.BuildingInventorySaveFile;

        // Save to file...
        OutputUtils.ObjectToFile(items, path);

        // Done!
        Debug.Log("Saved " + items.Length + " inventory building items to '" + path + "'");
    }
Exemplo n.º 4
0
    public static void SavePlayerState(string reality, Player player)
    {
        if (string.IsNullOrEmpty(reality))
        {
            Debug.LogError("Reality is null or em empty, cannot save player state.");
            return;
        }
        if (player == null)
        {
            Debug.LogError("Null player, cannot save player state.");
            return;
        }

        // Make path.
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.PlayerSaveDirectory + player.Name + OutputUtils.PlayerStateFile;

        Debug.Log("Saving state of player '" + player.Name + "' to '" + path + "'...");

        // Make save data.
        PlayerSaveData sd = new PlayerSaveData();

        sd.Set(player);

        // Save to file.
        OutputUtils.ObjectToFile(sd, path);
    }
Exemplo n.º 5
0
    public static void SaveWorldState(World world)
    {
        // Get world state object.
        WorldSaveState sd = new WorldSaveState(world);
        string path = OutputUtils.RealitySaveDirectory + world.RealityName + OutputUtils.WorldStateSaveFile;

        OutputUtils.ObjectToFile(sd, path);
        Debug.Log("Saved world state to '" + path + "'");
    }
Exemplo n.º 6
0
    public static void SaveDefinition(LanguageDefinition def)
    {
        if (def == null)
        {
            return;
        }
        if (!Application.isEditor)
        {
            return;
        }

        string path = GetDefinitionPath(def.Name);

        OutputUtils.ObjectToFile(def, path);
    }
Exemplo n.º 7
0
    public static void SaveLanguage(Language lang)
    {
        if (lang == null)
        {
            return;
        }
        if (!Application.isEditor)
        {
            return;
        }

        string path = GetLanguagePath(lang.Name);

        OutputUtils.ObjectToFile(lang, path);
    }
Exemplo n.º 8
0
    public static void SaveGear(string reality, Player player)
    {
        if (string.IsNullOrEmpty(reality))
        {
            Debug.LogError("Reality is null or em empty, cannot save gear items.");
            return;
        }
        if (player == null)
        {
            Debug.LogError("Null player, cannot perform IO operation for gear items.");
            return;
        }

        // Get all the slots, and then get save data from each slot.
        List <GearSaveData> saveData = new List <GearSaveData>();

        Debug.Log("Saving " + (player.GearMap.Count - 1) + " gear slots...");
        foreach (var slotName in player.GearMap.Keys)
        {
            if (slotName == "Hands")
            {
                continue;
            }
            BodyGear     bg = player.GearMap[slotName];
            GearSaveData sd = bg.GetSaveData();
            if (sd == null)
            {
                Debug.LogError("Gear slot '" + slotName + "' gave null save data!");
                continue;
            }

            saveData.Add(sd);
        }

        // Make array.
        GearSaveData[] array = saveData.ToArray();
        saveData.Clear();

        // Get file path.
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.GearItemSaveFile;

        // Save to file.
        OutputUtils.ObjectToFile(array, path);
    }
Exemplo n.º 9
0
    public static void SaveFurniture(string reality, params Furniture[] f)
    {
        if (string.IsNullOrWhiteSpace(reality))
        {
            Debug.LogError("Reality name is null or empty! Cannot save furniture!");
            return;
        }

        // Get file path...
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.FurnitureSaveDirectory + OutputUtils.FurnitureSaveFile;

        // Make save datas...
        var saves = GetSaveData(f);

        // Save to file!
        OutputUtils.ObjectToFile(saves, path);

        Debug.Log(string.Format("Saved {0}/{1} placed furniture objects to '{2}'", saves.Length, f.Length, path));
    }
Exemplo n.º 10
0
    public static void ItemsToFile(string reality, params Item[] items)
    {
        items = FilterItems(items);
        ItemSaveData[] saveData = new ItemSaveData[items.Length];

        for (int i = 0; i < items.Length; i++)
        {
            items[i].RequestDataUpdate();
            ItemSaveData sd = ItemToSaveData(items[i]);
            saveData[i] = sd;
        }

        string filePath = OutputUtils.RealitySaveDirectory + reality + OutputUtils.WorldItemSaveFile;

        Debug.Log("Saving " + items.Length + " items to '" + filePath + "'");
        OutputUtils.ObjectToFile(saveData, filePath, new JsonSerializerSettings()
        {
            Formatting = Formatting.Indented, ReferenceLoopHandling = ReferenceLoopHandling.Ignore
        });
    }
Exemplo n.º 11
0
    // IO for inventory and player.
    // EVERYTHING must be called from the SERVER ONLY!

    public static void SaveInventory(string reality)
    {
        if (string.IsNullOrEmpty(reality))
        {
            Debug.LogError("Reality is null or em empty, cannot save inventory items.");
            return;
        }

        // Make array of inventory item data.
        List <InventoryItemData> items = PlayerInventory.inv.Inventory.Contents;

        InventoryItemData[] array = items.ToArray();
        items = null;

        // Get save file path.
        string path = OutputUtils.RealitySaveDirectory + reality + OutputUtils.InventoryItemSaveFile;

        Debug.Log("Saving " + array.Length + " inventory items to '" + path + "'");

        // Save to file.
        OutputUtils.ObjectToFile(array, path);
    }