Changeset 579

Show
Ignore:
Timestamp:
05/25/08 14:46:03 (8 months ago)
Author:
LeoD
Message:

resource search paths

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/defend/Main.d

    r572 r579  
    1212 
    1313import gen.core.TaskManager : TaskManager, taskManager; 
     14import gen.math.Vector : vec2i, vec3; 
     15import gen.model.Model : Model; 
    1416import gen.input.Input : InputChannel; 
    1517import gen.input.SDL : SDLInputWriter; 
    16 import gen.math.Vector : vec2i, vec3; 
    1718import gen.rend.Renderer : RendererConfig, Shader, Renderer, renderer; 
    1819import gen.rend.opengl.Renderer : OGLRenderer; 
     
    2526import gen.util.Config : Config; 
    2627import gen.util.GameState : gameState; 
     28import gen.util.Resource : Resource; 
    2729 
    2830import defend.Config : defendConfig, RuntimeException, DEFEND_NAME, DEFEND_VERSION; 
     
    5254    // Spam :P 
    5355    Log.defaultLevel = LogLevel.Spam; 
     56 
     57    // Set resource search paths 
     58    Resource.searchPath = "data"; 
     59    Shader.searchPath = "shaders"; 
     60    Model.searchPath = "models"; 
    5461 
    5562    // Load the config 
  • trunk/src/defend/game/Game.d

    r578 r579  
    274274 
    275275        // Fog of war 
    276         fogOfWar = new FogOfWar(gameObjects, terrain.lightmapTexture, vec2i.from(terrain.dimension), false); 
     276        fogOfWar = new FogOfWar(gameObjects, terrain.lightmapTexture, vec2i.from(terrain.dimension), true); 
    277277 
    278278        // Create the HUD 
     
    291291        keyboard.keyDownHandlers[KeyType.G] = &toggleSceneGraphDebug; 
    292292        keyboard.keyDownHandlers[KeyType.Escape] = &inputExit; 
    293             
     293         
    294294        //dumpGCStats(); 
    295295         
  • trunk/src/defend/sim/SceneNode.d

    r576 r579  
    101101        renderer.setRenderState(RenderState.BackfaceCulling, true); 
    102102         
    103         auto shader = Shader.acquire(isNeutral ? "data/shaders/model-neutral.cfg" : "data/shaders/model.cfg"); 
     103        auto shader = Shader.acquire(isNeutral ? "model-neutral.cfg" : "model.cfg"); 
    104104        renderer.setShader(shader); 
    105105 
     
    128128        renderer.setRenderState(RenderState.BackfaceCulling, false); 
    129129     
    130         Shader.release(Shader.get(isNeutral ? "data/shaders/model-neutral.cfg" : "data/shaders/model.cfg")); 
     130        Shader.release(Shader.get(isNeutral ? "model-neutral.cfg" : "model.cfg")); 
    131131         
    132132        renderer.setTexture(1, null); 
     
    217217        this.mesh = mesh; 
    218218         
    219         shader = Shader.acquire(parent.isNeutral ? "data/shaders/model-neutral.cfg" : "data/shaders/model.cfg"); 
     219        shader = Shader.acquire(parent.isNeutral ? "model-neutral.cfg" : "model.cfg"); 
    220220         
    221221        version(GlowTest) 
    222222        { 
    223223            if(defendConfig.graphics.objects_glow) 
    224                 glowShader = Shader.acquire("data/shaders/modelGlow.cfg"); 
     224                glowShader = Shader.acquire("modelGlow.cfg"); 
    225225        } 
    226226         
     
    240240                function(NodeHolder[] nodes, Camera camera) 
    241241                { 
    242                     auto shader = Shader.acquire("data/shaders/modelGlow.cfg"); 
     242                    auto shader = Shader.acquire("modelGlow.cfg"); 
    243243                    renderer.setShader(shader); 
    244244                }, 
     
    246246                function 
    247247                { 
    248                     Shader.release(Shader.get("data/shaders/modelGlow.cfg")); 
     248                    Shader.release(Shader.get("modelGlow.cfg")); 
    249249                    renderer.setShader(null); 
    250250                     
  • trunk/src/defend/sim/obj/Citizen.d

    r575 r579  
    2626        { 
    2727            // TODO: change citizen model and mini pic 
    28             model = "data/models/sheep/low.obj"; 
    29             miniPic = "data/minipics/sheep.png"; 
     28            model = "sheep/low.obj"; 
     29            miniPic = "minipics/sheep.png"; 
    3030            parentType = "unit"; 
    3131            posOffset = vec3(0, 1, 0); 
  • trunk/src/defend/sim/obj/House.d

    r570 r579  
    1717        with(ti) 
    1818        { 
    19             model = "data/models/house/model.obj"; 
     19            model = "house/model.obj"; 
     20            miniPic = "minipics/house.png"; 
    2021            parentType = "building"; 
    2122            dimension = vec2i(5, 6); 
     
    2526            canBuild = [ "sheep", "citizen" ];      
    2627            canDevelop = [ "sheep on drugs" ]; 
    27             miniPic = "data/minipics/house.png"; 
    2828            properties[GameObject.Property.MaxLife] = objProp(2000); 
    2929            properties[GameObject.Property.Sight] = objProp(70); 
  • trunk/src/defend/sim/obj/Sheep.d

    r570 r579  
    2424        with(ti) 
    2525        { 
    26             model = "data/models/sheep/low.obj"; 
    27             miniPic = "data/minipics/sheep.png"; 
     26            model = "sheep/low.obj"; 
     27            miniPic = "minipics/sheep.png"; 
    2828            parentType = "unit"; 
    2929            posOffset = vec3(0, 1, 0); 
  • trunk/src/defend/terrain/FogOfWar.d

    r576 r579  
    251251            circleTexture = generateCircle(); 
    252252            sprite = new Sprite(lightmap.dimension, true); 
    253             copyShader = Shader.acquire("data/shaders/copyVisibleFog.cfg"); 
    254             combineShader = Shader.acquire("data/shaders/combineLightmaps.cfg"); 
     253            copyShader = Shader.acquire("copyVisibleFog.cfg"); 
     254            combineShader = Shader.acquire("combineLightmaps.cfg"); 
    255255             
    256256            visibleTiles.create(dimension.tuple); 
  • trunk/src/defend/terrain/Terrain.d

    r578 r579  
    239239    void loadDiffuseMaps() 
    240240    { 
    241         diffuseMaps[0] = Texture.acquire("data/textures/grass.png"); 
    242         diffuseMaps[1] = Texture.acquire("data/textures/mountain.png"); 
    243         diffuseMaps[2] = Texture.acquire("data/textures/snow.png"); 
     241        diffuseMaps[0] = Texture.acquire("textures/grass.png"); 
     242        diffuseMaps[1] = Texture.acquire("textures/mountain.png"); 
     243        diffuseMaps[2] = Texture.acquire("textures/snow.png"); 
    244244    } 
    245245 
     
    340340        patchCount = 8; 
    341341         
    342         shader = Shader.acquire("data/shaders/terrain.cfg"); 
     342        shader = Shader.acquire("terrain.cfg"); 
    343343         
    344344        logger.info("loading diffuse maps"); 
  • trunk/src/gen/util/Resource.d

    r574 r579  
    77 
    88public: 
     9    static char[] searchPath; 
     10 
    911    static void addType(T)() 
    1012    { 
     
    2224{ 
    2325private: 
    24     import tango.io.FilePath; 
     26    import Path = tango.io.Path; 
     27    import tango.text.Util : locatePrior; 
    2528    import tango.text.Ascii : toLower; 
    2629 
     
    3538    uint refCount; 
    3639     
    37 public:  
     40public: 
     41    static char[] searchPath; 
     42 
    3843    char[] file; 
    3944 
     
    5459        { 
    5560            T instance; 
     61             
     62            void tryLoad(lazy char[] file_) 
     63            { 
     64                if(instance) 
     65                    return; 
     66             
     67                auto file = file_; 
     68                auto ext = file[locatePrior(file, '.') .. $]; 
     69 
     70                static if(is(typeof(T.loadResource(new Config(file))))) 
     71                { 
     72                    if(ext == ".cfg" && Path.exists(file)) 
     73                    { 
     74                        instance = T.loadResource(new Config(file)); 
     75                        return; 
     76                    } 
     77                } 
    5678                 
    57             static if(is(typeof(T.loadResource(new Config(file))))) 
    58             { 
    59                 if(FilePath(file).ext == "cfg") 
    60                     instance = T.loadResource(new Config(file)); 
     79                if(Path.exists(file) || ext == "") 
     80                    instance = T.loadResource(file); 
    6181            } 
    6282             
     83            tryLoad(Resource.searchPath ~ '/' ~ searchPath ~ '/' ~ file); 
     84            tryLoad(Resource.searchPath ~ '/' ~ file); 
     85            tryLoad(searchPath ~ '/' ~ file); 
     86            tryLoad(file); 
     87             
    6388            if(!instance) 
    64             { 
    65                 instance = T.loadResource(file); 
    66             } 
     89                throw new Exception("resource not found: " ~ file); 
    6790             
    6891            instances[file] = instance;