aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mapnode.cpp59
-rw-r--r--src/tile.cpp61
-rw-r--r--src/tile.h60
3 files changed, 180 insertions, 0 deletions
diff --git a/src/mapnode.cpp b/src/mapnode.cpp
new file mode 100644
index 000000000..973b89ddd
--- /dev/null
+++ b/src/mapnode.cpp
@@ -0,0 +1,59 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "mapnode.h"
+#include "tile.h"
+
+/*
+ Face directions:
+ 0: up
+ 1: down
+ 2: right
+ 3: left
+ 4: back
+ 5: front
+*/
+u16 g_content_tiles[USEFUL_CONTENT_COUNT][6] =
+{
+ {TILE_STONE,TILE_STONE,TILE_STONE,TILE_STONE,TILE_STONE,TILE_STONE},
+ {TILE_GRASS,TILE_MUD,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS},
+ {TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER},
+ {TILE_NONE,TILE_NONE,TILE_NONE,TILE_NONE,TILE_NONE,TILE_NONE},
+ {TILE_TREE_TOP,TILE_TREE_TOP,TILE_TREE,TILE_TREE,TILE_TREE,TILE_TREE},
+ {TILE_LEAVES,TILE_LEAVES,TILE_LEAVES,TILE_LEAVES,TILE_LEAVES,TILE_LEAVES},
+ {TILE_GRASS_FOOTSTEPS,TILE_MUD,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS,TILE_MUD_WITH_GRASS},
+ {TILE_MESE,TILE_MESE,TILE_MESE,TILE_MESE,TILE_MESE,TILE_MESE},
+ {TILE_MUD,TILE_MUD,TILE_MUD,TILE_MUD,TILE_MUD,TILE_MUD},
+ {TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER,TILE_WATER},
+};
+
+const char * g_content_inventory_textures[USEFUL_CONTENT_COUNT] =
+{
+ "stone",
+ "grass",
+ "water",
+ "torch_on_floor",
+ "tree_top",
+ "leaves",
+ "grass_footsteps",
+ "mese",
+ "mud",
+ "water",
+};
+
diff --git a/src/tile.cpp b/src/tile.cpp
new file mode 100644
index 000000000..580d2a8a3
--- /dev/null
+++ b/src/tile.cpp
@@ -0,0 +1,61 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "tile.h"
+
+const char * g_tile_texture_names[TILES_COUNT] =
+{
+ NULL,
+ "stone",
+ "water",
+ "grass",
+ "tree",
+ "leaves",
+ "grass_footsteps",
+ "mese",
+ "mud",
+ "tree_top",
+ "mud_with_grass",
+};
+
+video::SMaterial g_tile_materials[TILES_COUNT];
+
+void tile_materials_preload(TextureCache &cache)
+{
+ for(s32 i=0; i<TILES_COUNT; i++)
+ {
+ const char *name = g_tile_texture_names[i];
+
+ video::ITexture *t = NULL;
+
+ if(name != NULL)
+ {
+ t = cache.get(name);
+ assert(t != NULL);
+ }
+
+ g_tile_materials[i].Lighting = false;
+ g_tile_materials[i].BackfaceCulling = false;
+ g_tile_materials[i].setFlag(video::EMF_BILINEAR_FILTER, false);
+ g_tile_materials[i].setTexture(0, t);
+ }
+
+ g_tile_materials[TILE_WATER].MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
+}
+
diff --git a/src/tile.h b/src/tile.h
new file mode 100644
index 000000000..286c5fb2e
--- /dev/null
+++ b/src/tile.h
@@ -0,0 +1,60 @@
+/*
+Minetest-c55
+Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef TILE_HEADER
+#define TILE_HEADER
+
+#include "common_irrlicht.h"
+#include "utility.h"
+
+// TileID is supposed to be stored in a u16
+
+enum TileID
+{
+ TILE_NONE, // Nothing shown
+ TILE_STONE,
+ TILE_WATER,
+ TILE_GRASS,
+ TILE_TREE,
+ TILE_LEAVES,
+ TILE_GRASS_FOOTSTEPS,
+ TILE_MESE,
+ TILE_MUD,
+ TILE_TREE_TOP,
+ TILE_MUD_WITH_GRASS,
+
+ // Count of tile ids
+ TILES_COUNT
+};
+
+// A mapping from tiles to names of cached textures
+extern const char * g_tile_texture_names[TILES_COUNT];
+
+// A mapping from tiles to materials
+// Initialized at run-time.
+extern video::SMaterial g_tile_materials[TILES_COUNT];
+
+/*
+ Functions
+*/
+
+// Initializes g_tile_materials
+void tile_materials_preload(TextureCache &cache);
+
+#endif