Exemplo n.º 1
0
 private void Start()
 {
     MainGrid        = LoadLastSave ? GroundLoader.Load() : GroundLoader.Load(DefaultGridFile.text);
     InteractionMesh = new InteractionMesh(new Mesh());
     UpdateInteractionGrid();
     InteractionMeshObject.GetComponent <MeshFilter>().mesh = InteractionMesh.Mesh;
     BaseGridVisual.GetComponent <MeshFilter>().mesh        = CloneInteractionMesh();
     optionsSource    = new OptionsByDesignation(VoxelBlueprints);
     visualsAssembler = new VoxelVisualsManager(VoxelDisplayMat, optionsSource);
     solver           = new VisualsSolvingManager(MainGrid, optionsSource);
 }
Exemplo n.º 2
0
    private GND LoadGround(string mapname, RSW world, Action <string, string, object> callback)
    {
        string gndPath = "data/" + GetFilePath(WorldLoader.files.gnd);
        GND    ground  = FileManager.Load(gndPath) as GND;

        if (ground == null)
        {
            throw new Exception("Could not load gnd for " + mapname);
        }

        GND.Mesh compiledGround = GroundLoader.Compile(ground, world.water.level, world.water.waveHeight);
        LoadGroundTexture(world, compiledGround);

        Progress += 1;
        callback.Invoke(mapname, "MAP_GROUND", compiledGround);

        return(ground);
    }
Exemplo n.º 3
0
    public void Load(string mapname, Action <string, string, object> callback)
    {
        Progress = 0;

        // Load RSW
        string rswPath = "data/" + GetFilePath(mapname);
        RSW    world   = FileManager.Load(rswPath) as RSW;

        if (world == null)
        {
            throw new Exception("Could not load rsw for " + mapname);
        }

        // Load GAT
        string   gatPath  = "data/" + GetFilePath(WorldLoader.files.gat);
        Altitude altitude = FileManager.Load(gatPath) as Altitude;

        if (altitude == null)
        {
            throw new Exception("Could not load gat for " + mapname);
        }
        callback.Invoke(mapname, "MAP_ALTITUDE", altitude);

        // Load GND
        string gndPath = "data/" + GetFilePath(WorldLoader.files.gnd);
        GND    ground  = FileManager.Load(gndPath) as GND;

        if (ground == null)
        {
            throw new Exception("Could not load gnd for " + mapname);
        }

        var compiledGround = GroundLoader.Compile(ground, world.water.level, world.water.waveHeight);

        LoadGroundTexture(world, compiledGround);

        callback.Invoke(mapname, "MAP_WORLD", world);
        callback.Invoke(mapname, "MAP_GROUND", compiledGround);

        var compiledModels = LoadModels(world.modelDescriptors, ground);

        callback.Invoke(mapname, "MAP_MODELS", compiledModels);
    }
Exemplo n.º 4
0
 private void Update()
 {
     if (TestSave)
     {
         TestSave = false;
         GroundLoader.Save(MainGrid);
         Debug.Log("Grid Saved");
     }
     if (TestLoad)
     {
         TestLoad = false;
         MainGrid = GroundLoader.Load();
         Debug.Log("Grid Loaded");
     }
     if (solver.ChangedVoxels != null)
     {
         UpdateChangedVoxels();
     }
     visualsAssembler.ConstantlyUpdateComponentTransforms();
 }
Exemplo n.º 5
0
        private static object DoLoad(string file, string ext)
        {
            if (ext == "grf")
            {
                return(File.OpenRead(file));
            }
            else
            {
                using (var br = ReadSync(file)) {
                    if (br == null)
                    {
                        throw new Exception($"Could not load file: {file}");
                    }

                    switch (ext)
                    {
                    // Images
                    case "jpg":
                    case "jpeg":
                    case "png":
                        return(new RawImage()
                        {
                            data = br.ToArray()
                        });

                    case "bmp":
                        return(loader.LoadBMP(br));

                    case "tga":
                        return(TGALoader.LoadTGA(br));

                    // Text
                    case "txt":
                    case "xml":
                    case "lua":
                        return(Encoding.UTF8.GetString(br.ToArray()));

                    case "spr":
                        SPR spr = SpriteLoader.Load(br);
                        spr.SwitchToRGBA();
                        spr.Compile();
                        spr.filename = file;
                        return(spr);

                    case "str":
                        return(EffectLoader.Load(br, Path.GetDirectoryName(file).Replace("\\", "/")));

                    case "act":
                        return(ActionLoader.Load(br));

                    // Binary
                    case "gat":
                        return(AltitudeLoader.Load(br));

                    case "rsw":
                        return(WorldLoader.Load(br));

                    case "gnd":
                        return(GroundLoader.Load(br));

                    case "rsm":
                        return(ModelLoader.Load(br));

                    // Audio
                    case "wav":
                        WAVLoader.WAVFile wav  = WAVLoader.OpenWAV(br.ToArray());
                        AudioClip         clip = AudioClip.Create(file, wav.samples, wav.channels, wav.sampleRate, false);
                        clip.SetData(wav.leftChannel, 0);
                        return(clip);

                    case "mp3":
                    case "ogg":
                        break;

                    case "json":
                        return(JObject.Parse(Encoding.UTF8.GetString(br.ToArray())));

                    default:
                        throw new Exception($"Unsuported file format: {ext} for file {file}");
                    }
                }
            }
            return(null);
        }
Exemplo n.º 6
0
    private static object DoLoad(string file, string ext)
    {
        //string fileWOExt = file.Replace("." + ext, "");

        switch (ext)
        {
        case "grf":
            return(File.OpenRead(file));

        // Regular images files
        case "jpg":
        case "jpeg":
        case "png":
            using (var br = ReadSync(file)) {
                return(new RawImage()
                {
                    data = br.ToArray()
                });
            }

        case "bmp":
            using (var br = ReadSync(file))
                return(loader.LoadBMP(br));

        case "tga":
            using (var br = ReadSync(file))
                return(TGALoader.LoadTGA(br));

        // Texts
        case "txt":
        case "xml":
        case "lua":
            using (var br = ReadSync(file)) {
                if (br != null)
                {
                    return(Encoding.UTF8.GetString(br.ToArray()));
                }
                else
                {
                    return(null);
                }
            }

        case "spr":
            using (var br = ReadSync(file)) {
                if (br != null)
                {
                    SPR spr = SpriteLoader.Load(br);
                    spr.SwitchToRGBA();
                    spr.Compile();
                    spr.filename = file;
                    return(spr);
                }
                else
                {
                    return(null);
                }
            }

        case "str":
            using (var br = ReadSync(file)) {
                if (br != null)
                {
                    STR str = EffectLoader.Load(br);
                    return(str);
                }
                else
                {
                    return(null);
                }
            }

        // Binary
        case "gat":
            using (var br = ReadSync(file))
                return(new Altitude(br));

        case "rsw":
            using (var br = ReadSync(file))
                return(WorldLoader.Load(br));

        case "gnd":
            using (var br = ReadSync(file))
                return(GroundLoader.Load(br));

        case "rsm":
            using (var br = ReadSync(file))
                return(ModelLoader.Load(br));

        // Audio
        case "wav":
            using (var br = ReadSync(file)) {
                WAVLoader.WAVFile wav  = WAVLoader.OpenWAV(br.ToArray());
                AudioClip         clip = AudioClip.Create(file, wav.samples, wav.channels, wav.sampleRate, false);
                clip.SetData(wav.leftChannel, 0);
                return(clip);
            }

        case "mp3":
        case "ogg":

        case "act":
            //return new Action(ReadSync(file)).compile();
            Debug.LogWarning("Can't read " + file + "\nLoader for " + ext + " is not implemented");
            break;

        default:
            throw new System.Exception("Unknown file format: " + file);
        }
        return(null);
    }