Esempio n. 1
0
    // Process Scene config file line
    private void process_config_line(String line)
    {
        if (string.IsNullOrEmpty(line))
        {
            return;
        }

        string[] items = line.Split((char[])null, StringSplitOptions.RemoveEmptyEntries);        //Split(' ');

        if (items.Length == 0)
        {
            return;
        }

        // Create a queue of the items
        Queue <string> item_queue = new Queue <string>(items);

        string cmd = item_queue.Dequeue();

        if (cmd.Length == 0)
        {
            return;                                     // No length
        }
        if (cmd[0] == '#' || cmd == "##")
        {
            return;                                                             // Comment
        }
        // Parse Commands
        if (cmd == "display_x")
        {
            viewport_width = Util.get_int(item_queue);
            Util.alert(MODULE + "Display_x: " + viewport_width);
            viewport_changed = true;
            Width            = viewport_width;
        }
        else
        if (cmd == "display_y")
        {
            viewport_height = Util.get_int(item_queue);
            Util.alert(MODULE + "Display_y: " + viewport_height);
            viewport_changed = true;
            Height           = viewport_height;
        }
        else
        if (cmd == "display_sync")
        {
            v_sync = Util.get_int(item_queue);
            Util.alert(MODULE + "V_sync: " + v_sync);
            viewport_changed = true;
            VSync            = v_sync > 0 ? VSyncMode.On : VSyncMode.Off;
        }
        else
        if (cmd == "background")
        {
            if (items.Length < 4)
            {
                Util.alert("Background command expects 4	 parameters "+ items.Length); return;
            }
            Color4 color = Util.get_color(item_queue);
            renderer.set_background(color);
        }
        else
        // Parse Commands
        if (cmd == "camera")
        {
            if (items.Length < 4)
            {
                Util.alert("Camera command expects 4	 parameters "+ items.Length); return;
            }
            Util.alert(MODULE + "Loading Camera " + items[1]);
            renderer.set_camera_pos(Util.get_vector(item_queue));
        }
        else
        if (cmd == "lightsrc")
        {
            LightSrc l = new LightSrc();
            if (!l.load_from_config(item_queue))
            {
                renderer.add_light_src(l);
            }
        }
        else
        if (cmd == "texture")
        {
            Texture t = new Texture();
            if (!t.load_from_config(item_queue))
            {
                renderer.add_texture(t);
            }
        }
        else
        if (cmd == "material")
        {
            Material m = new Material();
            if (!m.load_from_config(item_queue))
            {
                renderer.add_material(m);
            }
        }
        else
        if (cmd == "geometry")
        {
            Geometry g = new Geometry();
            if (!g.load_from_config(item_queue))
            {
                renderer.add_geometry(g);
            }
        }
        else

        // Parse Commands
        if (cmd == "model")
        {
            MotionObject m = new MotionObject();
            if (!m.load_from_model_config(item_queue))
            {
                objects.Add(m);
            }
        }
        else
        {
            Util.error(MODULE + "Unknown config command: " + cmd);
        }
    }
Esempio n. 2
0
 public void add_light_src(LightSrc l)
 {
     light_sources.Add(l);
 }