示例#1
0
    private void makeVein(System.Random rnd, CellData oreCell, OreSettings setting, MapAccessor accessor, int i1, int j1)
    {
        int chunkX = rnd.Next(0, 16); // Don't start on edge cells.
        int chunkY = rnd.Next(0, 16);

        int size = rnd.Next(setting.size.x, setting.size.y + 1);

        Rotation lastDir = null;

        for (int i = 0; i < size; i++)
        {
            int x = (i1 * 16) + chunkX;
            int y = (j1 * 16) + chunkY;

            CellData c = accessor.getCell(x, y);
            if (c is CellDataMineable)
            {
                accessor.setCell(x, y, oreCell);
            }

            Rotation r = Rotation.ALL[rnd.Next(0, Rotation.ALL.Length)];

            if (lastDir != null && lastDir == r)
            {
                r = r.opposite();
            }

            chunkX += r.vector.x;
            chunkY += r.vector.y;
        }
    }
示例#2
0
        protected ResourceConfiguration()
        {
            const string baseDir = "Data/Crafting";

            Ores  = ZhConfig.DeserializeJsonConfig <OreSettings>($"{baseDir}/ores.json");
            Logs  = ZhConfig.DeserializeJsonConfig <LogSettings>($"{baseDir}/logs.json");
            Hides = ZhConfig.DeserializeJsonConfig <HideSettings>($"{baseDir}/hides.json");
        }