From e83f5144665edafd80b5f99435cf12f66e37432d Mon Sep 17 00:00:00 2001 From: Brandon Bohannon Date: Sat, 16 Feb 2013 00:07:16 -0600 Subject: initial commit --- bucket.lua | 55 ++++++ default.lua | 68 +++++++ doors.lua | 28 +++ fire.lua | 20 ++ init.lua | 383 ++++++++++++++++++++++++++++++++++++ models/landrush_showarea.png | Bin 0 -> 166 bytes models/landrush_showarea.x | 220 +++++++++++++++++++++ textures/landrush_landclaim.png | Bin 0 -> 303 bytes textures/landrush_landclaim_gem.png | Bin 0 -> 383 bytes 9 files changed, 774 insertions(+) create mode 100644 bucket.lua create mode 100644 default.lua create mode 100644 doors.lua create mode 100644 fire.lua create mode 100644 init.lua create mode 100644 models/landrush_showarea.png create mode 100644 models/landrush_showarea.x create mode 100644 textures/landrush_landclaim.png create mode 100644 textures/landrush_landclaim_gem.png diff --git a/bucket.lua b/bucket.lua new file mode 100644 index 0000000..2557a1f --- /dev/null +++ b/bucket.lua @@ -0,0 +1,55 @@ +if minetest.get_modpath("bucket") then + minetest.register_craftitem(":bucket:bucket_empty", { + description = "Emtpy bucket", + inventory_image = "bucket.png", + stack_max = 1, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + -- Must be pointing to node + if pointed_thing.type ~= "node" then + return + end + -- Check if pointing to a liquid source + n = minetest.env:get_node(pointed_thing.under) + liquiddef = bucket.liquids[n.name] + if liquiddef ~= nil and liquiddef.source == n.name and liquiddef.itemname ~= nil then + local player = user:get_player_name() + if landrush.can_interact(player, pointed_thing.under) then + minetest.env:add_node(pointed_thing.under, {name="air"}) + return {name=liquiddef.itemname} + else + owner = landrush.get_owner(pointed_thing.under) + minetest.chat_send_player(user:get_player_name(), "Area owned by "..owner) + end + end + end, + }) + + for key, value in pairs(bucket.liquids) do + if minetest.registered_items[value.itemname].on_use then + local item = minetest.registered_items[value.itemname] + local on_use = item.on_use + function item.on_use(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + n = minetest.env:get_node(pointed_thing.under) + local player = user:get_player_name() + if minetest.registered_nodes[n.name].buildable_to then + if landrush.can_interact(player, pointed_thing.under) then + return on_use(itemstack, user, pointed_thing) + else + minetest.chat_send_player(player, "Area owned by "..landrush.get_owner(pointed_thing.above)) + end + else + if landrush.can_interact(player, pointed_thing.above) then + return on_use(itemstack, user, pointed_thing) + else + minetest.chat_send_player(player, "Area owned by "..landrush.get_owner(pointed_thing.above)) + end + end + end + end + end +end + diff --git a/default.lua b/default.lua new file mode 100644 index 0000000..6a074c5 --- /dev/null +++ b/default.lua @@ -0,0 +1,68 @@ +if minetest.get_modpath("default") then + if minetest.registered_items["default:mese_crystal"] then + minetest.register_craft({ + output = 'landrush:landclaim_b', + recipe = { + {'default:cobble','default:mese_crystal','default:cobble'}, + {'default:cobble','default:desert_stone','default:cobble'}, + {'default:cobble','default:stone','default:cobble'} + } + }) + minetest.register_alias("landclaim", "landrush:landclaim_b") + --minetest.registered_items["landrush:landclaim_b"].groups.not_in_creative_inventory = nil + else + minetest.register_craft({ + output = 'landrush:landclaim', + recipe = { + {'default:cobble','default:cobble','default:cobble'}, + {'default:cobble','default:mese','default:cobble'}, + {'default:cobble','default:cobble','default:cobble'} + } + }) + minetest.register_alias("landclaim", "landrush:landclaim") + minetest.registered_items["landrush:landclaim"].groups.not_in_creative_inventory = nil + end + + minetest.register_node(":default:sign_wall", { + description = "Sign", + drawtype = "signlike", + tiles = {"default_sign_wall.png"}, + inventory_image = "default_sign_wall.png", + wield_image = "default_sign_wall.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "wallmounted", + --wall_top = + --wall_bottom = + --wall_side = + }, + groups = {choppy=2,dig_immediate=2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), + on_construct = function(pos) + --local n = minetest.env:get_node(pos) + local meta = minetest.env:get_meta(pos) + meta:set_string("formspec", "hack:sign_text_input") + meta:set_string("infotext", "\"\"") + end, + on_receive_fields = function(pos, formname, fields, sender) + --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) + local name = sender:get_player_name() + if landrush.can_interact(name, pos) then + local meta = minetest.env:get_meta(pos) + fields.text = fields.text or "" + print((name or "").." wrote \""..fields.text.. + "\" to sign at "..minetest.pos_to_string(pos)) + meta:set_string("text", fields.text) + meta:set_string("infotext", '"'..fields.text..'"') + else + local owner = landrush.get_owner(pos) + minetest.chat_send_player(name, "Area owned by "..owner) + end + end, + }) +end + diff --git a/doors.lua b/doors.lua new file mode 100644 index 0000000..6804797 --- /dev/null +++ b/doors.lua @@ -0,0 +1,28 @@ +if minetest.get_modpath("doors") then + function landrush.protect_against_door(door) + local definition = minetest.registered_items[door] + local on_place = definition.on_place + function definition.on_place(itemstack, placer, pointed_thing) + local bottom = pointed_thing.above + local top = {x=pointed_thing.above.x, y=pointed_thing.above.y+1, z=pointed_thing.above.z} + local name = placer:get_player_name() + if landrush.can_interact(name, top) and landrush.can_interact(name, bottom) then + return on_place(itemstack, placer, pointed_thing) + else + topowner = landrush.get_owner(top) + bottomowner = landrush.get_owner(bottom) + if topowner and bottomowner and topowner ~= bottomowner then + minetest.chat_send_player(name, "Area owned by "..topowner.." and "..bottomowner) + elseif topowner then + minetest.chat_send_player(name, "Area owned by "..topowner) + else + minetest.chat_send_player(name, "Area owned by "..bottomowner) + end + end + end + end + + landrush.protect_against_door("doors:door_wood") + landrush.protect_against_door("doors:door_steel") +end + diff --git a/fire.lua b/fire.lua new file mode 100644 index 0000000..a03376c --- /dev/null +++ b/fire.lua @@ -0,0 +1,20 @@ +if minetest.get_modpath("fire") then + landrush.default_flame_should_extinguish = fire.flame_should_extinguish + + function fire.flame_should_extinguish(pos) + corner0 = landrush.can_interact("-!-", {x=pos.x-1,y=pos.y-1,z=pos.z-1}) + corner1 = landrush.can_interact("-!-", {x=pos.x-1,y=pos.y-1,z=pos.z+1}) + corner2 = landrush.can_interact("-!-", {x=pos.x-1,y=pos.y+1,z=pos.z-1}) + corner3 = landrush.can_interact("-!-", {x=pos.x-1,y=pos.y+1,z=pos.z+1}) + corner4 = landrush.can_interact("-!-", {x=pos.x+1,y=pos.y-1,z=pos.z-1}) + corner5 = landrush.can_interact("-!-", {x=pos.x+1,y=pos.y-1,z=pos.z+1}) + corner6 = landrush.can_interact("-!-", {x=pos.x+1,y=pos.y+1,z=pos.z-1}) + corner7 = landrush.can_interact("-!-", {x=pos.x+1,y=pos.y+1,z=pos.z+1}) + if corner0 and corner1 then + return landrush.default_flame_should_extinguish(pos) + else + return true + end + end +end + diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..952c97b --- /dev/null +++ b/init.lua @@ -0,0 +1,383 @@ +-- Lua definitions: + +landrush = {} + +-- Change this to true if you want to require people to claim an area before building or digging +local requireClaim = true +local chunkSize = 16 + +local claims = {} +local filename = minetest.get_worldpath().."/landrush-claims" + +function landrush.load_claims() + local file = io.open(filename, "r") + if file then + for line in file:lines() do + if line ~= "" then + local area = line:split(" ") + local shared = {} + if area[3] and area[3] ~= "*" then + for k,v in ipairs(area[3]:split(",")) do + shared[v] = v + end + end + local claimtype + if area[4] then + claimtype = area[4] + else + claimtype = "landrush:landclaim" + end + claims[area[1]] = {owner=area[2], shared=shared, claimtype=claimtype} + end + end + file:close() + end +end + +function landrush.save_claims() + local file = io.open(filename, "w") + for key,value in pairs(claims) do + local sharedata = "" + for k,v in pairs(value.shared) do + sharedata = sharedata..v.."," + end + local sharestring + if sharedata == "" then + sharestring = "*" + else + sharestring = sharedata:sub(1,-2) + end + file:write(key.." "..value.owner.." "..sharestring.." "..value.claimtype.."\n") + end + file:close() +end + +function landrush.get_chunk(pos) + local x = math.floor(pos.x/chunkSize) + -- 3 levels of vertical protection + local y = 0 + + if ( pos.y < -60 ) then + y = -200 + elseif ( pos.y < 140 ) then + y = -30 + else + y = 90 + end + + + local z = math.floor(pos.z/chunkSize) + return x..","..y..","..z +end + +function landrush.get_chunk_center(pos) + local x = math.floor(pos.x/chunkSize)*chunkSize+7.5 + local y = 0 + + if ( pos.y < -60 ) then + y = -200 + elseif ( pos.y < 120 ) then + y = -30 + else + y = 120 + end + + local z = math.floor(pos.z/chunkSize)*chunkSize+7.5 + return {x=x,y=y,z=z} +end + +function landrush.get_owner(pos) + local chunk = landrush.get_chunk(pos) + if claims[chunk] then + return claims[chunk].owner + end +end + +function landrush.can_interact(name, pos) + local chunk = landrush.get_chunk(pos) + -- return claims[chunk] == nil or claims[chunk].owner == name or claims[chunk].shared[name] + if ( claims[chunk] == nil ) then + if ( requireClaim == true ) then + return false + else + return true + end + end + + -- if it's the owner or it's shared + if ( claims[chunk].shared[name] or claims[chunk].owner == name ) then + return true + end + + -- see if the owner is offline, and area is not shared then it's off limits + if ( minetest.env:get_player_by_name(claims[chunk].owner) == nil ) then + if ( claims[chunk].shared[name] ) then + return true + else + return nil + end + else + if ( claims[chunk].owner ~= name ) then + minetest.chat_send_player( claims[chunk].owner, "You are being griefed by "..name.." at "..minetest.pos_to_string(pos) ) + + -- TODO -- + -- send a chat to all shared people too + -- TODO -- + for u,u in pairs(claims[chunk].shared) do + minetest.chat_send_player( u, name.." is griefing your shared claim at "..minetest.pos_to_string(pos) ) + end + + minetest.chat_send_player( name, "You are griefing "..claims[chunk].owner ) + return true + end + end + return claims[chunk].owner == name or claims[chunk].shared[name] -- requires a landrush landclaim to build +end + +landrush.default_place = minetest.item_place +landrush.default_dig = minetest.node_dig + +-- Redefined Lua: + +function minetest.node_dig(pos, node, digger) + local player = digger:get_player_name() + if landrush.can_interact(player, pos) then + landrush.default_dig(pos, node, digger) + else + local owner = landrush.get_owner(pos) + if ( owner ~= nil ) then + minetest.chat_send_player(player, "Area owned by "..owner) + else + -- allow them to dig their ladder + if ( node['name'] ~= "default:ladder" ) then + minetest.chat_send_player(player,"Area unclaimed, claim this are to build") + else + landrush.default_dig(pos, node, digger) + end + end + end +end + +function minetest.item_place(itemstack, placer, pointed_thing) + if itemstack:get_definition().type == "node" and itemstack:get_name() ~= "default:ladder" then + owner = landrush.get_owner(pointed_thing.above) + player = placer:get_player_name() + if landrush.can_interact(player, pointed_thing.above) then + return landrush.default_place(itemstack, placer, pointed_thing) + else + if ( owner ~= nil ) then + minetest.chat_send_player(player, "Area owned by "..owner) + else + minetest.chat_send_player(player,"Area unclaimed, claim this are to build") + end + end + else + return landrush.default_place(itemstack, placer, pointed_thing) + end +end + +landrush.load_claims() +-- Load now + +-- In-game additions: + +minetest.register_chatcommand("landowner", { + params = "", + description = "tells the owner of the current map chunk", + privs = {interact=true}, + func = function(name, param) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + local owner = landrush.get_owner(pos) + if owner then + minetest.chat_send_player(name, "This area is owned by "..owner) + else + minetest.chat_send_player(name, "This area is unowned.") + end + end, +}) + +minetest.register_chatcommand("unclaim", { + params = "", + description = "unclaims the current map chunk", + privs = {interact=true}, + func = function(name, param) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + local owner = landrush.get_owner(pos) + local inv = player:get_inventory() + if owner then + if owner == name then + chunk = landrush.get_chunk(pos) + if inv:room_for_item("main", claims[chunk].claimtype) then + player:get_inventory():add_item("main", {name=claims[chunk].claimtype}) + claims[chunk] = nil + landrush.save_claims() + minetest.chat_send_player(name, "You renounced your claim on this area.") + else + minetest.chat_send_player(name, "Your inventory is full.") + end + else + minetest.chat_send_player(name, "This area is owned by "..owner) + end + else + minetest.chat_send_player(name, "This area is unowned.") + end + end, +}) + +minetest.register_chatcommand("sharearea", { + params = "", + description = "shares the current map chunk with ", + privs = {interact=true}, + func = function(name, param) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + local owner = landrush.get_owner(pos) + if owner then + if owner == name and name ~= param then + if minetest.env:get_player_by_name(param) then + claims[landrush.get_chunk(pos)].shared[param] = param + landrush.save_claims() + minetest.chat_send_player(name, param.." may now edit this area.") + minetest.chat_send_player(param, name.." has just shared an area with you.") + else + minetest.chat_send_player(name, param.." is not a valid player.") + end + else + minetest.chat_send_player(name, "This area is owned by "..owner) + end + else + minetest.chat_send_player(name, "This area is unowned.") + end + end, +}) + +minetest.register_chatcommand("unsharearea", { + params = "", + description = "unshares the current map chunk with ", + privs = {interact=true}, + func = function(name, param) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + local owner = landrush.get_owner(pos) + if owner then + if owner == name then + if name ~= param then + claims[landrush.get_chunk(pos)].shared[param] = nil + landrush.save_claims() + minetest.chat_send_player(name, param.." may no longer edit this area.") + minetest.chat_send_player(param, name.." has just revoked your editing privileges in an area.") + else + minetest.chat_send_player(name, 'Use "/unclaim" to unclaim the aria.') + end + else + minetest.chat_send_player(name, "This area is owned by "..owner) + end + else + minetest.chat_send_player(name, "This area is unowned.") + end + end, +}) + +minetest.register_chatcommand("mayedit", { + params = "", + description = "lists the people who may edit the current map chunk", + privs = {interact=true}, + func = function(name, param) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + local mayedit = landrush.get_owner(pos) + if mayedit then + local chunk = landrush.get_chunk(pos) + for user, user in pairs(claims[chunk].shared) do + mayedit = mayedit..", "..user + end + minetest.chat_send_player(name, mayedit) + else + minetest.chat_send_player(name, "This area is unowned.") + end + end, +}) + +function landrush.regester_claimnode(node, image) + local claimnode = minetest.get_current_modname()..":"..node + minetest.register_node(claimnode, { + description = "Land Claim", + tiles = {image}, + groups = {oddly_breakable_by_hand=2,not_in_creative_inventory=1}, + on_place = function(itemstack, placer, pointed_thing) + owner = landrush.get_owner(pointed_thing.above) + player = placer:get_player_name() + if owner then + minetest.chat_send_player(player, "This area is already owned by "..owner) + else + minetest.env:remove_node(pointed_thing.above) + chunk = landrush.get_chunk(pointed_thing.above) + claims[chunk] = {owner=placer:get_player_name(),shared={},claimtype=claimnode} + landrush.save_claims() + minetest.chat_send_player(claims[chunk].owner, "You now own this area.") + itemstack:take_item() + return itemstack + end + end, + }) +end + +landrush.regester_claimnode("landclaim", "landrush_landclaim.png") +landrush.regester_claimnode("landclaim_a", "landrush_landclaim_gem.png") + +minetest.register_entity("landrush:showarea",{ + on_activate = function(self, staticdata, dtime_s) + minetest.after(16,function() + self.object:remove() + end) + end, + initial_properties = { + hp_max = 1, + physical = true, + weight = 0, + collisionbox = {-8,-8,-8,8,8,8}, + visual = "mesh", + visual_size = {x=16.1, y=120.1}, + mesh = "landrush_showarea.x", + textures = {"landrush_showarea.png", "landrush_showarea.png", "landrush_showarea.png", "landrush_showarea.png", "landrush_showarea.png", "landrush_showarea.png"}, -- number of required textures depends on visual + colors = {}, -- number of required colors depends on visual + spritediv = {x=1, y=1}, + initial_sprite_basepos = {x=0, y=0}, + is_visible = true, + makes_footstep_sound = false, + automatic_rotate = false, + } +}) + +minetest.register_chatcommand("showarea", { + params = "", + description = "highlights the boundaries of the current protected area", + privs = {interact=true}, + func = function(name, param) + local player = minetest.env:get_player_by_name(name) + local pos = player:getpos() + --local owner = landrush.get_owner(pos) +-- if owner then + --if landrush.can_interact(name, pos) then + local entpos = landrush.get_chunk_center(pos) + minetest.env:add_entity(entpos, "landrush:showarea") + --else + -- minetest.chat_send_player(name, "This area is owned by "..owner) + --end +--[[ else + minetest.chat_send_player(name, "This area is unowned.") + end]] +-- (Removed at Rarkenin's request) + end, +}) + +minetest.after(0,function() + local path = minetest.get_modpath("landrush") + dofile(path.."/bucket.lua") + dofile(path.."/default.lua") + dofile(path.."/doors.lua") + dofile(path.."/fire.lua") +end) + diff --git a/models/landrush_showarea.png b/models/landrush_showarea.png new file mode 100644 index 0000000..ba271ed Binary files /dev/null and b/models/landrush_showarea.png differ diff --git a/models/landrush_showarea.x b/models/landrush_showarea.x new file mode 100644 index 0000000..ebd0e98 --- /dev/null +++ b/models/landrush_showarea.x @@ -0,0 +1,220 @@ +xof 0303txt 0032 + +Frame Root { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.000000, 1.000000,-0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Cube { + FrameTransformMatrix { + 5.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 5.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 5.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Mesh { //Cube_001 Mesh + 48; + -1.000000; 1.000000;-1.000000;, + -1.000000;-1.000000;-1.000000;, + 1.000000;-1.000000;-1.000000;, + 1.000000; 1.000000;-1.000000;, + 0.999999;-1.000001; 1.000000;, + -1.000000;-1.000000; 1.000000;, + -1.000000; 1.000000; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 1.000000;-1.000000;-1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 1.000000; 1.000000;-1.000000;, + -1.000000;-1.000000;-1.000000;, + -1.000000;-1.000000; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000;-1.000000;-1.000000;, + -1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000; 1.000000;, + -1.000000;-1.000000; 1.000000;, + -1.000000;-1.000000;-1.000000;, + -1.000000; 1.000000; 1.000000;, + -1.000000; 1.000000;-1.000000;, + 1.000000; 1.000000;-1.000000;, + 1.000000; 0.999999; 1.000000;, + 1.000000;-1.000000;-1.000000;, + -1.000000;-1.000000;-1.000000;, + -1.000000; 1.000000;-1.000000;, + 1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000; 1.000000;, + -1.000000;-1.000000; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 1.000000; 0.999999; 1.000000;, + 0.999999;-1.000001; 1.000000;, + 1.000000;-1.000000;-1.000000;, + 1.000000; 1.000000;-1.000000;, + 0.999999;-1.000001; 1.000000;, + -1.000000;-1.000000; 1.000000;, + -1.000000;-1.000000;-1.000000;, + 1.000000;-1.000000;-1.000000;, + -1.000000;-1.000000; 1.000000;, + -1.000000; 1.000000; 1.000000;, + -1.000000; 1.000000;-1.000000;, + -1.000000;-1.000000;-1.000000;, + 1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000;-1.000000;, + -1.000000; 1.000000; 1.000000;, + 1.000000; 0.999999; 1.000000;; + 12; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;; + MeshNormals { //Cube_001 Normals + 48; + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;; + 12; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;; + } //End of Cube_001 Normals + MeshMaterialList { //Cube_001 Material List + 1; + 12; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material Material { + 0.640000; 0.640000; 0.640000; 0.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + TextureFilename {"0gb.us_showarea.png";} + } + } //End of Cube_001 Material List + MeshTextureCoords { //Cube_001 UV Coordinates + 48; + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 1.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.000000;, + 0.000000; 0.000000;, + 0.000000; 1.000000;; + } //End of Cube_001 UV Coordinates + } //End of Cube_001 Mesh + } //End of Cube +} //End of Root Frame diff --git a/textures/landrush_landclaim.png b/textures/landrush_landclaim.png new file mode 100644 index 0000000..2a4d559 Binary files /dev/null and b/textures/landrush_landclaim.png differ diff --git a/textures/landrush_landclaim_gem.png b/textures/landrush_landclaim_gem.png new file mode 100644 index 0000000..385042e Binary files /dev/null and b/textures/landrush_landclaim_gem.png differ -- cgit v1.2.3