summaryrefslogtreecommitdiff
path: root/castle
diff options
context:
space:
mode:
Diffstat (limited to 'castle')
-rw-r--r--castle/LICENSE21
-rw-r--r--castle/README.txt58
-rw-r--r--castle/arrowslit.lua133
-rw-r--r--castle/crossbow.lua443
-rw-r--r--castle/depends.txt10
-rw-r--r--castle/description.txt1
-rw-r--r--castle/init.lua395
-rw-r--r--castle/jailbars.lua22
-rw-r--r--castle/mod.conf1
-rw-r--r--castle/models/LICENSE.txt10
-rw-r--r--castle/models/castle_crossbow_bolt.b3dbin21158 -> 0 bytes
-rw-r--r--castle/models/castle_crossbow_bolt.blendbin493796 -> 0 bytes
-rw-r--r--castle/models/castle_crossbow_bolt_uv.pngbin157 -> 0 bytes
-rw-r--r--castle/models/castle_tapestry.obj212
-rw-r--r--castle/models/castle_tapestry_long.obj220
-rw-r--r--castle/models/castle_tapestry_very_long.obj228
-rw-r--r--castle/murder_hole.lua50
-rw-r--r--castle/orbs.lua0
-rw-r--r--castle/pillars.lua108
-rw-r--r--castle/rope.lua124
-rw-r--r--castle/screenshot.pngbin209588 -> 0 bytes
-rw-r--r--castle/shields_decor.lua103
-rw-r--r--castle/sounds/LICENSE.txt52
-rw-r--r--castle/sounds/castle_birds.oggbin14797 -> 0 bytes
-rw-r--r--castle/sounds/castle_crossbow_bolt.oggbin5967 -> 0 bytes
-rw-r--r--castle/sounds/castle_crossbow_click.oggbin7377 -> 0 bytes
-rw-r--r--castle/sounds/castle_crossbow_reload.oggbin12213 -> 0 bytes
-rw-r--r--castle/sounds/castle_crossbow_shoot.oggbin8112 -> 0 bytes
-rw-r--r--castle/sounds/castle_orbs.oggbin17034 -> 0 bytes
-rw-r--r--castle/sounds/castle_owl.oggbin50950 -> 0 bytes
-rw-r--r--castle/tapestry.lua196
-rw-r--r--castle/textures/LICENSE.txt84
-rw-r--r--castle/textures/castle_battleaxe.pngbin358 -> 0 bytes
-rw-r--r--castle/textures/castle_chandelier.pngbin360 -> 0 bytes
-rw-r--r--castle/textures/castle_chandelier_chain.pngbin169 -> 0 bytes
-rw-r--r--castle/textures/castle_chandelier_wield.pngbin316 -> 0 bytes
-rw-r--r--castle/textures/castle_corner_stonewall1.pngbin696 -> 0 bytes
-rw-r--r--castle/textures/castle_corner_stonewall2.pngbin682 -> 0 bytes
-rw-r--r--castle/textures/castle_corner_stonewall_tb.pngbin691 -> 0 bytes
-rw-r--r--castle/textures/castle_crate.pngbin344 -> 0 bytes
-rw-r--r--castle/textures/castle_crate_top.pngbin395 -> 0 bytes
-rw-r--r--castle/textures/castle_crossbow_bolt_inv.pngbin146 -> 0 bytes
-rw-r--r--castle/textures/castle_crossbow_hit.pngbin516 -> 0 bytes
-rw-r--r--castle/textures/castle_crossbow_inv.pngbin280 -> 0 bytes
-rw-r--r--castle/textures/castle_crossbow_loaded.pngbin295 -> 0 bytes
-rw-r--r--castle/textures/castle_door_jail.pngbin878 -> 0 bytes
-rw-r--r--castle/textures/castle_door_oak.pngbin1343 -> 0 bytes
-rw-r--r--castle/textures/castle_dungeon_stone.pngbin543 -> 0 bytes
-rw-r--r--castle/textures/castle_grey.pngbin70 -> 0 bytes
-rw-r--r--castle/textures/castle_hide.pngbin618 -> 0 bytes
-rw-r--r--castle/textures/castle_ironbound_chest_back.pngbin522 -> 0 bytes
-rw-r--r--castle/textures/castle_ironbound_chest_front.pngbin537 -> 0 bytes
-rw-r--r--castle/textures/castle_ironbound_chest_side.pngbin374 -> 0 bytes
-rw-r--r--castle/textures/castle_ironbound_chest_top.pngbin522 -> 0 bytes
-rw-r--r--castle/textures/castle_jail_door_inv.pngbin186 -> 0 bytes
-rw-r--r--castle/textures/castle_jailbars.pngbin253 -> 0 bytes
-rw-r--r--castle/textures/castle_oak_door_inv.pngbin411 -> 0 bytes
-rw-r--r--castle/textures/castle_orb_day.pngbin112 -> 0 bytes
-rw-r--r--castle/textures/castle_orb_day_weild.pngbin185 -> 0 bytes
-rw-r--r--castle/textures/castle_orb_night.pngbin109 -> 0 bytes
-rw-r--r--castle/textures/castle_orb_night_weild.pngbin184 -> 0 bytes
-rw-r--r--castle/textures/castle_pavement_brick.pngbin700 -> 0 bytes
-rw-r--r--castle/textures/castle_ropebox_side_1.pngbin342 -> 0 bytes
-rw-r--r--castle/textures/castle_ropebox_side_2.pngbin286 -> 0 bytes
-rw-r--r--castle/textures/castle_ropebox_top.pngbin262 -> 0 bytes
-rw-r--r--castle/textures/castle_ropes.pngbin278 -> 0 bytes
-rw-r--r--castle/textures/castle_rubble.pngbin563 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_back.pngbin620 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_front.pngbin520 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_front_2.pngbin701 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_front_3.pngbin536 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_side.pngbin94 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_side_2.pngbin91 -> 0 bytes
-rw-r--r--castle/textures/castle_shield_side_3.pngbin101 -> 0 bytes
-rw-r--r--castle/textures/castle_slate.pngbin261 -> 0 bytes
-rw-r--r--castle/textures/castle_space.pngbin151 -> 0 bytes
-rw-r--r--castle/textures/castle_steel.pngbin214 -> 0 bytes
-rw-r--r--castle/textures/castle_stonewall.pngbin660 -> 0 bytes
-rw-r--r--castle/textures/castle_straw_bale.pngbin756 -> 0 bytes
-rw-r--r--castle/textures/castle_street_light.pngbin465 -> 0 bytes
-rw-r--r--castle/textures/castle_tapestry.pngbin323 -> 0 bytes
-rw-r--r--castle/textures/castle_tapestry_inv.pngbin2062 -> 0 bytes
-rw-r--r--castle/textures/castle_tapestry_long_inv.pngbin1822 -> 0 bytes
-rw-r--r--castle/textures/castle_tapestry_very_long_inv.pngbin1376 -> 0 bytes
-rw-r--r--castle/textures/castle_workbench_back.pngbin383 -> 0 bytes
-rw-r--r--castle/textures/castle_workbench_bottom.pngbin369 -> 0 bytes
-rw-r--r--castle/textures/castle_workbench_front.pngbin391 -> 0 bytes
-rw-r--r--castle/textures/castle_workbench_side.pngbin342 -> 0 bytes
-rw-r--r--castle/textures/castle_workbench_top.pngbin336 -> 0 bytes
-rw-r--r--castle/town_item.lua386
90 files changed, 0 insertions, 2857 deletions
diff --git a/castle/LICENSE b/castle/LICENSE
deleted file mode 100644
index 456d091..0000000
--- a/castle/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Minetest Mods Team
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/castle/README.txt b/castle/README.txt
deleted file mode 100644
index 3baca1a..0000000
--- a/castle/README.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-=-=-=-=-=-=-=-=-=-=
-
-Castles Mod
-by: Philipbenr And DanDuncombe
-
-=-=-=-=-=-=-=-=-=-=
-
-Licence: MIT, LGPLv2.1 (Crossbow)
-
-see: LICENSE
-
-=-=-=-=-=-=-=-=-=-=
-
-This is a mod all about creating castles and castle dungeons. Many of the nodes are used for the outer-walls or dungeons.
-
-=-=-=-=-=-=-=-=-=-=
-
-Contains as of now:
-
---Walls, Corner-walls,
---Castlestone Stairs, Slabs, and Pillars
---Jailbars
---Hides
---Arrows and Arrowslits
---Rubble
---Doors
---Weapons
---Chandeliers
---Tapestries
---and more!
-
-=-=-=-=-=-=-=-=-=-=
-
-Big release coming soon. ;) Stay tuned.
-
-Planned features (anything with question mark means that I am either unsure or don't know how to accomplish it ;)
-
---More/Better weapons
---More decorations
---More nodes
---Redone columns
---More doors
---Gatehouse mod
---Armor
---More magical items (mana, orbs, potions...)
---Crowns/capes/player decor
---Flags
---Brewery/Liquor (liquor effects is another thing altogether)
---Tannery?
---Dye Vats?
---Books? (that is an interesting one... I'll write a post on it later)
---Guards?
---Player status (King, queen, etc.)?
---Foods?
---Horses/Livestock?
---Ruins?
-
---Modpack Configurator
diff --git a/castle/arrowslit.lua b/castle/arrowslit.lua
deleted file mode 100644
index 275d817..0000000
--- a/castle/arrowslit.lua
+++ /dev/null
@@ -1,133 +0,0 @@
-minetest.register_alias("castle:arrowslit", "castle:arrowslit_stonewall")
-minetest.register_alias("castle:arrowslit_hole", "castle:arrowslit_stonewall_hole")
-minetest.register_alias("castle:arrowslit", "castle:arrowslit_stonewall_cross")
-
-local arrowslit = {}
-
-arrowslit.types = {
- {"stonewall", "Stonewall", "castle_stonewall", "castle:stonewall"},
- {"cobble", "Cobble", "default_cobble", "default:cobble"},
- {"stonebrick", "Stonebrick", "default_stone_brick", "default:stonebrick"},
- {"sandstonebrick", "Sandstone Brick", "default_sandstone_brick", "default:sandstonebrick"},
- {"desertstonebrick", "Desert Stone Brick", "default_desert_stone_brick", "default:desert_stonebrick"},
- {"stone", "Stone", "default_stone", "default:stone"},
- {"sandstone", "Sandstone", "default_sandstone", "default:sandstone"},
- {"desertstone", "Desert Stone", "default_desert_stone", "default:desert_stone"},
-}
-
-for _, row in ipairs(arrowslit.types) do
- local name = row[1]
- local desc = row[2]
- local tile = row[3]
- local craft_material = row[4]
- -- Node Definition
- minetest.register_node("castle:arrowslit_"..name, {
- drawtype = "nodebox",
- description = desc.." Arrowslit",
- tiles = {tile..".png"},
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.375000,-0.500000,-0.062500,0.375000,-0.312500},
- {0.062500,-0.375000,-0.500000,0.500000,0.375000,-0.312500},
- {-0.500000,0.375000,-0.500000,0.500000,0.500000,-0.312500},
- {-0.500000,-0.500000,-0.500000,0.500000,-0.375000,-0.312500},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,-0.500000,0.500000,0.500000,-0.312500},
- },
- },
- })
- minetest.register_node("castle:arrowslit_"..name.."_cross", {
- drawtype = "nodebox",
- description = desc.." Arrowslit with Cross",
- tiles = {tile..".png"},
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.125000,-0.500000,-0.062500,0.375000,-0.312500},
- {0.062500,-0.125000,-0.500000,0.500000,0.375000,-0.312500},
- {-0.500000,0.375000,-0.500000,0.500000,0.500000,-0.312500},
- {-0.500000,-0.500000,-0.500000,0.500000,-0.375000,-0.312500},
- {0.062500,-0.375000,-0.500000,0.500000,-0.250000,-0.312500},
- {-0.500000,-0.375000,-0.500000,-0.062500,-0.250000,-0.312500},
- {-0.500000,-0.250000,-0.500000,-0.187500,-0.125000,-0.312500},
- {0.187500,-0.250000,-0.500000,0.500000,-0.125000,-0.312500},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,-0.500000,0.500000,0.500000,-0.312500},
- },
- },
- })
- minetest.register_node("castle:arrowslit_"..name.."_hole", {
- drawtype = "nodebox",
- description = desc.." Arrowslit with Hole",
- tiles = {tile..".png"},
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.375000,-0.500000,-0.125000,0.375000,-0.312500},
- {0.125000,-0.375000,-0.500000,0.500000,0.375000,-0.312500},
- {-0.500000,-0.500000,-0.500000,0.500000,-0.375000,-0.312500},
- {0.062500,-0.125000,-0.500000,0.125000,0.375000,-0.312500},
- {-0.125000,-0.125000,-0.500000,-0.062500,0.375000,-0.312500},
- {-0.500000,0.375000,-0.500000,0.500000,0.500000,-0.312500},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,-0.500000,0.500000,0.500000,-0.312500},
- },
- },
- })
- if craft_material then
- --Choose craft material
- minetest.register_craft({
- output = "castle:arrowslit_"..name.." 6",
- recipe = {
- {craft_material,"", craft_material},
- {craft_material,"", craft_material},
- {craft_material,"", craft_material} },
- })
- end
- if craft_material then
- minetest.register_craft({
- output = "castle:arrowslit_"..name.."_cross",
- recipe = {
- {"castle:arrowslit_"..name} },
- })
- end
- if craft_material then
- minetest.register_craft({
- output = "castle:arrowslit_"..name.."_hole",
- recipe = {
- {"castle:arrowslit_"..name.."_cross"} },
- })
- end
- if craft_material then
- minetest.register_craft({
- output = "castle:arrowslit_"..name,
- recipe = {
- {"castle:arrowslit_"..name.."_hole"} },
- })
- end
-end
diff --git a/castle/crossbow.lua b/castle/crossbow.lua
deleted file mode 100644
index c752779..0000000
--- a/castle/crossbow.lua
+++ /dev/null
@@ -1,443 +0,0 @@
---[[
-Minetest Mod - Simple Shooter [shooter] 0.5.3
-=======================================
-
-License Source Code: 2013 Stuart Jones - LGPL v2.1
-
-License Textures: Stuart Jones - WTFPL
-
-Licence Models: Stuart Jones - CC-BY-SA 3.0
-
-License Sounds: freesound.org
-
---]]
-local crossbow={}
-
-minetest.register_alias("crossbow", "castle:crossbow")
-minetest.register_alias("bolt", "castle:crossbow_bolt")
-
-CROSSBOW_USES = 300
-CROSSBOW_BOLT_TOOL_CAPS = {damage_groups={fleshy=4}}
-CROSSBOW_BOLT_LIFETIME = 60-- 1 minute
-CROSSBOW_ENABLE_PARTICLE_FX = false
-CROSSBOW_ENABLE_PROTECTION = true
-CROSSBOW_EXPLOSION_TEXTURE = "castle_crossbow_hit.png"
-CROSSBOW_ALLOW_NODES = true
-CROSSBOW_ALLOW_ENTITIES = true
-CROSSBOW_ALLOW_PLAYERS = true
-CROSSBOW_PLAYER_OFFSET = {x=0, y=1, z=0}
-CROSSBOW_ENTITY_OFFSET = {x=0, y=0, z=0}
-CROSSBOW_ENTITIES = {
-"mobs:chicken",
-"mobs:cow",
-"mobs:dirt_monster",
-"mobs:dungeon_master",
-"mobs:goat",
-"mobs:mese_monster",
-"mobs:npc",
-"mobs:oerkki",
-"mobs:pig",
-"mobs:pumba",
-"mobs:rat",
-"mobs:rhino",
-"mobs:sand_monster",
-"mobs:sheep",
-"mobs:spider",
-"mobs:stone_monster",
-"mobs:tree_monster",
-}
-
-if minetest.is_singleplayer() == true then
- CROSSBOW_ALLOW_ENTITIES = true
- CROSSBOW_ALLOW_PLAYERS = true
-end
-
-local allowed_entities = {}
-for _,v in ipairs(CROSSBOW_ENTITIES) do
- allowed_entities[v] = 1
-end
-
-local function get_dot_product(v1, v2)
- return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z
-end
-
-local function get_particle_pos(p, v, d)
- return vector.add(p, vector.multiply(v, {x=d, y=d, z=d}))
-end
-
-function crossbow:spawn_particles(pos, texture)
- if CROSSBOW_ENABLE_PARTICLE_FX == true then
- if type(texture) ~= "string" then
- texture = CROSSBOW_EXPLOSION_TEXTURE
- end
- local spread = {x=0.1, y=0.1, z=0.1}
- minetest.add_particlespawner(15, 0.3,
- vector.subtract(pos, spread), vector.add(pos, spread),
- {x=-1, y=1, z=-1}, {x=1, y=2, z=1},
- {x=-2, y=-2, z=-2}, {x=2, y=-2, z=2},
- 0.1, 0.75, 1, 2, false, texture
- )
- end
-end
-
-function crossbow:punch_node(pos, def)
- local node = minetest.get_node(pos)
- if not node then
- return
- end
- local item = minetest.registered_items[node.name]
- if not item then
- return
- end
- if CROSSBOW_ENABLE_PROTECTION then
- if minetest.is_protected(pos, def.name) then
- return
- end
- end
- if item.groups then
- for k, v in pairs(def.groups) do
- local level = item.groups[k] or 0
- if level >= v then
- minetest.remove_node(pos)
- if item.tiles then
- if item.tiles[1] then
- crossbow:spawn_particles(pos, item.tiles[1])
- end
- end
- break
- end
- end
- end
-end
-
-function crossbow:is_valid_object(object)
- if object then
- if object:is_player() == true then
- return CROSSBOW_ALLOW_PLAYERS
- end
- if CROSSBOW_ALLOW_ENTITIES == true then
- local luaentity = object:get_luaentity()
- if luaentity then
- if luaentity.name then
- if allowed_entities[luaentity.name] then
- return true
- end
- end
- end
- end
- end
-end
-
-function crossbow:get_intersect_pos(ray, plane, collisionbox)
- local v = vector.subtract(ray.pos, plane.pos)
- local r1 = get_dot_product(v, plane.normal)
- local r2 = get_dot_product(ray.dir, plane.normal)
- if r2 ~= 0 then
- local t = -(r1 / r2)
- local td = vector.multiply(ray.dir, {x=t, y=t, z=t})
- local pt = vector.add(ray.pos, td)
- local pd = vector.subtract(pt, plane.pos)
- if math.abs(pd.x) < collisionbox[4] and
- math.abs(pd.y) < collisionbox[5] and
- math.abs(pd.z) < collisionbox[6] then
- return pt
- end
- end
-end
-
-function crossbow:process_round(round)
- local target = {object=nil, distance=10000}
- local p1 = round.pos
- local v1 = round.ray
- for _,ref in ipairs(castle.objects) do
- local p2 = vector.add(ref.pos, ref.offset)
- if p1 and p2 and ref.name ~= round.name then
- local d = vector.distance(p1, p2)
- if d < round.def.step and d < target.distance then
- local ray = {pos=p1, dir=v1}
- local plane = {pos=p2, normal={x=-1, y=0, z=-1}}
- local pos = crossbow:get_intersect_pos(ray, plane, ref.collisionbox)
- if pos then
- target.object = ref.object
- target.pos = pos
- target.distance = d
- end
- end
- end
- end
- if target.object and target.pos then
- local success, pos = minetest.line_of_sight(p1, target.pos, 1)
- if success then
- local user = minetest.get_player_by_name(round.name)
- if user then
- target.object:punch(user, nil, round.def.tool_caps, v1)
- crossbow:spawn_particles(target.pos, CROSSBOW_EXPLOSION_TEXTURE)
- end
- return 1
- elseif pos and CROSSBOW_ALLOW_NODES == true then
- crossbow:punch_node(pos, round.def)
- return 1
- end
- elseif CROSSBOW_ALLOW_NODES == true then
- local d = round.def.step
- local p2 = vector.add(p1, vector.multiply(v1, {x=d, y=d, z=d}))
- local success, pos = minetest.line_of_sight(p1, p2, 1)
- if pos then
- crossbow:punch_node(pos, round.def)
- return 1
- end
- end
-end
-
-local function get_animation_frame(dir)
- local angle = math.atan(dir.y)
- local frame = 90 - math.floor(angle * 360 / math.pi)
- if frame < 1 then
- frame = 1
- elseif frame > 180 then
- frame = 180
- end
- return frame
-end
-
-local function get_target_pos(p1, p2, dir, offset)
- local d = vector.distance(p1, p2) - offset
- local td = vector.multiply(dir, {x=d, y=d, z=d})
- return vector.add(p1, td)
-end
-
-local function punch_object(puncher, object)
- if puncher and crossbow:is_valid_object(object) then
- if puncher ~= object then
- local dir = puncher:get_look_dir()
- local p1 = puncher:getpos()
- local p2 = object:getpos()
- local tpos = get_target_pos(p1, p2, dir, 0)
- crossbow:spawn_particles(tpos, CROSSBOW_EXPLOSION_TEXTURE)
- object:punch(puncher, nil, CROSSBOW_BOLT_TOOL_CAPS, dir)
- end
- end
-end
-
-local function stop_crossbow_bolt(object, pos, stuck)
- local acceleration = {x=0, y=-10, z=0}
- if stuck == true then
- pos = pos or object:getpos()
- acceleration = {x=0, y=0, z=0}
- object:moveto(pos)
- end
- object:set_properties({
- physical = true,
- collisionbox = {-1/8,-1/8,-1/8, 1/8,1/8,1/8},
- })
- object:setvelocity({x=0, y=0, z=0})
- object:setacceleration(acceleration)
-end
-
-minetest.register_craftitem("castle:crossbow_bolt", {
- description = "Bolt",
- stack_max = 20,
- inventory_image = "castle_crossbow_bolt_inv.png",
-})
-
-minetest.register_entity("castle:crossbow_bolt_entity", {
- physical = false,
- visual = "mesh",
- mesh = "castle_crossbow_bolt.b3d",
- visual_size = {x=1.0, y=1.0},
- textures = {
- "castle_crossbow_bolt_uv.png"
- },
- timer = 0,
- lifetime = CROSSBOW_BOLT_LIFETIME,
- player = nil,
- state = "init",
- node_pos = nil,
- collisionbox = {0,0,0, 0,0,0},
- on_activate = function(self, staticdata)
- self.object:set_armor_groups({immortal=1})
- if staticdata == "expired" then
- self.object:remove()
- end
- end,
- on_punch = function(self, puncher)
- if puncher then
- if puncher:is_player() then
- local stack = "castle:crossbow_bolt"
- local inv = puncher:get_inventory()
- if inv:room_for_item("main", stack) then
- inv:add_item("main", stack)
- self.object:remove()
- end
- end
- end
- end,
- on_step = function(self, dtime)
- if self.state == "init" then
- return
- end
- self.timer = self.timer + dtime
- self.lifetime = self.lifetime - dtime
- if self.lifetime < 0 then
- self.object:remove()
- return
- elseif self.state == "dropped" then
- return
- elseif self.state == "stuck" then
- if self.timer > 1 then
- if self.node_pos then
- local node = minetest.get_node(self.node_pos)
- if node.name then
- local item = minetest.registered_items[node.name]
- if item then
- if not item.walkable then
- self.state = "dropped"
- stop_crossbow_bolt(self.object)
- return
- end
- end
- end
- end
- self.timer = 0
- end
- return
- end
- if self.timer > 0.2 then
- local pos = self.object:getpos()
- local dir = vector.normalize(self.object:getvelocity())
- local frame = get_animation_frame(dir)
- self.object:set_animation({x=frame, y=frame}, 0)
- local objects = minetest.get_objects_inside_radius(pos, 5)
- for _,obj in ipairs(objects) do
- if crossbow:is_valid_object(obj) then
- local collisionbox = {-0.25,-1.0,-0.25, 0.25,0.8,0.25}
- local offset = CROSSBOW_PLAYER_OFFSET
- if not obj:is_player() then
- offset = CROSSBOW_ENTITY_OFFSET
- local ent = obj:get_luaentity()
- if ent then
- local def = minetest.registered_entities[ent.name]
- collisionbox = def.collisionbox or collisionbox
- end
- end
- local opos = vector.add(obj:getpos(), offset)
- local ray = {pos=pos, dir=dir}
- local plane = {pos=opos, normal={x=-1, y=0, z=-1}}
- local ipos = crossbow:get_intersect_pos(ray, plane, collisionbox)
- if ipos then
- punch_object(self.player, obj)
- end
- end
- end
- local p = vector.add(pos, vector.multiply(dir, {x=5, y=5, z=5}))
- local _, npos = minetest.line_of_sight(pos, p, 1)
- if npos then
- local node = minetest.get_node(npos)
- local tpos = get_target_pos(pos, npos, dir, 0.66)
- self.node_pos = npos
- self.state = "stuck"
- stop_crossbow_bolt(self.object, tpos, true)
- minetest.sound_play("castle_crossbow_bolt", {gain = 0.08, max_hear_distance = 2})
- end
- self.timer = 0
- end
- end,
- get_staticdata = function(self)
- return "expired"
- end,
-})
-
- minetest.register_tool("castle:crossbow_loaded", {
- description = "Crossbow",
- inventory_image = "castle_crossbow_loaded.png",
- groups = {not_in_creative_inventory=1},
- on_use = function(itemstack, user, pointed_thing)
- minetest.sound_play("castle_crossbow_click", {object=user})
- if not minetest.setting_getbool("creative_mode") then
- itemstack:add_wear(65535/CROSSBOW_USES)
- end
- itemstack = "castle:crossbow 1 "..itemstack:get_wear()
- local pos = user:getpos()
- local dir = user:get_look_dir()
- local yaw = user:get_look_yaw()
- if pos and dir and yaw then
- pos.y = pos.y + 1.5
- local obj = minetest.add_entity(pos, "castle:crossbow_bolt_entity")
- local ent = nil
- if obj then
- ent = obj:get_luaentity()
- end
- if ent then
- obj:set_properties({
- textures = {"castle_crossbow_bolt_uv.png"}
- })
- minetest.sound_play("castle_crossbow_shoot", {object=obj})
- local frame = get_animation_frame(dir)
- obj:setyaw(yaw + math.pi)
- obj:set_animation({x=frame, y=frame}, 0)
- obj:setvelocity({x=dir.x * 14, y=dir.y * 14, z=dir.z * 14})
- if pointed_thing.type ~= "nothing" then
- local ppos = minetest.get_pointed_thing_position(pointed_thing, false)
- local _, npos = minetest.line_of_sight(pos, ppos, 1)
- if npos then
- ppos = npos
- pointed_thing.type = "node"
- end
- if pointed_thing.type == "object" then
- punch_object(user, pointed_thing.ref)
- elseif pointed_thing.type == "node" then
- local node = minetest.get_node(ppos)
- local tpos = get_target_pos(pos, ppos, dir, 0.66)
- minetest.after(0.2, function(object, pos, npos)
- ent.node_pos = npos
- ent.state = "stuck"
- stop_crossbow_bolt(object, pos, true)
- minetest.sound_play("castle_crossbow_bolt", {gain = 0.08, max_hear_distance = 2})
- end, obj, tpos, ppos)
- return itemstack
- end
- end
- obj:setacceleration({x=dir.x * -3, y=-5, z=dir.z * -3})
- ent.player = ent.player or user
- ent.state = "flight"
- end
- end
- return itemstack
- end,
- })
-
-minetest.register_tool("castle:crossbow", {
- description = "Crossbow",
- inventory_image = "castle_crossbow_inv.png",
- on_use = function(itemstack, user, pointed_thing)
- local inv = user:get_inventory()
-if inv:contains_item("main", "castle:crossbow_bolt") then
- minetest.sound_play("castle_crossbow_reload", {object=user})
- if not minetest.setting_getbool("creative_mode") then
- inv:remove_item("main", "castle:crossbow_bolt 1")
- end
- return "castle:crossbow_loaded 1 "..itemstack:get_wear()
- end
- minetest.sound_play("castle_crossbow_click", {object=user})
- end,
-})
-
------------
---Crafting
------------
-
-minetest.register_craft({
- output = 'castle:crossbow',
- recipe = {
- {'default:steel_ingot', 'default:stick', 'default:steel_ingot'},
- {'farming:string', 'farming:string', 'farming:string'},
- {'', 'default:stick', ''},
- }
-})
-
-minetest.register_craft({
- output = "castle:crossbow_bolt 6",
- recipe = {
- {'default:stick', 'default:stick', 'default:steel_ingot'},
- }
-}) \ No newline at end of file
diff --git a/castle/depends.txt b/castle/depends.txt
deleted file mode 100644
index da4fb74..0000000
--- a/castle/depends.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-default
-stairs
-doors
-farming
-unifieddyes
-building_blocks?
-asphalt?
-streets?
-moreblocks?
-xpanes?
diff --git a/castle/description.txt b/castle/description.txt
deleted file mode 100644
index 2399226..0000000
--- a/castle/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-This is a mod all about creating castles and castle dungeons. Many of the nodes are used for the outer-walls or dungeons.
diff --git a/castle/init.lua b/castle/init.lua
deleted file mode 100644
index d57967e..0000000
--- a/castle/init.lua
+++ /dev/null
@@ -1,395 +0,0 @@
-castle = {}
-
-dofile(minetest.get_modpath("castle").."/pillars.lua")
-dofile(minetest.get_modpath("castle").."/arrowslit.lua")
-dofile(minetest.get_modpath("castle").."/tapestry.lua")
-dofile(minetest.get_modpath("castle").."/jailbars.lua")
-dofile(minetest.get_modpath("castle").."/town_item.lua")
-dofile(minetest.get_modpath("castle").."/shields_decor.lua")
-dofile(minetest.get_modpath("castle").."/murder_hole.lua")
-dofile(minetest.get_modpath("castle").."/orbs.lua")
-dofile(minetest.get_modpath("castle").."/rope.lua")
-dofile(minetest.get_modpath("castle").."/crossbow.lua")
-
--- nodes
-
-minetest.register_node("castle:stonewall", {
- description = "Castle Wall",
- drawtype = "normal",
- tiles = {"castle_stonewall.png"},
- paramtype = "light",
- drop = "castle:stonewall",
- groups = {cracky=3},
- sunlight_propagates = false,
- sounds = default.node_sound_stone_defaults(),
-})
-
-minetest.register_node("castle:rubble", {
- description = "Castle Rubble",
- drawtype = "normal",
- tiles = {"castle_rubble.png"},
- paramtype = "light",
- groups = {crumbly=3,falling_node=1},
- sounds = default.node_sound_gravel_defaults(),
-})
-
-minetest.register_craft({
- output = "castle:stonewall",
- recipe = {
- {"default:cobble"},
- {"default:desert_stone"},
- }
-})
-
-minetest.register_craft({
- output = "castle:rubble",
- recipe = {
- {"castle:stonewall"},
- }
-})
-
-minetest.register_craft({
- output = "castle:rubble 2",
- recipe = {
- {"default:gravel"},
- {"default:desert_stone"},
- }
-})
-
-minetest.register_node("castle:stonewall_corner", {
- drawtype = "normal",
- paramtype = "light",
- paramtype2 = "facedir",
- description = "Castle Corner",
- tiles = {"castle_corner_stonewall_tb.png^[transformR90",
- "castle_corner_stonewall_tb.png^[transformR180",
- "castle_corner_stonewall1.png",
- "castle_stonewall.png",
- "castle_stonewall.png",
- "castle_corner_stonewall2.png"},
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
-})
-
-minetest.register_craft({
- output = "castle:stonewall_corner",
- recipe = {
- {"", "castle:stonewall"},
- {"castle:stonewall", "default:sandstone"},
- }
-})
-
-minetest.register_node("castle:roofslate", {
- drawtype = "raillike",
- description = "Roof Slates",
- inventory_image = "castle_slate.png",
- paramtype = "light",
- walkable = false,
- tiles = {'castle_slate.png'},
- climbable = true,
- selection_box = {
- type = "fixed",
- fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
- },
- groups = {cracky=3,attached_node=1},
- sounds = default.node_sound_glass_defaults(),
-})
-
-minetest.register_node("castle:hides", {
- drawtype = "signlike",
- description = "Hides",
- inventory_image = "castle_hide.png",
- paramtype = "light",
- walkable = false,
- tiles = {'castle_hide.png'},
- climbable = true,
- paramtype2 = "wallmounted",
- legacy_wallmounted = true,
- groups = {dig_immediate=2},
- selection_box = {
- type = "wallmounted",
- },
-})
-
-minetest.register_craft( {
- type = "shapeless",
- output = "castle:hides 6",
- recipe = { "wool:white" , "bucket:bucket_water" },
- replacements = {
- { 'bucket:bucket_water', 'bucket:bucket_empty' }
- }
-})
-
-local mod_building_blocks = minetest.get_modpath("building_blocks")
-local mod_streets = minetest.get_modpath("streets") or minetest.get_modpath("asphalt")
-
-if mod_building_blocks then
- minetest.register_craft({
- output = "castle:roofslate 4",
- recipe = {
- { "building_blocks:Tar" , "default:gravel" },
- { "default:gravel", "building_blocks:Tar" }
- }
- })
-
- minetest.register_craft( {
- output = "castle:roofslate 4",
- recipe = {
- { "default:gravel", "building_blocks:Tar" },
- { "building_blocks:Tar" , "default:gravel" }
- }
- })
-end
-
-if mod_streets then
- minetest.register_craft( {
- output = "castle:roofslate 4",
- recipe = {
- { "streets:asphalt" , "default:gravel" },
- { "default:gravel", "streets:asphalt" }
- }
- })
-
- minetest.register_craft( {
- output = "castle:roofslate 4",
- recipe = {
- { "default:gravel", "streets:asphalt" },
- { "streets:asphalt" , "default:gravel" }
- }
- })
-end
-
-if not (mod_building_blocks or mod_streets) then
- minetest.register_craft({
- type = "cooking",
- output = "castle:roofslate",
- recipe = "default:gravel",
- })
-
-end
-
-doors.register("castle:oak_door", {
- tiles = {{ name = "castle_door_oak.png", backface_culling = true }},
- description = "Oak Door",
- inventory_image = "castle_oak_door_inv.png",
- protected = true,
- groups = { choppy = 2, door = 1 },
- sounds = default.node_sound_wood_defaults(),
- recipe = {
- {"default:tree", "default:tree"},
- {"default:tree", "default:tree"},
- {"default:tree", "default:tree"},
- }
-})
-
-doors.register("castle:jail_door", {
- tiles = {{ name = "castle_door_jail.png", backface_culling = true }},
- description = "Jail Door",
- inventory_image = "castle_jail_door_inv.png",
- protected = true,
- groups = { cracky = 2, door = 1},
- sound_open = "doors_steel_door_open",
- sound_close = "doors_steel_door_close",
- recipe = {
- {"castle:jailbars", "castle:jailbars"},
- {"castle:jailbars", "castle:jailbars"},
- {"castle:jailbars", "castle:jailbars"},
- }
-})
-
-function default.get_ironbound_chest_formspec(pos)
- local spos = pos.x .. "," .. pos.y .. "," ..pos.z
- local formspec =
- "size[8,9]"..
- default.gui_bg ..
- default.gui_bg_img ..
- default.gui_slots ..
- "list[nodemeta:".. spos .. ";main;0,0;8,4;]"..
- "list[current_player;main;0,5;8,4;]"
- return formspec
-end
-
-local function has_ironbound_chest_privilege(meta, player)
- local name = ""
- if player then
- if minetest.check_player_privs(player, "protection_bypass") then
- return true
- end
- name = player:get_player_name()
- end
- if name ~= meta:get_string("owner") then
- return false
- end
- return true
-end
-
-minetest.register_node("castle:ironbound_chest",{
- drawtype = "nodebox",
- description = "Ironbound Chest",
- tiles = {"castle_ironbound_chest_top.png",
- "castle_ironbound_chest_top.png",
- "castle_ironbound_chest_side.png",
- "castle_ironbound_chest_side.png",
- "castle_ironbound_chest_back.png",
- "castle_ironbound_chest_front.png"},
- paramtype = "light",
- paramtype2 = "facedir",
- groups = {cracky=2},
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,-0.312500,0.500000,-0.062500,0.312500},
- {-0.500000,-0.062500,-0.250000,0.500000,0.000000,0.250000},
- {-0.500000,0.000000,-0.187500,0.500000,0.062500,0.187500},
- {-0.500000,0.062500,-0.062500,0.500000,0.125000,0.062500},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.5,-0.500000,-0.400000,0.5,0.200000,0.4},
-
- },
- },
- sounds = default.node_sound_wood_defaults(),
- after_place_node = function(pos, placer)
- local meta = minetest.get_meta(pos)
- meta:set_string("owner", placer:get_player_name() or "")
- meta:set_string("infotext", "Ironbound Chest (owned by "..
- meta:get_string("owner")..")")
- end,
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("infotext", "Ironbound Chest")
- meta:set_string("owner", "")
- local inv = meta:get_inventory()
- inv:set_size("main", 8*4)
- end,
- can_dig = function(pos,player)
- local meta = minetest.get_meta(pos);
- local inv = meta:get_inventory()
- return inv:is_empty("main") and has_ironbound_chest_privilege(meta, player)
- end,
- allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- local meta = minetest.get_meta(pos)
- if not has_ironbound_chest_privilege(meta, player) then
- minetest.log("action", player:get_player_name()..
- " tried to access a locked chest belonging to "..
- meta:get_string("owner").." at "..
- minetest.pos_to_string(pos))
- return 0
- end
- return count
- end,
- allow_metadata_inventory_put = function(pos, listname, index, stack, player)
- local meta = minetest.get_meta(pos)
- if not has_ironbound_chest_privilege(meta, player) then
- minetest.log("action", player:get_player_name()..
- " tried to access a locked chest belonging to "..
- meta:get_string("owner").." at "..
- minetest.pos_to_string(pos))
- return 0
- end
- return stack:get_count()
- end,
- allow_metadata_inventory_take = function(pos, listname, index, stack, player)
- local meta = minetest.get_meta(pos)
- if not has_ironbound_chest_privilege(meta, player) then
- minetest.log("action", player:get_player_name()..
- " tried to access a locked chest belonging to "..
- meta:get_string("owner").." at "..
- minetest.pos_to_string(pos))
- return 0
- end
- return stack:get_count()
- end,
- on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- minetest.log("action", player:get_player_name()..
- " moves stuff in locked chest at "..minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_put = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name()..
- " moves stuff to locked chest at "..minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_take = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name()..
- " takes stuff from locked chest at "..minetest.pos_to_string(pos))
- end,
- on_rightclick = function(pos, node, clicker)
- local meta = minetest.get_meta(pos)
- if has_ironbound_chest_privilege(meta, clicker) then
- minetest.show_formspec(
- clicker:get_player_name(),
- "castle:ironbound_chest",
- default.get_ironbound_chest_formspec(pos)
- )
- end
- end,
- on_blast = function() end,
-})
-
-minetest.register_craft({
- output = "castle:ironbound_chest",
- recipe = {
- {"default:wood", "default:steel_ingot","default:wood"},
- {"default:wood", "default:steel_ingot","default:wood"}
- }
-})
-
-minetest.register_tool("castle:battleaxe", {
- description = "Battleaxe",
- inventory_image = "castle_battleaxe.png",
- tool_capabilities = {
- full_punch_interval = 2.0,
- max_drop_level=1,
- groupcaps={
- choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=20, maxlevel=3},
- snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=20, maxlevel=3},
- },
- damage_groups = {fleshy=7},
- },
-})
-
-minetest.register_craft({
- output = "castle:battleaxe",
- recipe = {
- {"default:steel_ingot", "default:steel_ingot","default:steel_ingot"},
- {"default:steel_ingot", "default:stick","default:steel_ingot"},
- {"", "default:stick",""}
- }
-})
-
-if minetest.get_modpath("moreblocks") then
- stairsplus:register_all("castle", "stonewall", "castle:stonewall", {
- description = "Stone Wall",
- tiles = {"castle_stonewall.png"},
- groups = {cracky=3, not_in_creative_inventory=1},
- sounds = default.node_sound_stone_defaults(),
- sunlight_propagates = true,
- })
-
- stairsplus:register_all("castle", "rubble", "castle:rubble", {
- description = "Rubble",
- tiles = {"castle_rubble.png"},
- groups = {cracky=3, not_in_creative_inventory=1},
- sounds = default.node_sound_gravel_defaults(),
- sunlight_propagates = true,
- })
-
-else
- stairs.register_stair_and_slab("stonewall", "castle:stonewall",
- {cracky=3},
- {"castle_stonewall.png"},
- "Castle Stonewall Stair",
- "Castle Stonewall Slab",
- default.node_sound_stone_defaults()
- )
-
- stairs.register_stair_and_slab("rubble", "castle:rubble",
- {cracky=3},
- {"castle_rubble.png"},
- "Castle Rubble Stair",
- "Castle Rubble Slab",
- default.node_sound_stone_defaults()
- )
-end
diff --git a/castle/jailbars.lua b/castle/jailbars.lua
deleted file mode 100644
index 5fe3cab..0000000
--- a/castle/jailbars.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-if minetest.get_modpath("xpanes") then
- xpanes.register_pane("jailbars", {
- description = "Jail Bars",
- tiles = {"castle_jailbars.png"},
- drawtype = "airlike",
- paramtype = "light",
- textures = {"castle_jailbars.png", "castle_jailbars.png", "xpanes_space.png"},
- inventory_image = "castle_jailbars.png",
- wield_image = "castle_jailbars.png",
- sounds = default.node_sound_stone_defaults(),
- groups = {cracky=1, pane=1},
- recipe = {
- {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
- {"default:steel_ingot", "", "default:steel_ingot"},
- {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}},
- })
-end
-
-for i = 1, 15 do
- minetest.register_alias("castle:jailbars_"..i, "xpanes:jailbars_"..i)
-end
-minetest.register_alias("castle:jailbars", "xpanes:jailbars")
diff --git a/castle/mod.conf b/castle/mod.conf
deleted file mode 100644
index 759a5cf..0000000
--- a/castle/mod.conf
+++ /dev/null
@@ -1 +0,0 @@
-name = castle
diff --git a/castle/models/LICENSE.txt b/castle/models/LICENSE.txt
deleted file mode 100644
index 7c019e6..0000000
--- a/castle/models/LICENSE.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-License Textures: Stuart Jones - WTFPL
-
--castle_crossbow_bolt_inv.png
--castle_crossbow_bolt_uv.png
--castle_crossbow_hit.png
-
-Licence Models: Stuart Jones - CC-BY-SA 3.0
-
--castle_crossbow_bolt.b3d
--castle_crossbow_bolt.blend \ No newline at end of file
diff --git a/castle/models/castle_crossbow_bolt.b3d b/castle/models/castle_crossbow_bolt.b3d
deleted file mode 100644
index d24be3c..0000000
--- a/castle/models/castle_crossbow_bolt.b3d
+++ /dev/null
Binary files differ
diff --git a/castle/models/castle_crossbow_bolt.blend b/castle/models/castle_crossbow_bolt.blend
deleted file mode 100644
index 4cf5f43..0000000
--- a/castle/models/castle_crossbow_bolt.blend
+++ /dev/null
Binary files differ
diff --git a/castle/models/castle_crossbow_bolt_uv.png b/castle/models/castle_crossbow_bolt_uv.png
deleted file mode 100644
index b7d29c5..0000000
--- a/castle/models/castle_crossbow_bolt_uv.png
+++ /dev/null
Binary files differ
diff --git a/castle/models/castle_tapestry.obj b/castle/models/castle_tapestry.obj
deleted file mode 100644
index 5465c46..0000000
--- a/castle/models/castle_tapestry.obj
+++ /dev/null
@@ -1,212 +0,0 @@
-# Blender v2.72 (sub 0) OBJ File: 'castle_tapestry.blend'
-# www.blender.org
-o Cube
-v -0.500000 0.500000 -0.125000
-v -0.437500 0.500000 -0.125000
-v -0.500000 0.500000 1.500000
-v -0.437500 0.500000 1.500000
-v -0.437500 -0.500000 1.500000
-v -0.500000 -0.500000 1.500000
-v -0.437500 0.125000 -0.250000
-v -0.500000 0.125000 -0.250000
-v -0.500000 0.125000 -0.375000
-v -0.437500 0.125000 -0.375000
-v -0.437500 0.187500 -0.375000
-v -0.500000 0.187500 -0.375000
-v -0.500000 0.312500 -0.500000
-v -0.437500 0.312500 -0.500000
-v -0.437500 0.312500 -0.375000
-v -0.500000 0.312500 -0.375000
-v -0.500000 0.375000 -0.375000
-v -0.437500 0.375000 -0.375000
-v -0.437500 0.375000 -0.250000
-v -0.500000 0.375000 -0.250000
-v -0.437500 -0.187500 -0.500000
-v -0.500000 -0.312500 -0.500000
-v -0.437500 -0.312500 -0.500000
-v -0.500000 0.187500 -0.500000
-v -0.437500 0.187500 -0.500000
-v -0.500000 0.437500 -0.250000
-v -0.437500 0.437500 -0.250000
-v -0.437500 0.437500 -0.125000
-v -0.500000 0.437500 -0.125000
-v -0.437500 0.062500 -0.250000
-v -0.500000 0.062500 -0.250000
-v -0.437500 0.062500 -0.125000
-v -0.500000 0.062500 -0.125000
-v -0.437500 -0.062500 -0.125000
-v -0.500000 -0.062500 -0.125000
-v -0.437500 -0.062500 -0.250000
-v -0.500000 -0.062500 -0.250000
-v -0.437500 -0.125000 -0.250000
-v -0.500000 -0.125000 -0.250000
-v -0.437500 -0.125000 -0.375000
-v -0.500000 -0.125000 -0.375000
-v -0.437500 -0.187500 -0.375000
-v -0.500000 -0.187500 -0.375000
-v -0.500000 -0.187500 -0.500000
-v -0.500000 -0.312500 -0.375000
-v -0.437500 -0.312500 -0.375000
-v -0.500000 -0.375000 -0.375000
-v -0.437500 -0.375000 -0.375000
-v -0.500000 -0.375000 -0.250000
-v -0.437500 -0.375000 -0.250000
-v -0.500000 -0.437500 -0.250000
-v -0.437500 -0.437500 -0.250000
-v -0.500000 -0.437500 -0.125000
-v -0.437500 -0.437500 -0.125000
-v -0.500000 -0.500000 -0.125000
-v -0.437500 -0.500000 -0.125000
-v -0.500000 0.500000 0.500000
-v -0.437500 0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v -0.437500 -0.500000 0.500000
-v -0.500000 0.343750 -0.375000
-vt 0.062500 0.000000
-vt 0.062500 1.000000
-vt 0.000000 1.000000
-vt 0.000003 0.000000
-vt 0.937500 0.250000
-vt 1.000000 0.250000
-vt 1.000000 0.375000
-vt 0.937500 0.375000
-vt 0.625000 0.937500
-vt 0.625000 0.999999
-vt 0.562500 0.999999
-vt 0.562500 0.937500
-vt 0.937500 0.125000
-vt 1.000000 0.125000
-vt 0.687500 0.937500
-vt 0.687500 0.999999
-vt 0.937500 0.000000
-vt 1.000000 0.000000
-vt 0.062500 0.125000
-vt 0.000000 0.125000
-vt 0.875000 0.937500
-vt 0.875000 1.000000
-vt 0.812500 1.000000
-vt 0.812500 0.937500
-vt 0.843750 0.937500
-vt 0.062500 0.250000
-vt 0.000000 0.250000
-vt 0.937500 0.937500
-vt 0.937500 1.000000
-vt 0.062500 0.375000
-vt 0.000000 0.375000
-vt 1.000000 0.937500
-vt 1.000000 1.000000
-vt 0.437500 0.937500
-vt 0.437500 0.999999
-vt 0.375000 0.999999
-vt 0.375000 0.937500
-vt 0.312500 0.999999
-vt 0.312500 0.937500
-vt 0.187500 0.937500
-vt 0.187500 0.999999
-vt 0.125000 0.999999
-vt 0.125000 0.937500
-vt 0.062500 0.937500
-vt 0.000000 0.937500
-vt 0.625000 0.000000
-vt 0.625000 0.062500
-vt 0.625000 0.437500
-vt 0.625000 0.562500
-vt 0.375000 0.437500
-vt 0.375000 0.062500
-vt 0.375000 0.000000
-vt 0.375000 0.562500
-vt 0.250000 0.437500
-vt 0.250000 0.375000
-vt 0.250000 0.125000
-vt 0.250000 0.062500
-vt 0.250000 0.937500
-vt 0.250000 0.875000
-vt 0.250000 0.625000
-vt 0.250000 0.562500
-vt 0.750000 0.562500
-vt 0.750000 0.625000
-vt 0.750000 0.875000
-vt 0.750000 0.937500
-vt 0.750000 0.062500
-vt 0.750000 0.125000
-vt 0.750000 0.375000
-vt 0.750000 0.437500
-vt 0.875000 0.625000
-vt 0.875000 0.687500
-vt 0.875000 0.812500
-vt 0.875000 0.875000
-vt 0.875000 0.125000
-vt 0.875000 0.156250
-vt 0.875000 0.187500
-vt 0.875000 0.312500
-vt 0.875000 0.375000
-vt 1.000000 0.687500
-vt 1.000000 0.812500
-vt 1.000000 0.187500
-vt 1.000000 0.312500
-vt 0.125000 0.187500
-vt 0.125000 0.312500
-vt 0.000000 0.312500
-vt 0.000000 0.187500
-vt 0.125000 0.687500
-vt 0.125000 0.812500
-vt 0.000000 0.812500
-vt 0.000000 0.687500
-vt 0.125000 0.875000
-vt 0.125000 0.625000
-vt 0.125000 0.375000
-vt 0.125000 0.125000
-vn 0.000000 1.000000 -0.000000
-vn -0.000000 -1.000000 0.000000
-vn 0.000000 0.000000 -1.000000
-vn -1.000000 0.000000 0.000000
-vn 1.000000 -0.000000 -0.000000
-vn 0.000000 0.000000 1.000000
-g Cube_Cube_Material
-s off
-f 57/1/1 3/2/1 4/3/1 58/4/1
-f 31/5/2 30/6/2 32/7/2 33/8/2
-f 8/9/3 7/10/3 30/11/3 31/12/3
-f 9/13/2 10/14/2 7/6/2 8/5/2
-f 12/15/3 11/16/3 10/10/3 9/9/3
-f 24/17/2 25/18/2 11/14/2 12/13/2
-f 16/19/1 15/20/1 14/4/1 13/1/1
-f 17/21/3 18/22/3 15/23/3 16/24/3 61/25/3
-f 20/26/1 19/27/1 18/20/1 17/19/1
-f 26/28/3 27/29/3 19/22/3 20/21/3
-f 29/30/1 28/31/1 27/27/1 26/26/1
-f 1/32/3 2/33/3 28/29/3 29/28/3
-f 37/34/3 36/35/3 38/36/3 39/37/3
-f 39/26/1 38/27/1 40/20/1 41/19/1
-f 41/37/3 40/36/3 42/38/3 43/39/3
-f 22/17/2 23/18/2 46/14/2 45/13/2
-f 45/40/3 46/41/3 48/42/3 47/43/3
-f 47/13/2 48/14/2 50/6/2 49/5/2
-f 49/43/3 50/42/3 52/2/3 51/44/3
-f 51/5/2 52/6/2 54/7/2 53/8/2
-f 53/44/3 54/2/3 56/3/3 55/45/3
-f 43/19/1 42/20/1 21/4/1 44/1/1
-f 14/23/3 25/16/3 24/15/3 13/24/3
-f 60/18/2 5/33/2 6/29/2 59/17/2
-f 21/38/3 23/41/3 22/40/3 44/39/3
-f 57/18/4 59/33/4 6/3/4 3/4/4
-f 60/3/5 58/4/5 4/18/5 5/33/5
-f 1/30/1 57/2/1 58/3/1 2/31/1
-f 56/7/2 60/33/2 59/29/2 55/8/2
-f 1/46/4 29/47/4 33/48/4 35/49/4 53/9/4 55/10/4 59/3/4 57/4/4
-f 32/50/5 28/51/5 2/52/5 58/18/5 60/33/5 56/36/5 54/37/5 34/53/5
-f 34/31/1 36/27/1 37/26/1 35/30/1
-f 30/54/5 7/55/5 19/56/5 27/57/5 28/51/5 32/50/5
-f 34/53/5 54/37/5 52/58/5 50/59/5 38/60/5 36/61/5
-f 53/9/4 35/49/4 37/62/4 39/63/4 49/64/4 51/65/4
-f 29/47/4 26/66/4 20/67/4 8/68/4 31/69/4 33/48/4
-f 33/12/3 32/11/3 34/35/3 35/34/3
-f 49/64/4 39/63/4 41/70/4 43/71/4 45/72/4 47/73/4
-f 8/68/4 20/67/4 17/74/4 61/75/4 16/76/4 12/77/4 9/78/4
-f 45/72/4 43/71/4 44/79/4 22/80/4
-f 12/77/4 16/76/4 13/81/4 24/82/4
-f 15/83/5 11/84/5 25/85/5 14/86/5
-f 42/87/5 46/88/5 23/89/5 21/90/5
-f 38/60/5 50/59/5 48/91/5 46/88/5 42/87/5 40/92/5
-f 7/55/5 10/93/5 11/84/5 15/83/5 18/94/5 19/56/5
-f 3/33/6 6/3/6 5/45/6 4/32/6
diff --git a/castle/models/castle_tapestry_long.obj b/castle/models/castle_tapestry_long.obj
deleted file mode 100644
index f240853..0000000
--- a/castle/models/castle_tapestry_long.obj
+++ /dev/null
@@ -1,220 +0,0 @@
-# Blender v2.72 (sub 0) OBJ File: 'castle_tapestry_long.blend'
-# www.blender.org
-o Cube
-v -0.500000 0.500000 -0.125000
-v -0.437500 0.500000 -0.125000
-v -0.500000 0.500001 1.500000
-v -0.437499 0.500000 1.500000
-v -0.437500 -0.500000 1.500000
-v -0.500000 -0.500000 1.500000
-v -0.437500 0.125000 -0.250000
-v -0.500000 0.125000 -0.250000
-v -0.500000 0.125000 -0.375000
-v -0.437500 0.125000 -0.375000
-v -0.437500 0.187500 -0.375000
-v -0.500000 0.187500 -0.375000
-v -0.500000 0.312500 -0.500000
-v -0.437500 0.312500 -0.500000
-v -0.437500 0.312500 -0.375000
-v -0.500000 0.312500 -0.375000
-v -0.500000 0.375000 -0.375000
-v -0.437500 0.375000 -0.375000
-v -0.437500 0.375000 -0.250000
-v -0.500000 0.375000 -0.250000
-v -0.437500 -0.187500 -0.500000
-v -0.500000 -0.312500 -0.500000
-v -0.437500 -0.312500 -0.500000
-v -0.500000 0.187500 -0.500000
-v -0.437500 0.187500 -0.500000
-v -0.500000 0.437500 -0.250000
-v -0.437500 0.437500 -0.250000
-v -0.437500 0.437500 -0.125000
-v -0.500000 0.437500 -0.125000
-v -0.437500 0.062500 -0.250000
-v -0.500000 0.062500 -0.250000
-v -0.437500 0.062500 -0.125000
-v -0.500000 0.062500 -0.125000
-v -0.437500 -0.062500 -0.125000
-v -0.500000 -0.062500 -0.125000
-v -0.437500 -0.062500 -0.250000
-v -0.500000 -0.062500 -0.250000
-v -0.437500 -0.125000 -0.250000
-v -0.500000 -0.125000 -0.250000
-v -0.437500 -0.125000 -0.375000
-v -0.500000 -0.125000 -0.375000
-v -0.437500 -0.187500 -0.375000
-v -0.500000 -0.187500 -0.375000
-v -0.500000 -0.187500 -0.500000
-v -0.500000 -0.312500 -0.375000
-v -0.437500 -0.312500 -0.375000
-v -0.500000 -0.375000 -0.375000
-v -0.437500 -0.375000 -0.375000
-v -0.500000 -0.375000 -0.250000
-v -0.437500 -0.375000 -0.250000
-v -0.500000 -0.437500 -0.250000
-v -0.437500 -0.437500 -0.250000
-v -0.500000 -0.437500 -0.125000
-v -0.437500 -0.437500 -0.125000
-v -0.500000 -0.500000 -0.125000
-v -0.437500 -0.500000 -0.125000
-v -0.500000 0.500000 0.500000
-v -0.437500 0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v -0.437500 -0.500000 0.500000
-v -0.500000 0.500001 2.500000
-v -0.437499 0.500000 2.500000
-v -0.437500 -0.500000 2.500000
-v -0.500000 -0.500000 2.500000
-v -0.500000 0.343750 -0.375000
-vt 0.062500 0.000000
-vt 0.062500 1.000000
-vt 0.000000 1.000000
-vt 0.000003 0.000000
-vt 0.937500 0.250000
-vt 1.000000 0.250000
-vt 1.000000 0.375000
-vt 0.937500 0.375000
-vt 0.625000 0.937500
-vt 0.625000 0.999999
-vt 0.562500 0.999999
-vt 0.562500 0.937500
-vt 0.937500 0.125000
-vt 1.000000 0.125000
-vt 0.687500 0.937500
-vt 0.687500 0.999999
-vt 0.937500 0.000000
-vt 1.000000 0.000000
-vt 0.062500 0.125000
-vt 0.000000 0.125000
-vt 0.875000 0.937500
-vt 0.875000 1.000000
-vt 0.812500 1.000000
-vt 0.812500 0.937500
-vt 0.843750 0.937500
-vt 0.062500 0.250000
-vt 0.000000 0.250000
-vt 0.937500 0.937500
-vt 0.937500 1.000000
-vt 0.062500 0.375000
-vt 0.000000 0.375000
-vt 1.000000 0.937500
-vt 1.000000 1.000000
-vt 0.437500 0.937500
-vt 0.437500 0.999999
-vt 0.375000 0.999999
-vt 0.375000 0.937500
-vt 0.312500 0.999999
-vt 0.312500 0.937500
-vt 0.187500 0.937500
-vt 0.187500 0.999999
-vt 0.125000 0.999999
-vt 0.125000 0.937500
-vt 0.062500 0.937500
-vt 0.000000 0.937500
-vt 0.625000 0.000000
-vt 0.625000 0.062500
-vt 0.625000 0.437500
-vt 0.625000 0.562500
-vt 0.375000 0.437500
-vt 0.375000 0.062500
-vt 0.375000 0.000000
-vt 0.375000 0.562500
-vt 0.250000 0.437500
-vt 0.250000 0.375000
-vt 0.250000 0.125000
-vt 0.250000 0.062500
-vt 0.250000 0.937500
-vt 0.250000 0.875000
-vt 0.250000 0.625000
-vt 0.250000 0.562500
-vt 0.750000 0.562500
-vt 0.750000 0.625000
-vt 0.750000 0.875000
-vt 0.750000 0.937500
-vt 0.750000 0.062500
-vt 0.750000 0.125000
-vt 0.750000 0.375000
-vt 0.750000 0.437500
-vt 0.875000 0.625000
-vt 0.875000 0.687500
-vt 0.875000 0.812500
-vt 0.875000 0.875000
-vt 0.875000 0.125000
-vt 0.875000 0.156250
-vt 0.875000 0.187500
-vt 0.875000 0.312500
-vt 0.875000 0.375000
-vt 1.000000 0.687500
-vt 1.000000 0.812500
-vt 1.000000 0.187500
-vt 1.000000 0.312500
-vt 0.125000 0.187500
-vt 0.125000 0.312500
-vt 0.000000 0.312500
-vt 0.000000 0.187500
-vt 0.125000 0.687500
-vt 0.125000 0.812500
-vt 0.000000 0.812500
-vt 0.000000 0.687500
-vt 0.125000 0.875000
-vt 0.125000 0.625000
-vt 0.125000 0.375000
-vt 0.125000 0.125000
-vn 0.000000 1.000000 0.000000
-vn -0.000000 -1.000000 0.000000
-vn 0.000000 0.000000 -1.000000
-vn -1.000000 0.000000 0.000000
-vn 1.000000 -0.000000 -0.000000
-vn 0.000000 0.000000 1.000000
-g Cube_Cube_Material
-s off
-f 57/1/1 3/2/1 4/3/1 58/4/1
-f 31/5/2 30/6/2 32/7/2 33/8/2
-f 8/9/3 7/10/3 30/11/3 31/12/3
-f 9/13/2 10/14/2 7/6/2 8/5/2
-f 12/15/3 11/16/3 10/10/3 9/9/3
-f 24/17/2 25/18/2 11/14/2 12/13/2
-f 16/19/1 15/20/1 14/4/1 13/1/1
-f 17/21/3 18/22/3 15/23/3 16/24/3 65/25/3
-f 20/26/1 19/27/1 18/20/1 17/19/1
-f 26/28/3 27/29/3 19/22/3 20/21/3
-f 29/30/1 28/31/1 27/27/1 26/26/1
-f 1/32/3 2/33/3 28/29/3 29/28/3
-f 37/34/3 36/35/3 38/36/3 39/37/3
-f 39/26/1 38/27/1 40/20/1 41/19/1
-f 41/37/3 40/36/3 42/38/3 43/39/3
-f 22/17/2 23/18/2 46/14/2 45/13/2
-f 45/40/3 46/41/3 48/42/3 47/43/3
-f 47/13/2 48/14/2 50/6/2 49/5/2
-f 49/43/3 50/42/3 52/2/3 51/44/3
-f 51/5/2 52/6/2 54/7/2 53/8/2
-f 53/44/3 54/2/3 56/3/3 55/45/3
-f 43/19/1 42/20/1 21/4/1 44/1/1
-f 14/23/3 25/16/3 24/15/3 13/24/3
-f 60/18/2 5/33/2 6/29/2 59/17/2
-f 21/38/3 23/41/3 22/40/3 44/39/3
-f 57/18/4 59/33/4 6/3/4 3/4/4
-f 60/3/5 58/4/5 4/18/5 5/33/5
-f 1/30/1 57/2/1 58/3/1 2/31/1
-f 56/7/2 60/33/2 59/29/2 55/8/2
-f 1/46/4 29/47/4 33/48/4 35/49/4 53/9/4 55/10/4 59/3/4 57/4/4
-f 32/50/5 28/51/5 2/52/5 58/18/5 60/33/5 56/36/5 54/37/5 34/53/5
-f 34/31/1 36/27/1 37/26/1 35/30/1
-f 30/54/5 7/55/5 19/56/5 27/57/5 28/51/5 32/50/5
-f 34/53/5 54/37/5 52/58/5 50/59/5 38/60/5 36/61/5
-f 53/9/4 35/49/4 37/62/4 39/63/4 49/64/4 51/65/4
-f 29/47/4 26/66/4 20/67/4 8/68/4 31/69/4 33/48/4
-f 33/12/3 32/11/3 34/35/3 35/34/3
-f 3/1/1 61/2/1 62/3/1 4/4/1
-f 5/18/2 63/33/2 64/29/2 6/17/2
-f 3/18/4 6/33/4 64/3/4 61/4/4
-f 5/3/5 4/4/5 62/18/5 63/33/5
-f 49/64/4 39/63/4 41/70/4 43/71/4 45/72/4 47/73/4
-f 8/68/4 20/67/4 17/74/4 65/75/4 16/76/4 12/77/4 9/78/4
-f 45/72/4 43/71/4 44/79/4 22/80/4
-f 12/77/4 16/76/4 13/81/4 24/82/4
-f 15/83/5 11/84/5 25/85/5 14/86/5
-f 42/87/5 46/88/5 23/89/5 21/90/5
-f 38/60/5 50/59/5 48/91/5 46/88/5 42/87/5 40/92/5
-f 7/55/5 10/93/5 11/84/5 15/83/5 18/94/5 19/56/5
-f 61/33/6 64/3/6 63/45/6 62/32/6
diff --git a/castle/models/castle_tapestry_very_long.obj b/castle/models/castle_tapestry_very_long.obj
deleted file mode 100644
index bfe9843..0000000
--- a/castle/models/castle_tapestry_very_long.obj
+++ /dev/null
@@ -1,228 +0,0 @@
-# Blender v2.72 (sub 0) OBJ File: 'castle_tapestry_very_long.blend'
-# www.blender.org
-o Cube
-v -0.500000 0.500000 -0.125000
-v -0.437500 0.500000 -0.125000
-v -0.500000 0.500001 1.500000
-v -0.437499 0.500000 1.500000
-v -0.437500 -0.500000 1.500000
-v -0.500000 -0.500000 1.500000
-v -0.437500 0.125000 -0.250000
-v -0.500000 0.125000 -0.250000
-v -0.500000 0.125000 -0.375000
-v -0.437500 0.125000 -0.375000
-v -0.437500 0.187500 -0.375000
-v -0.500000 0.187500 -0.375000
-v -0.500000 0.312500 -0.500000
-v -0.437500 0.312500 -0.500000
-v -0.437500 0.312500 -0.375000
-v -0.500000 0.312500 -0.375000
-v -0.500000 0.375000 -0.375000
-v -0.437500 0.375000 -0.375000
-v -0.437500 0.375000 -0.250000
-v -0.500000 0.375000 -0.250000
-v -0.437500 -0.187500 -0.500000
-v -0.500000 -0.312500 -0.500000
-v -0.437500 -0.312500 -0.500000
-v -0.500000 0.187500 -0.500000
-v -0.437500 0.187500 -0.500000
-v -0.500000 0.437500 -0.250000
-v -0.437500 0.437500 -0.250000
-v -0.437500 0.437500 -0.125000
-v -0.500000 0.437500 -0.125000
-v -0.437500 0.062500 -0.250000
-v -0.500000 0.062500 -0.250000
-v -0.437500 0.062500 -0.125000
-v -0.500000 0.062500 -0.125000
-v -0.437500 -0.062500 -0.125000
-v -0.500000 -0.062500 -0.125000
-v -0.437500 -0.062500 -0.250000
-v -0.500000 -0.062500 -0.250000
-v -0.437500 -0.125000 -0.250000
-v -0.500000 -0.125000 -0.250000
-v -0.437500 -0.125000 -0.375000
-v -0.500000 -0.125000 -0.375000
-v -0.437500 -0.187500 -0.375000
-v -0.500000 -0.187500 -0.375000
-v -0.500000 -0.187500 -0.500000
-v -0.500000 -0.312500 -0.375000
-v -0.437500 -0.312500 -0.375000
-v -0.500000 -0.375000 -0.375000
-v -0.437500 -0.375000 -0.375000
-v -0.500000 -0.375000 -0.250000
-v -0.437500 -0.375000 -0.250000
-v -0.500000 -0.437500 -0.250000
-v -0.437500 -0.437500 -0.250000
-v -0.500000 -0.437500 -0.125000
-v -0.437500 -0.437500 -0.125000
-v -0.500000 -0.500000 -0.125000
-v -0.437500 -0.500000 -0.125000
-v -0.500000 0.500000 0.500000
-v -0.437500 0.500000 0.500000
-v -0.500000 -0.500000 0.500000
-v -0.437500 -0.500000 0.500000
-v -0.500000 0.500001 2.500000
-v -0.437499 0.500000 2.500000
-v -0.437500 -0.500000 2.500000
-v -0.500000 -0.500000 2.500000
-v -0.500000 0.500001 3.500000
-v -0.437499 0.500000 3.500000
-v -0.437500 -0.500000 3.500000
-v -0.500000 -0.500000 3.500000
-v -0.500000 0.343750 -0.375000
-vt 0.062500 0.000000
-vt 0.062500 1.000000
-vt 0.000000 1.000000
-vt 0.000003 0.000000
-vt 0.937500 0.250000
-vt 1.000000 0.250000
-vt 1.000000 0.375000
-vt 0.937500 0.375000
-vt 0.625000 0.937500
-vt 0.625000 0.999999
-vt 0.562500 0.999999
-vt 0.562500 0.937500
-vt 0.937500 0.125000
-vt 1.000000 0.125000
-vt 0.687500 0.937500
-vt 0.687500 0.999999
-vt 0.937500 0.000000
-vt 1.000000 0.000000
-vt 0.062500 0.125000
-vt 0.000000 0.125000
-vt 0.875000 0.937500
-vt 0.875000 1.000000
-vt 0.812500 1.000000
-vt 0.812500 0.937500
-vt 0.843750 0.937500
-vt 0.062500 0.250000
-vt 0.000000 0.250000
-vt 0.937500 0.937500
-vt 0.937500 1.000000
-vt 0.062500 0.375000
-vt 0.000000 0.375000
-vt 1.000000 0.937500
-vt 1.000000 1.000000
-vt 0.437500 0.937500
-vt 0.437500 0.999999
-vt 0.375000 0.999999
-vt 0.375000 0.937500
-vt 0.312500 0.999999
-vt 0.312500 0.937500
-vt 0.187500 0.937500
-vt 0.187500 0.999999
-vt 0.125000 0.999999
-vt 0.125000 0.937500
-vt 0.062500 0.937500
-vt 0.000000 0.937500
-vt 0.625000 0.000000
-vt 0.625000 0.062500
-vt 0.625000 0.437500
-vt 0.625000 0.562500
-vt 0.375000 0.437500
-vt 0.375000 0.062500
-vt 0.375000 0.000000
-vt 0.375000 0.562500
-vt 0.250000 0.437500
-vt 0.250000 0.375000
-vt 0.250000 0.125000
-vt 0.250000 0.062500
-vt 0.250000 0.937500
-vt 0.250000 0.875000
-vt 0.250000 0.625000
-vt 0.250000 0.562500
-vt 0.750000 0.562500
-vt 0.750000 0.625000
-vt 0.750000 0.875000
-vt 0.750000 0.937500
-vt 0.750000 0.062500
-vt 0.750000 0.125000
-vt 0.750000 0.375000
-vt 0.750000 0.437500
-vt 0.875000 0.625000
-vt 0.875000 0.687500
-vt 0.875000 0.812500
-vt 0.875000 0.875000
-vt 0.875000 0.125000
-vt 0.875000 0.156250
-vt 0.875000 0.187500
-vt 0.875000 0.312500
-vt 0.875000 0.375000
-vt 1.000000 0.687500
-vt 1.000000 0.812500
-vt 1.000000 0.187500
-vt 1.000000 0.312500
-vt 0.125000 0.187500
-vt 0.125000 0.312500
-vt 0.000000 0.312500
-vt 0.000000 0.187500
-vt 0.125000 0.687500
-vt 0.125000 0.812500
-vt 0.000000 0.812500
-vt 0.000000 0.687500
-vt 0.125000 0.875000
-vt 0.125000 0.625000
-vt 0.125000 0.375000
-vt 0.125000 0.125000
-vn 0.000000 1.000000 0.000000
-vn -0.000000 -1.000000 0.000000
-vn 0.000000 0.000000 -1.000000
-vn -1.000000 0.000000 0.000000
-vn 1.000000 -0.000000 -0.000000
-vn 0.000000 0.000000 1.000000
-g Cube_Cube_Material
-s off
-f 57/1/1 3/2/1 4/3/1 58/4/1
-f 31/5/2 30/6/2 32/7/2 33/8/2
-f 8/9/3 7/10/3 30/11/3 31/12/3
-f 9/13/2 10/14/2 7/6/2 8/5/2
-f 12/15/3 11/16/3 10/10/3 9/9/3
-f 24/17/2 25/18/2 11/14/2 12/13/2
-f 16/19/1 15/20/1 14/4/1 13/1/1
-f 17/21/3 18/22/3 15/23/3 16/24/3 69/25/3
-f 20/26/1 19/27/1 18/20/1 17/19/1
-f 26/28/3 27/29/3 19/22/3 20/21/3
-f 29/30/1 28/31/1 27/27/1 26/26/1
-f 1/32/3 2/33/3 28/29/3 29/28/3
-f 37/34/3 36/35/3 38/36/3 39/37/3
-f 39/26/1 38/27/1 40/20/1 41/19/1
-f 41/37/3 40/36/3 42/38/3 43/39/3
-f 22/17/2 23/18/2 46/14/2 45/13/2
-f 45/40/3 46/41/3 48/42/3 47/43/3
-f 47/13/2 48/14/2 50/6/2 49/5/2
-f 49/43/3 50/42/3 52/2/3 51/44/3
-f 51/5/2 52/6/2 54/7/2 53/8/2
-f 53/44/3 54/2/3 56/3/3 55/45/3
-f 43/19/1 42/20/1 21/4/1 44/1/1
-f 14/23/3 25/16/3 24/15/3 13/24/3
-f 60/18/2 5/33/2 6/29/2 59/17/2
-f 21/38/3 23/41/3 22/40/3 44/39/3
-f 57/18/4 59/33/4 6/3/4 3/4/4
-f 60/3/5 58/4/5 4/18/5 5/33/5
-f 1/30/1 57/2/1 58/3/1 2/31/1
-f 56/7/2 60/33/2 59/29/2 55/8/2
-f 1/46/4 29/47/4 33/48/4 35/49/4 53/9/4 55/10/4 59/3/4 57/4/4
-f 32/50/5 28/51/5 2/52/5 58/18/5 60/33/5 56/36/5 54/37/5 34/53/5
-f 34/31/1 36/27/1 37/26/1 35/30/1
-f 30/54/5 7/55/5 19/56/5 27/57/5 28/51/5 32/50/5
-f 34/53/5 54/37/5 52/58/5 50/59/5 38/60/5 36/61/5
-f 53/9/4 35/49/4 37/62/4 39/63/4 49/64/4 51/65/4
-f 29/47/4 26/66/4 20/67/4 8/68/4 31/69/4 33/48/4
-f 33/12/3 32/11/3 34/35/3 35/34/3
-f 3/1/1 61/2/1 62/3/1 4/4/1
-f 65/33/6 68/3/6 67/45/6 66/32/6
-f 5/18/2 63/33/2 64/29/2 6/17/2
-f 3/18/4 6/33/4 64/3/4 61/4/4
-f 5/3/5 4/4/5 62/18/5 63/33/5
-f 61/1/1 65/2/1 66/3/1 62/4/1
-f 63/18/2 67/33/2 68/29/2 64/17/2
-f 61/18/4 64/33/4 68/3/4 65/4/4
-f 63/3/5 62/4/5 66/18/5 67/33/5
-f 49/64/4 39/63/4 41/70/4 43/71/4 45/72/4 47/73/4
-f 8/68/4 20/67/4 17/74/4 69/75/4 16/76/4 12/77/4 9/78/4
-f 45/72/4 43/71/4 44/79/4 22/80/4
-f 12/77/4 16/76/4 13/81/4 24/82/4
-f 15/83/5 11/84/5 25/85/5 14/86/5
-f 42/87/5 46/88/5 23/89/5 21/90/5
-f 38/60/5 50/59/5 48/91/5 46/88/5 42/87/5 40/92/5
-f 7/55/5 10/93/5 11/84/5 15/83/5 18/94/5 19/56/5
diff --git a/castle/murder_hole.lua b/castle/murder_hole.lua
deleted file mode 100644
index 672f3b9..0000000
--- a/castle/murder_hole.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local hole = {}
-
-hole.types = {
- {"stonewall", "Stonewall", "castle_stonewall", "castle:stonewall"},
- {"cobble", "Cobble", "default_cobble", "default:cobble"},
- {"stonebrick", "Stonebrick", "default_stone_brick", "default:stonebrick"},
- {"sandstonebrick", "Sandstone Brick", "default_sandstone_brick", "default:sandstonebrick"},
- {"desertstonebrick", "Desert Stone Brick", "default_desert_stone_brick", "default:desert_stonebrick"},
- {"stone", "Stone", "default_stone", "default:stone"},
- {"sandstone", "Sandstone", "default_sandstone", "default:sandstone"},
- {"desertstone", "Desert Stone", "default_desert_stone", "default:desert_stone"},
-}
-
-for _, row in ipairs(hole.types) do
- local name = row[1]
- local desc = row[2]
- local tile = row[3]
- local craft_material = row[4]
- -- Node Definition
- minetest.register_node("castle:hole_"..name, {
- drawtype = "nodebox",
- description = desc.." Murder Hole",
- tiles = {tile..".png"},
- groups = {cracky=3},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-8/16,-8/16,-8/16,-4/16,8/16,8/16},
- {4/16,-8/16,-8/16,8/16,8/16,8/16},
- {-4/16,-8/16,-8/16,4/16,8/16,-4/16},
- {-4/16,-8/16,8/16,4/16,8/16,4/16},
- },
- },
- })
-
- if craft_material then
- --Choose craft material
- minetest.register_craft({
- output = "castle:hole_"..name.." 4",
- recipe = {
- {"",craft_material, "" },
- {craft_material,"", craft_material},
- {"",craft_material, ""} },
- })
- end
-end
-
diff --git a/castle/orbs.lua b/castle/orbs.lua
deleted file mode 100644
index e69de29..0000000
--- a/castle/orbs.lua
+++ /dev/null
diff --git a/castle/pillars.lua b/castle/pillars.lua
deleted file mode 100644
index 40b8143..0000000
--- a/castle/pillars.lua
+++ /dev/null
@@ -1,108 +0,0 @@
-minetest.register_alias("castle:pillars_bottom", "castle:pillars_stonewall_bottom")
-minetest.register_alias("castle:pillars_top", "castle:pillars_stonewall_top")
-minetest.register_alias("castle:pillars_middle", "castle:pillars_stonewall_middle")
-
-local pillar = {}
-
-pillar.types = {
- {"stonewall", "Stonewall", "castle_stonewall", "castle:stonewall"},
- {"cobble", "Cobble", "default_cobble", "default:cobble"},
- {"stonebrick", "Stonebrick", "default_stone_brick", "default:stonebrick"},
- {"sandstonebrick", "Sandstone Brick", "default_sandstone_brick", "default:sandstonebrick"},
- {"desertstonebrick", "Desert Stone Brick", "default_desert_stone_brick", "default:desert_stonebrick"},
- {"stone", "Stone", "default_stone", "default:stone"},
- {"sandstone", "Sandstone", "default_sandstone", "default:sandstone"},
- {"desertstone", "Desert Stone", "default_desert_stone", "default:desert_stone"},
-}
-
-for _, row in ipairs(pillar.types) do
- local name = row[1]
- local desc = row[2]
- local tile = row[3]
- local craft_material = row[4]
- -- Node Definition
- minetest.register_node("castle:pillars_"..name.."_bottom", {
- drawtype = "nodebox",
- description = desc.." Pillar Base",
- tiles = {tile..".png"},
- groups = {cracky=3,attached_node=1},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,-0.500000,0.500000,-0.375000,0.500000},
- {-0.375000,-0.375000,-0.375000,0.375000,-0.125000,0.375000},
- {-0.250000,-0.125000,-0.250000,0.250000,0.500000,0.250000},
- },
- },
- })
- minetest.register_node("castle:pillars_"..name.."_top", {
- drawtype = "nodebox",
- description = desc.." Pillar Top",
- tiles = {tile..".png"},
- groups = {cracky=3,attached_node=1},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,0.312500,-0.500000,0.500000,0.500000,0.500000},
- {-0.375000,0.062500,-0.375000,0.375000,0.312500,0.375000},
- {-0.250000,-0.500000,-0.250000,0.250000,0.062500,0.250000},
- },
- },
- })
-
- minetest.register_node("castle:pillars_"..name.."_middle", {
- drawtype = "nodebox",
- description = desc.." Pillar Middle",
- tiles = {tile..".png"},
- groups = {cracky=3,attached_node=1},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.250000,-0.500000,-0.250000,0.250000,0.500000,0.250000},
- },
- },
- })
-
- if craft_material then
- --Choose craft material
- minetest.register_craft({
- output = "castle:pillars_"..name.."_bottom 4",
- recipe = {
- {"",craft_material,""},
- {"",craft_material,""},
- {craft_material,craft_material,craft_material} },
- })
- end
-
- if craft_material then
- --Choose craft material
- minetest.register_craft({
- output = "castle:pillars_"..name.."_top 4",
- recipe = {
- {craft_material,craft_material,craft_material},
- {"",craft_material,""},
- {"",craft_material,""} },
- })
- end
-
- if craft_material then
- --Choose craft material
- minetest.register_craft({
- output = "castle:pillars_"..name.."_middle 4",
- recipe = {
- {craft_material,craft_material},
- {craft_material,craft_material},
- {craft_material,craft_material} },
- })
- end
-end
-
diff --git a/castle/rope.lua b/castle/rope.lua
deleted file mode 100644
index 8c7b73e..0000000
--- a/castle/rope.lua
+++ /dev/null
@@ -1,124 +0,0 @@
-minetest.register_node("castle:ropes",{
- description = "Rope",
- drawtype = "nodebox",
- sunlight_propagates = true,
- tiles = {"castle_ropes.png"},
- groups = {choppy=3,snappy=3,oddly_breakable_by_hand=3,flammable=1},
- sounds = default.node_sound_defaults(),
- paramtype = "light",
- climbable = true,
- walkable = false,
- node_box = {
- type = "fixed",
- fixed = {
- {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16},
- },
- },
-})
-
-minetest.register_craft({
- output = "castle:ropes",
- recipe = {
- {"farming:string"},
- {"farming:string"},
- {"farming:string"},
- }
-})
-
-minetest.register_node("castle:box_rope", {
- description = "Rope from Ropebox",
- drawtype = "nodebox",
- paramtype = "light",
- sunlight_propagates = true,
- tiles = {"castle_ropes.png"},
- groups = {not_in_creative_inventory=1},
- climbable = true,
- walkable = false,
- diggable = false,
- node_box = {
- type = "fixed",
- fixed = {
- {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-1/16, -8/16, -1/16, 1/16, 8/16, 1/16},
- },
- },
- after_destruct = function(pos,oldnode)
- local node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
- if node.name == "castle:box_rope" then
- minetest.remove_node({x=pos.x,y=pos.y-1,z=pos.z})
- end
- end,
-})
-
-minetest.register_node("castle:ropebox", {
- description = "Ropebox",
- drawtype = "nodebox",
- sunlight_propagates = true,
- tiles = {"castle_ropebox_top.png",
- "castle_ropebox_top.png",
- "castle_ropebox_side_1.png",
- "castle_ropebox_side_1.png",
- "castle_ropebox_side_2.png",
- "castle_ropebox_side_2.png"},
- paramtype = "light",
- paramtype2 = "facedir",
- groups = {choppy=3},
- sounds = default.node_sound_defaults(),
- node_box = {
- type = "fixed",
- fixed = {
- {-2/16, -2/16, -4/16, 2/16, 2/16, 4/16},
- {-2/16, -4/16, -2/16, 2/16, 4/16, 2/16},
- {-2/16, -3/16, -3/16, 2/16, 3/16, 3/16},
- {-3/16, -2/16, -2/16, -2/16, 8/16, 2/16},
- {2/16, -2/16, -2/16, 3/16, 8/16, 2/16},
- {-1/16, -8/16, -1/16, 1/16, -4/16, 1/16},
- },
- },
- after_destruct = function(pos,oldnode)
- local node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
- if node.name == "castle:box_rope" then
- minetest.remove_node({x=pos.x,y=pos.y-1,z=pos.z})
- end
- end,
-})
-
-minetest.register_abm({
- nodenames = {"castle:ropebox"},
- interval = 1,
- chance = 1,
- action = function(pos, node)
- if minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name ~= 'air' then return end
- minetest.add_node({x=pos.x,y=pos.y-1,z=pos.z}, {name="castle:box_rope"})
- end
-})
-
-minetest.register_abm({
- nodenames = {"castle:box_rope"},
- interval = 1,
- chance = 1,
- action = function(pos, node)
- if minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name ~= 'air' then return end
- minetest.add_node({x=pos.x,y=pos.y-1,z=pos.z}, {name="castle:box_rope"})
- end
-})
-
-minetest.register_craft({
- output = "castle:ropebox",
- recipe = {
- {"default:wood"},
- {"castle:ropes"},
- }
-})
-
diff --git a/castle/screenshot.png b/castle/screenshot.png
deleted file mode 100644
index 60175ee..0000000
--- a/castle/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/castle/shields_decor.lua b/castle/shields_decor.lua
deleted file mode 100644
index 20823f6..0000000
--- a/castle/shields_decor.lua
+++ /dev/null
@@ -1,103 +0,0 @@
-minetest.register_node("castle:shield",{
- description = "Mounted Shield",
- tiles = {"castle_shield_side.png", "castle_shield_side.png", "castle_shield_side.png", "castle_shield_side.png", "castle_shield_back.png", "castle_shield_front.png"},
- drawtype="nodebox",
- paramtype2 = "facedir",
- paramtype = "light",
- groups={cracky=3},
- sounds = default.node_sound_defaults(),
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.125000,0.375000,0.500000,0.500000,0.500000}, --NodeBox 1
- {-0.437500,-0.312500,0.375000,0.425000,0.500000,0.500000}, --NodeBox 2
- {-0.312500,-0.437500,0.375000,0.312500,0.500000,0.500000}, --NodeBox 3
- {-0.187500,-0.500000,0.375000,0.187500,0.500000,0.500000}, --NodeBox 4
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,0.375000,0.500000,0.500000,0.500000}, --NodeBox 1
- },
- },
-})
-
-
-minetest.register_craft({
- output = "castle:shield",
- recipe = {
- {"default:steel_ingot","default:steel_ingot","default:steel_ingot"},
- {"default:steel_ingot", "default:steel_ingot","default:steel_ingot"},
- {"dye:red", "default:steel_ingot","dye:blue"},
- }
-})
-
-minetest.register_node("castle:shield_2",{
- description = "Mounted Shield",
- tiles = {"castle_shield_side_2.png", "castle_shield_side_2.png", "castle_shield_side_2.png", "castle_shield_side_2.png", "castle_shield_back.png", "castle_shield_front_2.png"},
- drawtype="nodebox",
- paramtype2 = "facedir",
- paramtype = "light",
- groups={cracky=3},
- sounds = default.node_sound_defaults(),
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.125000,0.375000,0.500000,0.500000,0.500000}, --NodeBox 1
- {-0.437500,-0.312500,0.375000,0.425000,0.500000,0.500000}, --NodeBox 2
- {-0.312500,-0.437500,0.375000,0.312500,0.500000,0.500000}, --NodeBox 3
- {-0.187500,-0.500000,0.375000,0.187500,0.500000,0.500000}, --NodeBox 4
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,0.375000,0.500000,0.500000,0.500000}, --NodeBox 1
- },
- },
-})
-
-minetest.register_craft({
- output = "castle:shield_2",
- recipe = {
- {"default:steel_ingot","default:steel_ingot","default:steel_ingot"},
- {"default:steel_ingot", "default:steel_ingot","default:steel_ingot"},
- {"dye:cyan", "default:steel_ingot","dye:yellow"},
- }
-})
-
-minetest.register_node("castle:shield_3",{
- description = "Mounted Shield",
- tiles = {"castle_shield_side_3.png", "castle_shield_side_3.png", "castle_shield_side_3.png", "castle_shield_side_3.png", "castle_shield_back.png", "castle_shield_front_3.png"},
- drawtype="nodebox",
- paramtype2 = "facedir",
- paramtype = "light",
- groups={cracky=3},
- sounds = default.node_sound_defaults(),
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.125000,0.375000,0.500000,0.500000,0.500000}, --NodeBox 1
- {-0.437500,-0.312500,0.375000,0.425000,0.500000,0.500000}, --NodeBox 2
- {-0.312500,-0.437500,0.375000,0.312500,0.500000,0.500000}, --NodeBox 3
- {-0.187500,-0.500000,0.375000,0.187500,0.500000,0.500000}, --NodeBox 4
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,0.375000,0.500000,0.500000,0.500000}, --NodeBox 1
- },
- },
-})
-
-minetest.register_craft({
- output = "castle:shield_3",
- recipe = {
- {"default:steel_ingot","default:steel_ingot","default:steel_ingot"},
- {"default:steel_ingot", "default:steel_ingot","default:steel_ingot"},
- {"dye:grey", "default:steel_ingot","dye:green"},
- }
-})
-
diff --git a/castle/sounds/LICENSE.txt b/castle/sounds/LICENSE.txt
deleted file mode 100644
index f8041dd..0000000
--- a/castle/sounds/LICENSE.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-License Sounds
-------------------
-
-(From Simple Shooter mod by Stuart Jones)
--castle_crossbow_click.ogg
--castle_crossbow_shoot.ogg
--castle_crossbow_reload.ogg
-
-Author : freesound.org
-License : Attribution 3.0 Unported (CC BY 3.0)
-CC0 1.0 Universal (CC0 1.0)
-
-------------------
-
-(From Minetest Game:default mod)
--default_wood_footstep.1.ogg
-(renamed to : castle_crossbow_bolt.ogg)
-Author : Mito551
-License : (CC BY-SA)
-
-------------------
-
-Author: Brandon Morris
-file: castle_orbs.ogg
-original file : completetask_0.mp3
-http://opengameart.org/content/completion-sound
-License: CC-BY 3.0
-http://creativecommons.org/licenses/by/3.0/
-
-------------------
-
-(From Ambience mod)
-
-Author: Mike Koenig
-file: castle_owl.ogg
-original file : horned_owl.ogg
-http://soundbible.com/1851-Horned-Owl.html
-License: Attribution 3.0
-http://creativecommons.org/licenses/by/3.0/
-
-------------------
-
-(From Ambience mod)
-
-Author: PsychoBird
-file: castle_birds.ogg
-original file : Best Cardinal Bird.ogg
-http://soundbible.com/1515-Best-Cardinal-Bird.html
-License: Attribution 3.0
-http://creativecommons.org/licenses/by/3.0/
-
------------------- \ No newline at end of file
diff --git a/castle/sounds/castle_birds.ogg b/castle/sounds/castle_birds.ogg
deleted file mode 100644
index 4a93395..0000000
--- a/castle/sounds/castle_birds.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/sounds/castle_crossbow_bolt.ogg b/castle/sounds/castle_crossbow_bolt.ogg
deleted file mode 100644
index 34f63a1..0000000
--- a/castle/sounds/castle_crossbow_bolt.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/sounds/castle_crossbow_click.ogg b/castle/sounds/castle_crossbow_click.ogg
deleted file mode 100644
index 8e60db8..0000000
--- a/castle/sounds/castle_crossbow_click.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/sounds/castle_crossbow_reload.ogg b/castle/sounds/castle_crossbow_reload.ogg
deleted file mode 100644
index 47f7245..0000000
--- a/castle/sounds/castle_crossbow_reload.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/sounds/castle_crossbow_shoot.ogg b/castle/sounds/castle_crossbow_shoot.ogg
deleted file mode 100644
index 9ce9176..0000000
--- a/castle/sounds/castle_crossbow_shoot.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/sounds/castle_orbs.ogg b/castle/sounds/castle_orbs.ogg
deleted file mode 100644
index c7aa8f8..0000000
--- a/castle/sounds/castle_orbs.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/sounds/castle_owl.ogg b/castle/sounds/castle_owl.ogg
deleted file mode 100644
index f30d0b3..0000000
--- a/castle/sounds/castle_owl.ogg
+++ /dev/null
Binary files differ
diff --git a/castle/tapestry.lua b/castle/tapestry.lua
deleted file mode 100644
index 1115b0e..0000000
--- a/castle/tapestry.lua
+++ /dev/null
@@ -1,196 +0,0 @@
-local tapestry = {}
-
-minetest.register_node("castle:tapestry_top", {
- drawtype = "nodebox",
- description = "Tapestry Top",
- tiles = {"default_wood.png"},
- sunlight_propagates = true,
- groups = {flammable=3,oddly_breakable_by_hand=3},
- sounds = default.node_sound_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.6,-0.5,0.375,0.6,-0.375,0.5},
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.6,-0.5,0.375,0.6,-0.375,0.5},
- },
- },
-})
-
-minetest.register_craft({
- type = "shapeless",
- output = 'castle:tapestry_top',
- recipe = {'default:stick'},
-})
-
-tapestry.colours = {
- "white",
- "grey",
- "black",
- "red",
- "yellow",
- "green",
- "cyan",
- "blue",
- "magenta",
- "orange",
- "violet",
- "dark_grey",
- "dark_green",
- "pink",
- "brown",
-}
-
--- Regular-length tapestry
-
-minetest.register_node("castle:tapestry", {
- drawtype = "mesh",
- mesh = "castle_tapestry.obj",
- description = "Tapestry",
- tiles = {"castle_tapestry.png"},
- inventory_image = "castle_tapestry_inv.png",
- groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1},
- sounds = default.node_sound_defaults(),
- paramtype = "light",
- paramtype2 = "colorwallmounted",
- palette = "unifieddyes_palette_colorwallmounted.png",
- selection_box = {
- type = "wallmounted",
- wall_side = {-0.5,-0.5,0.4375,0.5,1.5,0.5},
- },
- after_place_node = unifieddyes.fix_rotation_nsew,
- after_dig_node = unifieddyes.after_dig_node,
- on_rotate = unifieddyes.fix_after_screwdriver_nsew
-})
-
--- Crafting from wool and a stick
-
-minetest.register_craft({
- type = "shapeless",
- output = 'castle:tapestry',
- recipe = {'wool:white', 'default:stick'},
-})
-
--- Long tapestry
-
-minetest.register_node("castle:tapestry_long", {
- drawtype = "mesh",
- mesh = "castle_tapestry_long.obj",
- description = "Tapestry (Long)",
- tiles = {"castle_tapestry.png"},
- inventory_image = "castle_tapestry_long_inv.png",
- groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1},
- sounds = default.node_sound_defaults(),
- paramtype = "light",
- paramtype2 = "colorwallmounted",
- palette = "unifieddyes_palette_colorwallmounted.png",
- selection_box = {
- type = "wallmounted",
- wall_side = {-0.5,-0.5,0.4375,0.5,2.5,0.5},
- },
- after_place_node = unifieddyes.fix_rotation_nsew,
- after_dig_node = unifieddyes.after_dig_node,
- on_rotate = unifieddyes.fix_after_screwdriver_nsew
-})
-
--- Crafting from normal tapestry and wool
-
-minetest.register_craft({
- type = "shapeless",
- output = 'castle:tapestry_long',
- recipe = {'wool:white', 'castle:tapestry'},
-})
-
--- Very long tapestry
-
-minetest.register_node("castle:tapestry_very_long", {
- drawtype = "mesh",
- mesh = "castle_tapestry_very_long.obj",
- description = "Tapestry (Very Long)",
- tiles = {"castle_tapestry.png"},
- inventory_image = "castle_tapestry_very_long_inv.png",
- groups = {oddly_breakable_by_hand=3,flammable=3, ud_param2_colorable = 1},
- sounds = default.node_sound_defaults(),
- paramtype = "light",
- paramtype2 = "colorwallmounted",
- palette = "unifieddyes_palette_colorwallmounted.png",
- selection_box = {
- type = "wallmounted",
- wall_side = {-0.5,-0.5,0.4375,0.5,3.5,0.5},
- },
- after_place_node = unifieddyes.fix_rotation_nsew,
- after_dig_node = unifieddyes.after_dig_node,
- on_rotate = unifieddyes.fix_after_screwdriver_nsew
-})
-
--- Crafting from long tapestry and wool
-
-minetest.register_craft({
- type = "shapeless",
- output = 'castle:tapestry_very_long',
- recipe = {'wool:white', 'castle:tapestry_long'},
-})
-
--- Convert static tapestries to param2 color
-
-castle.old_static_tapestries = {}
-
-for _, color in ipairs(tapestry.colours) do
- table.insert(castle.old_static_tapestries, "castle:tapestry_"..color)
- table.insert(castle.old_static_tapestries, "castle:long_tapestry_"..color)
- table.insert(castle.old_static_tapestries, "castle:very_long_tapestry_"..color)
-end
-
-minetest.register_lbm({
- name = "castle:convert_tapestries",
- label = "Convert tapestries to use param2 color",
- run_at_every_load = false,
- nodenames = castle.old_static_tapestries,
- action = function(pos, node)
- local oldname = node.name
- local color = string.sub(oldname, string.find(oldname, "_", -12) + 1)
-
- if color == "red" then
- color = "medium_red"
- elseif color == "cyan" then
- color = "medium_cyan"
- elseif color == "blue" then
- color = "medium_blue"
- elseif color == "magenta" then
- color = "medium_magenta"
- end
-
- local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
-
- local old_fdir = math.floor(node.param2 % 32)
- local new_fdir = 3
-
- if old_fdir == 0 then
- new_fdir = 3
- elseif old_fdir == 1 then
- new_fdir = 4
- elseif old_fdir == 2 then
- new_fdir = 2
- elseif old_fdir == 3 then
- new_fdir = 5
- end
-
- local param2 = paletteidx + new_fdir
- local newname = "castle:tapestry"
- if string.find(oldname, ":long") then
- newname = "castle:tapestry_long"
- elseif string.find(oldname, ":very_long") then
- newname = "castle:tapestry_very_long"
- end
-
- minetest.set_node(pos, { name = newname, param2 = param2 })
- local meta = minetest.get_meta(pos)
- meta:set_string("dye", "unifieddyes:"..color)
- end
-})
diff --git a/castle/textures/LICENSE.txt b/castle/textures/LICENSE.txt
deleted file mode 100644
index ce99ae2..0000000
--- a/castle/textures/LICENSE.txt
+++ /dev/null
@@ -1,84 +0,0 @@
---------------------------------------------
-
-License Textures: Stuart Jones - WTFPL
--castle_crossbow_bolt_inv.png
--castle_crossbow_bolt_uv.png
--castle_crossbow_hit.png
-
-Licence Models: Stuart Jones - CC-BY-SA 3.0
--castle_crossbow_bolt.b3d
--castle_crossbow_bolt.blend
-
-
---------------------------------------------
-
-License Textures: Kilbith - WTFPL
-
--castle_tapestry_overlay.png
-
-
---------------------------------------------
-
-License Textures: Philipner - CC-BY-SA 3.0
-
--castle_chandelier.png
--castle_chandelier_chain.png
--castle_chandelier_wield.png
--castle_corner_stonewall_tb.png
--castle_corner_stonewall1.png
--castle_corner_stonewall2.png
--castle_orb_day.png
--castle_orb_night.png
--castle_workbench_back.png
--castle_workbench_front.png
--castle_workbench_side.png
--castle_workbench_top.png
-
-
---------------------------------------------
-
-16 px textures based on Castle mod
-original textures by Philipner
-
-License Textures: Napiophelios - CC-BY-SA 3.0
-
--castle_battleaxe.png
--castle_crossbow_bolt_inv.png
--castle_crossbow_hit.png
--castle_crossbow_loaded.png
--castle_door_jail.png
--castle_door_oak.png
--castle_dungeon_stone.png
--castle_grey.png
--castle_hide.png
--castle_ironbound_chest_back.png
--castle_ironbound_chest_front.png
--castle_ironbound_chest_side.png
--castle_ironbound_chest_top.png
--castle_jail_door_inv.png
--castle_jailbars.png
--castle_oak_door_inv.png
--castle_orb_day_weild.png
--castle_orb_night_weild.png
--castle_pavement_brick.png
--castle_ropebox_side_1.png
--castle_ropebox_side_2.png
--castle_ropebox_top.png
--castle_ropes.png
--castle_rubble.png
--castle_shield_back.png
--castle_shield_front.png
--castle_shield_front_2.png
--castle_shield_front_3.png
--castle_shield_side.png
--castle_shield_side_2.png
--castle_shield_side_3.png
--castle_slate.png
--castle_space.png
--castle_steel.png
--castle_stonewall.png
--castle_straw_bale.png
--castle_street_light.png
--castle_workbench_bottom.png
-
---------------------------------------------
diff --git a/castle/textures/castle_battleaxe.png b/castle/textures/castle_battleaxe.png
deleted file mode 100644
index 4f7f738..0000000
--- a/castle/textures/castle_battleaxe.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_chandelier.png b/castle/textures/castle_chandelier.png
deleted file mode 100644
index fbc0039..0000000
--- a/castle/textures/castle_chandelier.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_chandelier_chain.png b/castle/textures/castle_chandelier_chain.png
deleted file mode 100644
index 47a526a..0000000
--- a/castle/textures/castle_chandelier_chain.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_chandelier_wield.png b/castle/textures/castle_chandelier_wield.png
deleted file mode 100644
index 59dae96..0000000
--- a/castle/textures/castle_chandelier_wield.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_corner_stonewall1.png b/castle/textures/castle_corner_stonewall1.png
deleted file mode 100644
index 0a9c091..0000000
--- a/castle/textures/castle_corner_stonewall1.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_corner_stonewall2.png b/castle/textures/castle_corner_stonewall2.png
deleted file mode 100644
index d9d7d0c..0000000
--- a/castle/textures/castle_corner_stonewall2.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_corner_stonewall_tb.png b/castle/textures/castle_corner_stonewall_tb.png
deleted file mode 100644
index d72d78d..0000000
--- a/castle/textures/castle_corner_stonewall_tb.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_crate.png b/castle/textures/castle_crate.png
deleted file mode 100644
index 33669e8..0000000
--- a/castle/textures/castle_crate.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_crate_top.png b/castle/textures/castle_crate_top.png
deleted file mode 100644
index 89d65a2..0000000
--- a/castle/textures/castle_crate_top.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_crossbow_bolt_inv.png b/castle/textures/castle_crossbow_bolt_inv.png
deleted file mode 100644
index 87cd847..0000000
--- a/castle/textures/castle_crossbow_bolt_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_crossbow_hit.png b/castle/textures/castle_crossbow_hit.png
deleted file mode 100644
index 0a2b2f3..0000000
--- a/castle/textures/castle_crossbow_hit.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_crossbow_inv.png b/castle/textures/castle_crossbow_inv.png
deleted file mode 100644
index 39bcf07..0000000
--- a/castle/textures/castle_crossbow_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_crossbow_loaded.png b/castle/textures/castle_crossbow_loaded.png
deleted file mode 100644
index ca2dca7..0000000
--- a/castle/textures/castle_crossbow_loaded.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_door_jail.png b/castle/textures/castle_door_jail.png
deleted file mode 100644
index 0d4f7bf..0000000
--- a/castle/textures/castle_door_jail.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_door_oak.png b/castle/textures/castle_door_oak.png
deleted file mode 100644
index 2282fb2..0000000
--- a/castle/textures/castle_door_oak.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_dungeon_stone.png b/castle/textures/castle_dungeon_stone.png
deleted file mode 100644
index 6a2c154..0000000
--- a/castle/textures/castle_dungeon_stone.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_grey.png b/castle/textures/castle_grey.png
deleted file mode 100644
index 8e77900..0000000
--- a/castle/textures/castle_grey.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_hide.png b/castle/textures/castle_hide.png
deleted file mode 100644
index 3e6f6c4..0000000
--- a/castle/textures/castle_hide.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ironbound_chest_back.png b/castle/textures/castle_ironbound_chest_back.png
deleted file mode 100644
index 29446db..0000000
--- a/castle/textures/castle_ironbound_chest_back.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ironbound_chest_front.png b/castle/textures/castle_ironbound_chest_front.png
deleted file mode 100644
index 8d91e07..0000000
--- a/castle/textures/castle_ironbound_chest_front.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ironbound_chest_side.png b/castle/textures/castle_ironbound_chest_side.png
deleted file mode 100644
index 3a94f81..0000000
--- a/castle/textures/castle_ironbound_chest_side.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ironbound_chest_top.png b/castle/textures/castle_ironbound_chest_top.png
deleted file mode 100644
index 29446db..0000000
--- a/castle/textures/castle_ironbound_chest_top.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_jail_door_inv.png b/castle/textures/castle_jail_door_inv.png
deleted file mode 100644
index 5121fb8..0000000
--- a/castle/textures/castle_jail_door_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_jailbars.png b/castle/textures/castle_jailbars.png
deleted file mode 100644
index e2cc911..0000000
--- a/castle/textures/castle_jailbars.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_oak_door_inv.png b/castle/textures/castle_oak_door_inv.png
deleted file mode 100644
index 1122d51..0000000
--- a/castle/textures/castle_oak_door_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_orb_day.png b/castle/textures/castle_orb_day.png
deleted file mode 100644
index 3c12896..0000000
--- a/castle/textures/castle_orb_day.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_orb_day_weild.png b/castle/textures/castle_orb_day_weild.png
deleted file mode 100644
index 1cfc6df..0000000
--- a/castle/textures/castle_orb_day_weild.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_orb_night.png b/castle/textures/castle_orb_night.png
deleted file mode 100644
index 2b062d1..0000000
--- a/castle/textures/castle_orb_night.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_orb_night_weild.png b/castle/textures/castle_orb_night_weild.png
deleted file mode 100644
index ded6e38..0000000
--- a/castle/textures/castle_orb_night_weild.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_pavement_brick.png b/castle/textures/castle_pavement_brick.png
deleted file mode 100644
index fd10e0f..0000000
--- a/castle/textures/castle_pavement_brick.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ropebox_side_1.png b/castle/textures/castle_ropebox_side_1.png
deleted file mode 100644
index 00902d7..0000000
--- a/castle/textures/castle_ropebox_side_1.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ropebox_side_2.png b/castle/textures/castle_ropebox_side_2.png
deleted file mode 100644
index 6340191..0000000
--- a/castle/textures/castle_ropebox_side_2.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ropebox_top.png b/castle/textures/castle_ropebox_top.png
deleted file mode 100644
index 0b9115b..0000000
--- a/castle/textures/castle_ropebox_top.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_ropes.png b/castle/textures/castle_ropes.png
deleted file mode 100644
index 456d7bb..0000000
--- a/castle/textures/castle_ropes.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_rubble.png b/castle/textures/castle_rubble.png
deleted file mode 100644
index fbaa32c..0000000
--- a/castle/textures/castle_rubble.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_back.png b/castle/textures/castle_shield_back.png
deleted file mode 100644
index 53cca18..0000000
--- a/castle/textures/castle_shield_back.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_front.png b/castle/textures/castle_shield_front.png
deleted file mode 100644
index c7b56fc..0000000
--- a/castle/textures/castle_shield_front.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_front_2.png b/castle/textures/castle_shield_front_2.png
deleted file mode 100644
index ffc2256..0000000
--- a/castle/textures/castle_shield_front_2.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_front_3.png b/castle/textures/castle_shield_front_3.png
deleted file mode 100644
index 7dc48a7..0000000
--- a/castle/textures/castle_shield_front_3.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_side.png b/castle/textures/castle_shield_side.png
deleted file mode 100644
index 8aaa6a9..0000000
--- a/castle/textures/castle_shield_side.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_side_2.png b/castle/textures/castle_shield_side_2.png
deleted file mode 100644
index 07282d2..0000000
--- a/castle/textures/castle_shield_side_2.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_shield_side_3.png b/castle/textures/castle_shield_side_3.png
deleted file mode 100644
index 6dc8aeb..0000000
--- a/castle/textures/castle_shield_side_3.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_slate.png b/castle/textures/castle_slate.png
deleted file mode 100644
index a7de1ea..0000000
--- a/castle/textures/castle_slate.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_space.png b/castle/textures/castle_space.png
deleted file mode 100644
index c2e8752..0000000
--- a/castle/textures/castle_space.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_steel.png b/castle/textures/castle_steel.png
deleted file mode 100644
index 28ecd60..0000000
--- a/castle/textures/castle_steel.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_stonewall.png b/castle/textures/castle_stonewall.png
deleted file mode 100644
index b8f823f..0000000
--- a/castle/textures/castle_stonewall.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_straw_bale.png b/castle/textures/castle_straw_bale.png
deleted file mode 100644
index ad56330..0000000
--- a/castle/textures/castle_straw_bale.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_street_light.png b/castle/textures/castle_street_light.png
deleted file mode 100644
index dc3f72e..0000000
--- a/castle/textures/castle_street_light.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_tapestry.png b/castle/textures/castle_tapestry.png
deleted file mode 100644
index e807340..0000000
--- a/castle/textures/castle_tapestry.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_tapestry_inv.png b/castle/textures/castle_tapestry_inv.png
deleted file mode 100644
index 99c1b2e..0000000
--- a/castle/textures/castle_tapestry_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_tapestry_long_inv.png b/castle/textures/castle_tapestry_long_inv.png
deleted file mode 100644
index ce04c40..0000000
--- a/castle/textures/castle_tapestry_long_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_tapestry_very_long_inv.png b/castle/textures/castle_tapestry_very_long_inv.png
deleted file mode 100644
index 6fcca22..0000000
--- a/castle/textures/castle_tapestry_very_long_inv.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_workbench_back.png b/castle/textures/castle_workbench_back.png
deleted file mode 100644
index 174d941..0000000
--- a/castle/textures/castle_workbench_back.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_workbench_bottom.png b/castle/textures/castle_workbench_bottom.png
deleted file mode 100644
index f50a8f3..0000000
--- a/castle/textures/castle_workbench_bottom.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_workbench_front.png b/castle/textures/castle_workbench_front.png
deleted file mode 100644
index 27a1f1f..0000000
--- a/castle/textures/castle_workbench_front.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_workbench_side.png b/castle/textures/castle_workbench_side.png
deleted file mode 100644
index b6418ac..0000000
--- a/castle/textures/castle_workbench_side.png
+++ /dev/null
Binary files differ
diff --git a/castle/textures/castle_workbench_top.png b/castle/textures/castle_workbench_top.png
deleted file mode 100644
index fef4827..0000000
--- a/castle/textures/castle_workbench_top.png
+++ /dev/null
Binary files differ
diff --git a/castle/town_item.lua b/castle/town_item.lua
deleted file mode 100644
index ee7d22f..0000000
--- a/castle/town_item.lua
+++ /dev/null
@@ -1,386 +0,0 @@
-
-minetest.register_alias("darkage:box", "castle:crate")
-minetest.register_alias("cottages:straw", "farming:straw")
-minetest.register_alias("castle:straw", "farming:straw")
-minetest.register_alias("darkage:straw", "farming:straw")
-minetest.register_alias("cottages:straw_bale", "castle:bound_straw")
-minetest.register_alias("darkage:straw_bale", "castle:bound_straw")
-minetest.register_alias("darkage:lamp", "castle:street_light")
-minetest.register_alias("castle:pavement", "castle:pavement_brick")
-
-minetest.register_node("castle:anvil",{
- drawtype = "nodebox",
- description = "Anvil",
- tiles = {"castle_steel.png"},
- groups = {cracky=2,falling_node=1},
- sounds = default.node_sound_stone_defaults(),
- paramtype = "light",
- paramtype2 = "facedir",
- node_box = {
- type = "fixed",
- fixed = {
- {-0.500000,-0.500000,-0.500000,0.500000,-0.250000,0.500000},
- {-0.187500,-0.500000,-0.375000,0.187500,0.312500,0.375000},
- {-0.375000,-0.500000,-0.437500,0.375000,-0.125000,0.437500},
- {-0.500000,0.312500,-0.500000,0.500000,0.500000,0.500000},
- {-0.375000,0.187500,-0.437500,0.375000,0.425000,0.437500},
- },
- },
-})
-
-minetest.register_craft({
- output = "castle:anvil",
- recipe = {
- {"default:steel_ingot","default:steel_ingot","default:steel_ingot"},
- {"","default:steel_ingot", ""},
- {"default:steel_ingot", "default:steel_ingot","default:steel_ingot"},
- }
-})
-
-minetest.register_node("castle:workbench",{
- description = "Workbench",
- tiles = {"castle_workbench_top.png", "castle_workbench_bottom.png", "castle_workbench_side.png", "castle_workbench_side.png", "castle_workbench_back.png", "castle_workbench_front.png"},
- paramtype2 = "facedir",
- paramtype = "light",
- groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2},
- sounds = default.node_sound_wood_defaults(),
- drawtype = "normal",
- on_construct = function ( pos )
- local meta = minetest.get_meta( pos )
- meta:set_string( 'formspec',
- 'size[10,10;]' ..
- default.gui_bg ..
- default.gui_bg_img ..
- default.gui_slots ..
- 'label[1,0;Source Material]' ..
- 'list[context;src;1,1;2,4;]' ..
- 'label[4,0;Recipe to Use]' ..
- 'list[context;rec;4,1;3,3;]' ..
- 'label[7.5,0;Craft Output]' ..
- 'list[context;dst;8,1;1,4;]' ..
- 'list[current_player;main;1,6;8,4;]' )
- meta:set_string( 'infotext', 'Workbench' )
- local inv = meta:get_inventory()
- inv:set_size( 'src', 2 * 4 )
- inv:set_size( 'rec', 3 * 3 )
- inv:set_size( 'dst', 1 * 4 )
- end,
- can_dig = function(pos,player)
- local meta = minetest.get_meta(pos);
- local inv = meta:get_inventory()
- return inv:is_empty("main")
- end,
- on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- minetest.log("action", player:get_player_name()..
- " moves stuff in workbench at "..minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_put = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name()..
- " moves stuff to workbench at "..minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_take = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name()..
- " takes stuff from workbench at "..minetest.pos_to_string(pos))
- end,
-})
-local get_recipe = function ( inv )
- local result, needed, input
- needed = inv:get_list( 'rec' )
-
- result, input = minetest.get_craft_result( {
- method = 'normal',
- width = 3,
- items = needed
- })
-
- local totalneed = {}
-
- if result.item:is_empty() then
- result = nil
- else
- result = result.item
- for _, item in ipairs( needed ) do
- if item ~= nil and not item:is_empty() and not inv:contains_item( 'src', item ) then
- result = nil
- break
- end
- if item ~= nil and not item:is_empty() then
- if totalneed[item:get_name()] == nil then
- totalneed[item:get_name()] = 1
- else
- totalneed[item:get_name()] = totalneed[item:get_name()] + 1
- end
- end
- end
- for name, number in pairs( totalneed ) do
- local totallist = inv:get_list( 'src' )
- for i, srcitem in pairs( totallist ) do
- if srcitem:get_name() == name then
- local taken = srcitem:take_item( number )
- number = number - taken:get_count()
- totallist[i] = srcitem
- end
- if number <= 0 then
- break
- end
- end
- if number > 0 then
- result = nil
- break
- end
- end
- end
-
- return needed, input, result
-end
-
-minetest.register_abm( {
- nodenames = { 'castle:workbench' },
- interval = 5,
- chance = 1,
- action = function ( pos, node )
- local meta = minetest.get_meta( pos )
- local inv = meta:get_inventory()
- local result, newinput, needed
- if not inv:is_empty( 'src' ) then
- -- Check for a valid recipe and sufficient resources to craft it
- needed, newinput, result = get_recipe( inv )
- if result ~= nil and inv:room_for_item( 'dst', result ) then
- inv:add_item( 'dst', result )
- for i, item in pairs( needed ) do
- if item ~= nil and item ~= '' then
- inv:remove_item( 'src', ItemStack( item ) )
- end
- if newinput[i] ~= nil and not newinput[i]:is_empty() then
- inv:add_item( 'src', newinput[i] )
- end
- end
- end
- end
- end
-} )
-
-local function has_locked_chest_privilege(meta, player)
- if player:get_player_name() ~= meta:get_string("owner") then
- return false
- end
- return true
-end
-
-minetest.register_craft({
- output = "castle:workbench",
- recipe = {
- {"default:steel_ingot","default:steel_ingot","default:steel_ingot"},
- {"default:wood", "default:wood","default:steel_ingot"},
- {"default:tree", "default:tree","default:steel_ingot"},
- }
-})
-
-minetest.register_node("castle:dungeon_stone", {
- description = "Dungeon Stone",
- drawtype = "normal",
- tiles = {"castle_dungeon_stone.png"},
- groups = {cracky=2},
- paramtype = "light",
- sounds = default.node_sound_stone_defaults(),
-})
-
-minetest.register_craft({
- output = "castle:dungeon_stone",
- recipe = {
- {"default:stonebrick", "default:obsidian"},
- }
-})
-
-minetest.register_craft({
- output = "castle:dungeon_stone",
- recipe = {
- {"default:stonebrick"},
- {"default:obsidian"},
- }
-})
-
-minetest.register_node("castle:crate", {
- description = "Crate",
- drawtype = "normal",
- tiles = {"castle_crate_top.png","castle_crate_top.png","castle_crate.png","castle_crate.png","castle_crate.png","castle_crate.png"},
- groups = {choppy=3},
- sounds = default.node_sound_wood_defaults(),
- paramtype = "light",
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("formspec",
- "size[8,9]"..
- default.gui_bg ..
- default.gui_bg_img ..
- default.gui_slots ..
- "list[current_name;main;0,0;8,5;]"..
- "list[current_player;main;0,5;8,4;]")
- meta:set_string("infotext", "Crate")
- local inv = meta:get_inventory()
- inv:set_size("main", 8*4)
- end,
- can_dig = function(pos,player)
- local meta = minetest.get_meta(pos);
- local inv = meta:get_inventory()
- return inv:is_empty("main")
- end,
- on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- minetest.log("action", player:get_player_name()..
- " moves stuff in crate at "..minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_put = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name()..
- " moves stuff to crate at "..minetest.pos_to_string(pos))
- end,
- on_metadata_inventory_take = function(pos, listname, index, stack, player)
- minetest.log("action", player:get_player_name()..
- " takes stuff from crate at "..minetest.pos_to_string(pos))
- end,
-})
-
-minetest.register_craft({
- output = "castle:crate",
- recipe = {
- {"default:wood", "default:wood", "default:wood"},
- {"default:wood", "default:steel_ingot", "default:wood"},
- }
-})
-
-minetest.register_node("castle:bound_straw", {
- description = "Bound Straw",
- drawtype = "normal",
- tiles = {"castle_straw_bale.png"},
- groups = {choppy=4, flammable=1, oddly_breakable_by_hand=3},
- sounds = default.node_sound_leaves_defaults(),
- paramtype = "light",
-})
-
-minetest.register_craft({
- output = "castle:bound_straw",
- recipe = {
- {"castle:straw", "castle:ropes"},
- }
-})
-
-minetest.register_node("castle:pavement_brick", {
- description = "Paving Stone",
- drawtype = "normal",
- tiles = {"castle_pavement_brick.png"},
- groups = {cracky=2},
- paramtype = "light",
- sounds = default.node_sound_stone_defaults(),
-})
-
-minetest.register_craft({
- output = "castle:pavement_brick 4",
- recipe = {
- {"default:stone", "default:cobble"},
- {"default:cobble", "default:stone"},
- }
-})
-
-minetest.register_node("castle:light",{
- drawtype = "glasslike",
- description = "Light Block",
- sunlight_propagates = true,
- light_source = 14,
- tiles = {"castle_street_light.png"},
- groups = {cracky=2},
- sounds = default.node_sound_glass_defaults(),
- paramtype = "light",
-})
-
-minetest.register_craft({
- output = "castle:light",
- recipe = {
- {"default:stick", "default:glass", "default:stick"},
- {"default:glass", "default:torch", "default:glass"},
- {"default:stick", "default:glass", "default:stick"},
- }
-})
-
-if minetest.get_modpath("moreblocks") then
- stairsplus:register_all("castle", "dungeon_stone", "castle:dungeon_stone", {
- description = "Dungeon Stone",
- tiles = {"castle_dungeon_stone.png"},
- groups = {cracky=2, not_in_creative_inventory=1},
- sounds = default.node_sound_stone_defaults(),
- sunlight_propagates = true,
- })
-
- stairsplus:register_all("castle", "pavement_brick", "castle:pavement_brick", {
- description = "Pavement Brick",
- tiles = {"castle_pavement_brick.png"},
- groups = {cracky=2, not_in_creative_inventory=1},
- sounds = default.node_sound_stone_defaults(),
- sunlight_propagates = true,
- })
-
-else
- stairs.register_stair_and_slab("dungeon_stone", "castle:dungeon_stone",
- {cracky=2},
- {"castle_dungeon_stone.png"},
- "Dungeon Stone Stair",
- "Dungeon Stone Slab",
- default.node_sound_stone_defaults()
- )
-
- stairs.register_stair_and_slab("pavement_brick", "castle:pavement_brick",
- {cracky=2},
- {"castle_pavement_brick.png"},
- "Castle Pavement Stair",
- "Castle Pavement Slab",
- default.node_sound_stone_defaults()
- )
-end
-
-minetest.register_node( "castle:chandelier", {
- drawtype = "plantlike",
- description = "Chandelier",
- paramtype = "light",
- wield_image = "castle_chandelier_wield.png",
- inventory_image = "castle_chandelier_wield.png",
- groups = {cracky=2},
- sounds = default.node_sound_glass_defaults(),
- sunlight_propagates = true,
- light_source = 14,
- tiles = {
- {
- name = "castle_chandelier.png",
- animation = {
- type = "vertical_frames",
- aspect_w = 16,
- aspect_h = 16,
- length = 1.0
- },
- },
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {0.35,-0.375,0.35,-0.35,0.5,-0.35},
-
- },
- },
-})
-
-minetest.register_node( "castle:chandelier_chain", {
- drawtype = "plantlike",
- description = "Chandelier Chain",
- paramtype = "light",
- wield_image = "castle_chandelier_chain.png",
- inventory_image = "castle_chandelier_chain.png",
- groups = {cracky=2},
- sounds = default.node_sound_glass_defaults(),
- sunlight_propagates = true,
- tiles = {"castle_chandelier_chain.png"},
- selection_box = {
- type = "fixed",
- fixed = {
- {0.1,-0.5,0.1,-0.1,0.5,-0.1},
-
- },
- },
-})
-