diff options
author | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2016-05-12 18:48:23 -0400 |
---|---|---|
committer | Vanessa Ezekowitz <vanessaezekowitz@gmail.com> | 2016-05-12 18:48:23 -0400 |
commit | 0f313120fe54fbd6bc4a3eccf5caaad7faa97001 (patch) | |
tree | 50c27cd09008b05225d2de6f23808c36eae22af8 /castle | |
parent | ec3d07f8296dce357f7147a4c834a97329d1ef11 (diff) | |
download | dreambuilder_modpack-0f313120fe54fbd6bc4a3eccf5caaad7faa97001.tar dreambuilder_modpack-0f313120fe54fbd6bc4a3eccf5caaad7faa97001.tar.gz dreambuilder_modpack-0f313120fe54fbd6bc4a3eccf5caaad7faa97001.tar.bz2 dreambuilder_modpack-0f313120fe54fbd6bc4a3eccf5caaad7faa97001.tar.xz dreambuilder_modpack-0f313120fe54fbd6bc4a3eccf5caaad7faa97001.zip |
updated castle, colormachine, homedecor, mesecons, pipeworks, signs_lib, technic, and xban2
Diffstat (limited to 'castle')
33 files changed, 751 insertions, 265 deletions
diff --git a/castle/README.txt b/castle/README.txt index 9dc3b4a..91cfddd 100644 --- a/castle/README.txt +++ b/castle/README.txt @@ -21,15 +21,37 @@ Contains as of now: --Castlestone Stairs, Slabs, and Pillars --Jailbars --Hides ---Arrowslits ---Rubble (for between walls) +--Arrows and Arrowslits +--Rubble --Doors +--Weapons +--Chandeliers +--Tapestries --and more! =-=-=-=-=-=-=-=-=-= -" Although crossbows have been removed, along with arrows, the code is still there. - To get the crossbows back, look in init.lua. You will see at the top some lines - with dofile in them. Copy and paste two more of these lines, and change them to - crossbow.lua and arrow.lua to get them back. " - -I, (philipbenr) will take a look at the arrows and crossbows, and see about this. + +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? +--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 index 66614eb..275d817 100644 --- a/castle/arrowslit.lua +++ b/castle/arrowslit.lua @@ -26,7 +26,7 @@ for _, row in ipairs(arrowslit.types) do description = desc.." Arrowslit", tiles = {tile..".png"}, groups = {cracky=3}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { @@ -50,7 +50,7 @@ for _, row in ipairs(arrowslit.types) do description = desc.." Arrowslit with Cross", tiles = {tile..".png"}, groups = {cracky=3}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { @@ -78,7 +78,7 @@ for _, row in ipairs(arrowslit.types) do description = desc.." Arrowslit with Hole", tiles = {tile..".png"}, groups = {cracky=3}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { diff --git a/castle/crossbow.lua b/castle/crossbow.lua index 43f033d..c752779 100644 --- a/castle/crossbow.lua +++ b/castle/crossbow.lua @@ -1,43 +1,431 @@ -arrows = { - {"castle:arrow", "castle:arrow_entity"}, +--[[ +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", } -local castle_shoot_arrow = function(itemstack, player) - for _,arrow in ipairs(arrows) do - if player:get_inventory():get_stack("main", player:get_wield_index()+1):get_name() == arrow[1] then - if not minetest.setting_getbool("creative_mode") then - player:get_inventory():remove_item("main", arrow[1]) +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 - local playerpos = player:getpos() - local obj = minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, arrow[2]) - local dir = player:get_look_dir() - obj:setvelocity({x=dir.x*19, y=dir.y*19, z=dir.z*19}) - obj:setacceleration({x=dir.x*-3, y=-10, z=dir.z*-3}) - obj:setyaw(player:get_look_yaw()+math.pi) - minetest.sound_play("castle_sound", {pos=playerpos}) - if obj:get_luaentity().player == "" then - obj:get_luaentity().player = player + 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 - obj:get_luaentity().node = player:get_inventory():get_stack("main", 1):get_name() - return true end end - return false 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.png", - stack_max = 1, + inventory_image = "castle_crossbow_inv.png", on_use = function(itemstack, user, pointed_thing) - if castle_shoot_arrow(item, user, pointed_thing) then - if not minetest.setting_getbool("creative_mode") then - itemstack:add_wear(65535/200) + 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 - end - return itemstack + minetest.sound_play("castle_crossbow_click", {object=user}) end, }) +----------- +--Crafting +----------- + minetest.register_craft({ output = 'castle:crossbow', recipe = { @@ -46,3 +434,10 @@ minetest.register_craft({ {'', '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/init.lua b/castle/init.lua index 8c56f72..5235d52 100644 --- a/castle/init.lua +++ b/castle/init.lua @@ -7,6 +7,7 @@ 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") minetest.register_node("castle:stonewall", { description = "Castle Wall", @@ -15,6 +16,7 @@ minetest.register_node("castle:stonewall", { paramtype = "light", drop = "castle:stonewall", groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), }) minetest.register_node("castle:rubble", { @@ -23,6 +25,7 @@ minetest.register_node("castle:rubble", { tiles = {"castle_rubble.png"}, paramtype = "light", groups = {crumbly=3,falling_node=1}, + sounds = default.node_sound_gravel_defaults(), }) minetest.register_craft({ @@ -60,6 +63,7 @@ minetest.register_node("castle:stonewall_corner", { "castle_stonewall.png", "castle_corner_stonewall2.png"}, groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), }) minetest.register_craft({ @@ -83,6 +87,7 @@ minetest.register_node("castle:roofslate", { 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", { @@ -158,38 +163,6 @@ if not (mod_building_blocks or mod_streets) then end -stairs.register_stair_and_slab("stonewall", "castle:stonewall", - {cracky=3}, - {"castle_stonewall.png"}, - "Castle Wall Stair", - "Castle Wall Slab", - default.node_sound_stone_defaults()) - -minetest.register_craft({ - output = "castle:stairs 4", - recipe = { - {"castle:stonewall","",""}, - {"castle:stonewall","castle:stonewall",""}, - {"castle:stonewall","castle:stonewall","castle:stonewall"}, - } -}) - -minetest.register_craft({ - output = "stairs:stair_stonewall 4", - recipe = { - {"","","castle:stonewall"}, - {"","castle:stonewall","castle:stonewall"}, - {"castle:stonewall","castle:stonewall","castle:stonewall"}, - } -}) - -minetest.register_craft({ - output = "stairs:slab_stonewall 6", - recipe = { - {"castle:stonewall","castle:stonewall","castle:stonewall"}, - } -}) - doors.register("castle:oak_door", { tiles = {{ name = "castle_door_oak.png", backface_culling = true }}, description = "Oak Door", @@ -232,7 +205,14 @@ function default.get_ironbound_chest_formspec(pos) end local function has_ironbound_chest_privilege(meta, player) - if player:get_player_name() ~= meta:get_string("owner") then + 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 @@ -374,26 +354,10 @@ minetest.register_craft({ }) 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=1, 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=1, not_in_creative_inventory=1}, - sounds = default.node_sound_stone_defaults(), - sunlight_propagates = true, - }) - stairsplus:register_all("castle", "stonewall", "castle:stonewall", { description = "Stone Wall", tiles = {"castle_stonewall.png"}, - groups = {cracky=1, not_in_creative_inventory=1}, + groups = {cracky=3, not_in_creative_inventory=1}, sounds = default.node_sound_stone_defaults(), sunlight_propagates = true, }) @@ -401,54 +365,25 @@ if minetest.get_modpath("moreblocks") then stairsplus:register_all("castle", "rubble", "castle:rubble", { description = "Rubble", tiles = {"castle_rubble.png"}, - groups = {cracky=1, not_in_creative_inventory=1}, - sounds = default.node_sound_stone_defaults(), + groups = {cracky=3, not_in_creative_inventory=1}, + sounds = default.node_sound_gravel_defaults(), sunlight_propagates = true, }) -end - -stairs.register_stair_and_slab("dungeon_stone", "castle:dungeon_stone", - {cracky=3}, - {"castle_dungeon_stone.png"}, - "Dungeon Stone Stair", - "Dungeon Stone Slab", - default.node_sound_stone_defaults()) -stairs.register_stair_and_slab("castle_pavement_brick", "castle:pavement_brick", - {cracky=3}, - {"castle_pavement_brick.png"}, - "Castle Pavement Stair", - "Castle Pavement Slab", - default.node_sound_stone_defaults()) - -minetest.register_craft({ - output = "stairs:slab_dungeon_stone 6", - recipe = { - {"castle:dungeon_stone","castle:dungeon_stone","castle:dungeon_stone"}, - } -}) - -minetest.register_craft({ - output = "stairs:slab_pavement_brick 6", - recipe = { - {"castle:pavement_brick","castle:pavement_brick","castle:pavement_brick"}, - } -}) - -minetest.register_craft({ - output = "stairs:stair_dungeon_stone 4", - recipe = { - {"","","castle:dungeon_stone"}, - {"","castle:dungeon_stone","castle:dungeon_stone"}, - {"castle:dungeon_stone","castle:dungeon_stone","castle:dungeon_stone"}, - } -}) - -minetest.register_craft({ - output = "stairs:stair_pavement_brick 4", - recipe = { - {"","","castle:pavement_brick"}, - {"","castle:pavement_brick","castle:pavement_brick"}, - {"castle:pavement_brick","castle:pavement_brick","castle:pavement_brick"}, - } -}) +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 index 504e23f..38490cb 100644 --- a/castle/jailbars.lua +++ b/castle/jailbars.lua @@ -14,3 +14,8 @@ if minetest.get_modpath("xpanes") then {"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/models/LICENSE.txt b/castle/models/LICENSE.txt new file mode 100644 index 0000000..7c019e6 --- /dev/null +++ b/castle/models/LICENSE.txt @@ -0,0 +1,10 @@ +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 Binary files differnew file mode 100644 index 0000000..d24be3c --- /dev/null +++ b/castle/models/castle_crossbow_bolt.b3d diff --git a/castle/models/castle_crossbow_bolt.blend b/castle/models/castle_crossbow_bolt.blend Binary files differnew file mode 100644 index 0000000..4cf5f43 --- /dev/null +++ b/castle/models/castle_crossbow_bolt.blend diff --git a/castle/models/castle_crossbow_bolt_uv.png b/castle/models/castle_crossbow_bolt_uv.png Binary files differnew file mode 100644 index 0000000..b7d29c5 --- /dev/null +++ b/castle/models/castle_crossbow_bolt_uv.png diff --git a/castle/murder_hole.lua b/castle/murder_hole.lua index bd0dfb1..672f3b9 100644 --- a/castle/murder_hole.lua +++ b/castle/murder_hole.lua @@ -22,7 +22,7 @@ for _, row in ipairs(hole.types) do description = desc.." Murder Hole", tiles = {tile..".png"}, groups = {cracky=3}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { diff --git a/castle/pillars.lua b/castle/pillars.lua index ac63cb5..40b8143 100644 --- a/castle/pillars.lua +++ b/castle/pillars.lua @@ -26,7 +26,7 @@ for _, row in ipairs(pillar.types) do description = desc.." Pillar Base", tiles = {tile..".png"}, groups = {cracky=3,attached_node=1}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { @@ -43,7 +43,7 @@ for _, row in ipairs(pillar.types) do description = desc.." Pillar Top", tiles = {tile..".png"}, groups = {cracky=3,attached_node=1}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { @@ -61,7 +61,7 @@ for _, row in ipairs(pillar.types) do description = desc.." Pillar Middle", tiles = {tile..".png"}, groups = {cracky=3,attached_node=1}, - sounds = default.node_sound_defaults(), + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { diff --git a/castle/rope.lua b/castle/rope.lua index 1141913..8c7b73e 100644 --- a/castle/rope.lua +++ b/castle/rope.lua @@ -4,6 +4,7 @@ minetest.register_node("castle:ropes",{ 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, @@ -73,6 +74,7 @@ minetest.register_node("castle:ropebox", { paramtype = "light", paramtype2 = "facedir", groups = {choppy=3}, + sounds = default.node_sound_defaults(), node_box = { type = "fixed", fixed = { diff --git a/castle/shields_decor.lua b/castle/shields_decor.lua index 354b099..20823f6 100644 --- a/castle/shields_decor.lua +++ b/castle/shields_decor.lua @@ -5,6 +5,7 @@ minetest.register_node("castle:shield",{ paramtype2 = "facedir", paramtype = "light", groups={cracky=3}, + sounds = default.node_sound_defaults(), node_box = { type = "fixed", fixed = { @@ -39,6 +40,7 @@ minetest.register_node("castle:shield_2",{ paramtype2 = "facedir", paramtype = "light", groups={cracky=3}, + sounds = default.node_sound_defaults(), node_box = { type = "fixed", fixed = { @@ -72,6 +74,7 @@ minetest.register_node("castle:shield_3",{ paramtype2 = "facedir", paramtype = "light", groups={cracky=3}, + sounds = default.node_sound_defaults(), node_box = { type = "fixed", fixed = { diff --git a/castle/sounds/LICENSE.txt b/castle/sounds/LICENSE.txt new file mode 100644 index 0000000..d461ac2 --- /dev/null +++ b/castle/sounds/LICENSE.txt @@ -0,0 +1,52 @@ +License Sounds +------------------ + +(From Simple Shooter mod by Stuart Jones) +-castle_crossbow_click.ogg +-castle_crossbow_shoot.ogg +-castle_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 Binary files differnew file mode 100644 index 0000000..4a93395 --- /dev/null +++ b/castle/sounds/castle_birds.ogg diff --git a/castle/sounds/castle_crossbow_bolt.ogg b/castle/sounds/castle_crossbow_bolt.ogg Binary files differnew file mode 100644 index 0000000..34f63a1 --- /dev/null +++ b/castle/sounds/castle_crossbow_bolt.ogg diff --git a/castle/sounds/castle_crossbow_click.ogg b/castle/sounds/castle_crossbow_click.ogg Binary files differnew file mode 100644 index 0000000..8e60db8 --- /dev/null +++ b/castle/sounds/castle_crossbow_click.ogg diff --git a/castle/sounds/castle_crossbow_shoot.ogg b/castle/sounds/castle_crossbow_shoot.ogg Binary files differnew file mode 100644 index 0000000..9ce9176 --- /dev/null +++ b/castle/sounds/castle_crossbow_shoot.ogg diff --git a/castle/sounds/castle_orbs.ogg b/castle/sounds/castle_orbs.ogg Binary files differnew file mode 100644 index 0000000..c7aa8f8 --- /dev/null +++ b/castle/sounds/castle_orbs.ogg diff --git a/castle/sounds/castle_owl.ogg b/castle/sounds/castle_owl.ogg Binary files differnew file mode 100644 index 0000000..f30d0b3 --- /dev/null +++ b/castle/sounds/castle_owl.ogg diff --git a/castle/sounds/castle_reload.ogg b/castle/sounds/castle_reload.ogg Binary files differnew file mode 100644 index 0000000..47f7245 --- /dev/null +++ b/castle/sounds/castle_reload.ogg diff --git a/castle/tapestry.lua b/castle/tapestry.lua index 3cc3401..8b31bdc 100644 --- a/castle/tapestry.lua +++ b/castle/tapestry.lua @@ -2,23 +2,23 @@ local tapestry = {} minetest.register_node("castle:tapestry_top", { drawtype = "nodebox", - description = "Tapestry Top", + description = "Tapestry Top", tiles = {"default_wood.png"}, sunlight_propagates = true, - groups = {flammable=3,oddly_breakable_by_hand=1}, + groups = {flammable=3,oddly_breakable_by_hand=3}, sounds = default.node_sound_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { type = "fixed", fixed = { - {-0.600000,-0.500000,0.375000,0.600000,-0.375000,0.500000}, + {-0.6,-0.5,0.375,0.6,-0.375,0.5}, }, }, selection_box = { type = "fixed", fixed = { - {-0.600000,-0.500000,0.375000,0.600000,-0.375000,0.500000}, + {-0.6,-0.5,0.375,0.6,-0.375,0.5}, }, }, }) @@ -30,56 +30,60 @@ minetest.register_craft({ }) tapestry.colours = { - {"white", "White", "white"}, - {"grey", "Grey", "grey"}, - {"black", "Black", "black"}, - {"red", "Red", "red"}, - {"yellow", "Yellow", "yellow"}, - {"green", "Green", "green"}, - {"cyan", "Cyan", "cyan"}, - {"blue", "Blue", "blue"}, - {"magenta", "Magenta", "magenta"}, - {"orange", "Orange", "orange"}, - {"violet", "Violet", "violet"}, - {"dark_grey", "Dark Grey", "dark_grey"}, - {"dark_green", "Dark Green", "dark_green"}, - {"pink", "Pink", "pink"}, - {"brown", "Brown", "brown"}, + {"white", "White", "white", "#FFFFFF"}, + {"grey", "Grey", "grey", "#4B4B4B"}, + {"black", "Black", "black", "#1F1F1F"}, + {"red", "Red", "red", "#B21414"}, + {"yellow", "Yellow", "yellow", "#FFD011"}, + {"green", "Green", "green", "#43A91C"}, + {"cyan", "Cyan", "cyan", "#00737B"}, + {"blue", "Blue", "blue", "#003A7E"}, + {"magenta", "Magenta", "magenta", "#DD0487"}, + {"orange", "Orange", "orange", "#D55014"}, + {"violet", "Violet", "violet", "#5D01AC"}, + {"dark_grey", "Dark Grey", "dark_grey", "#3A3A3A"}, + {"dark_green", "Dark Green", "dark_green", "#206400"}, + {"pink", "Pink", "pink", "#FF8383"}, + {"brown", "Brown", "brown", "#6D3800"}, } for _, row in ipairs(tapestry.colours) do local name = row[1] local desc = row[2] local craft_color_group = row[3] + local defcolor = row[4] -- Node Definition - minetest.register_node("castle:tapestry_"..name, { - drawtype = "nodebox", - description = desc.." Tapestry", - tiles = {"wool_"..name..".png"}, - groups = {oddly_breakable_by_hand=3,flammable=3,not_in_creative_inventory=1}, - sounds = default.node_sound_defaults(), - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.312500,-0.500000,0.437500,-0.187500,-0.375000,0.500000}, - {0.187500,-0.500000,0.437500,0.312500,-0.375000,0.500000}, - {-0.375000,-0.375000,0.437500,-0.125000,-0.250000,0.500000}, - {0.125000,-0.375000,0.437500,0.375000,-0.250000,0.500000}, - {-0.437500,-0.250000,0.437500,-0.062500,-0.125000,0.500000}, - {0.062500,-0.250000,0.437500,0.437500,-0.125000,0.500000}, - {-0.500000,-0.125000,0.437500,0.000000,0.000000,0.500000}, - {0.000000,-0.125000,0.437500,0.500000,0.000000,0.500000}, - {-0.500000,0.000000,0.437500,0.500000,1.500000,0.500000}, - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-0.500000,-0.500000,0.437500,0.500000,1.500000,0.500000}, - }, - }, + minetest.register_node("castle:tapestry_"..name, { + drawtype = "nodebox", + description = desc.." Tapestry", + --uses default wool textures for tapestry material + tiles = {"wool_"..name..".png^[transformR90"}, + --uses custom texture for tapestry material + --tiles = {"castle_tapestry_overlay.png^[colorize:" .. defcolor ..":205"}, + groups = {oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_defaults(), + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.3125,-0.5,0.4375,-0.1875,-0.375,0.5}, + {0.1875,-0.5,0.4375,0.3125,-0.375,0.5}, + {-0.375,-0.375,0.4375,-0.125,-0.25,0.5}, + {0.125,-0.375,0.4375,0.375,-0.25,0.5}, + {-0.4375,-0.25,0.4375,-0.0625,-0.125,0.5}, + {0.0625,-0.25,0.4375,0.4375,-0.125,0.5}, + {-0.5,-0.125,0.4375,0.0,0.0,0.5}, + {0.0,-0.125,0.4375,0.5,0.0,0.5}, + {-0.5,0.0,0.4375,0.5,1.5,0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,0.4375,0.5,1.5,0.5}, + }, + }, }) if craft_color_group then -- Crafting from wool and a stick @@ -92,40 +96,43 @@ for _, row in ipairs(tapestry.colours) do end for _, row in ipairs(tapestry.colours) do - local name = row[1] - local desc = row[2] - local craft_color_group = row[3] - -- Node Definition - minetest.register_node("castle:long_tapestry_"..name, { - drawtype = "nodebox", - description = desc.." Tapestry (Long)", - tiles = {"wool_"..name..".png"}, - groups = {oddly_breakable_by_hand=3,flammable=3,not_in_creative_inventory=1}, - sounds = default.node_sound_defaults(), - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.312500,-0.500000,0.437500,-0.187500,-0.375000,0.500000}, - {0.187500,-0.500000,0.437500,0.312500,-0.375000,0.500000}, - {-0.375000,-0.375000,0.437500,-0.125000,-0.250000,0.500000}, - {0.125000,-0.375000,0.437500,0.375000,-0.250000,0.500000}, - {-0.437500,-0.250000,0.437500,-0.062500,-0.125000,0.500000}, - {0.062500,-0.250000,0.437500,0.437500,-0.125000,0.500000}, - {-0.500000,-0.125000,0.437500,0.000000,0.000000,0.500000}, - {0.000000,-0.125000,0.437500,0.500000,0.000000,0.500000}, - {-0.500000,0.000000,0.437500,0.500000,2.500000,0.500000}, - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-0.500000,-0.500000,0.437500,0.500000,2.500000,0.500000}, - }, - }, + local name = row[1] + local desc = row[2] + local craft_color_group = row[3] + local defcolor = row[4] + -- Node Definition + minetest.register_node("castle:long_tapestry_"..name, { + drawtype = "nodebox", + description = desc.." Tapestry (Long)", + --uses default wool textures for tapestry material + tiles = {"wool_"..name..".png^[transformR90"}, + --uses custom texture for tapestry material + --tiles = {"castle_tapestry_overlay.png^[colorize:" .. defcolor ..":205"}, + groups = {oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_defaults(), + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.3125,-0.5,0.4375,-0.1875,-0.375,0.5}, + {0.1875,-0.5,0.4375,0.3125,-0.375,0.5}, + {-0.375,-0.375,0.4375,-0.125,-0.25,0.5}, + {0.125,-0.375,0.4375,0.375,-0.25,0.5}, + {-0.4375,-0.25,0.4375,-0.0625,-0.125,0.5}, + {0.0625,-0.25,0.4375,0.4375,-0.125,0.5}, + {-0.5,-0.125,0.4375,0.0,0.0,0.5}, + {0.0,-0.125,0.4375,0.5,0.0,0.5}, + {-0.5,0.0,0.4375,0.5,2.5,0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,0.4375,0.5,2.5,0.5}, + }, + }, }) - if craft_color_group then -- Crafting from normal tapestry and wool minetest.register_craft({ @@ -137,38 +144,42 @@ for _, row in ipairs(tapestry.colours) do end for _, row in ipairs(tapestry.colours) do - local name = row[1] - local desc = row[2] - local craft_color_group = row[3] - -- Node Definition - minetest.register_node("castle:very_long_tapestry_"..name, { - drawtype = "nodebox", - description = desc.." Tapestry (Very Long)", - tiles = {"wool_"..name..".png"}, - groups = {oddly_breakable_by_hand=3,flammable=3,not_in_creative_inventory=1}, - sounds = default.node_sound_defaults(), - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.312500,-0.500000,0.437500,-0.187500,-0.375000,0.500000}, - {0.187500,-0.500000,0.437500,0.312500,-0.375000,0.500000}, - {-0.375000,-0.375000,0.437500,-0.125000,-0.250000,0.500000}, - {0.125000,-0.375000,0.437500,0.375000,-0.250000,0.500000}, - {-0.437500,-0.250000,0.437500,-0.062500,-0.125000,0.500000}, - {0.062500,-0.250000,0.437500,0.437500,-0.125000,0.500000}, - {-0.500000,-0.125000,0.437500,0.000000,0.000000,0.500000}, - {0.000000,-0.125000,0.437500,0.500000,0.000000,0.500000}, - {-0.500000,0.000000,0.437500,0.500000,3.500000,0.500000}, - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-0.500000,-0.500000,0.437500,0.500000,3.500000,0.500000}, - }, - }, + local name = row[1] + local desc = row[2] + local craft_color_group = row[3] + local defcolor = row[4] + -- Node Definition + minetest.register_node("castle:very_long_tapestry_"..name, { + drawtype = "nodebox", + description = desc.." Tapestry (Very Long)", + --uses default wool textures for tapestry material + tiles = {"wool_"..name..".png^[transformR90"}, + --uses custom texture for tapestry material + --tiles = {"castle_tapestry_overlay.png^[colorize:" .. defcolor ..":205"}, + groups = {oddly_breakable_by_hand=3,flammable=3}, + sounds = default.node_sound_defaults(), + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.3125,-0.5,0.4375,-0.1875,-0.375,0.5}, + {0.1875,-0.5,0.4375,0.3125,-0.375,0.5}, + {-0.375,-0.375,0.4375,-0.125,-0.25,0.5}, + {0.125,-0.375,0.4375,0.375,-0.25,0.5}, + {-0.4375,-0.25,0.4375,-0.0625,-0.125,0.5}, + {0.0625,-0.25,0.4375,0.4375,-0.125,0.5}, + {-0.5,-0.125,0.4375,0.0,0.0,0.5}, + {0.0,-0.125,0.4375,0.5,0.0,0.5}, + {-0.5,0.0,0.4375,0.5,3.5,0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,0.4375,0.5,3.5,0.5}, + }, + }, }) if craft_color_group then -- Crafting from long tapestry and wool @@ -179,4 +190,3 @@ for _, row in ipairs(tapestry.colours) do }) end end - diff --git a/castle/textures/LICENSE.txt b/castle/textures/LICENSE.txt index e2aefc5..7752294 100644 --- a/castle/textures/LICENSE.txt +++ b/castle/textures/LICENSE.txt @@ -1,21 +1,38 @@ -------------------------------------------- -All textures based on -original textures by: ??? +License Textures: Stuart Jones - WTFPL +-castle_crossbow_bolt_inv.png +-castle_crossbow_bolt_uv.png +-castle_crossbow_hit.png -License Textures: ??? +Licence Models: Stuart Jones - CC-BY-SA 3.0 +-castle_crossbow_bolt.b3d +-castle_crossbow_bolt.blend + +-------------------------------------------- + +textures based on Castle mod +original textures by Philipner ??? + +License Textures: CC-BY-SA 3.0 ??? -------------------------------------------- License Textures: Napiophelios - CC-BY-SA 3.0 +-castle_battleaxe.png -castle_corner_stonewall1.png -castle_corner_stonewall2.png -castle_crate.png -castle_crate_top.png +-castle_crossbow_bolt_inv.png +-castle_crossbow_hit.png +-castle_crossbow_inv.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 @@ -24,6 +41,8 @@ License Textures: Napiophelios - CC-BY-SA 3.0 -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 @@ -38,6 +57,7 @@ License Textures: Napiophelios - CC-BY-SA 3.0 -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 diff --git a/castle/textures/castle_crossbow_bolt_inv.png b/castle/textures/castle_crossbow_bolt_inv.png Binary files differnew file mode 100644 index 0000000..87cd847 --- /dev/null +++ b/castle/textures/castle_crossbow_bolt_inv.png diff --git a/castle/textures/castle_crossbow_hit.png b/castle/textures/castle_crossbow_hit.png Binary files differnew file mode 100644 index 0000000..0a2b2f3 --- /dev/null +++ b/castle/textures/castle_crossbow_hit.png diff --git a/castle/textures/castle_crossbow_inv.png b/castle/textures/castle_crossbow_inv.png Binary files differnew file mode 100644 index 0000000..39bcf07 --- /dev/null +++ b/castle/textures/castle_crossbow_inv.png diff --git a/castle/textures/castle_crossbow_loaded.png b/castle/textures/castle_crossbow_loaded.png Binary files differnew file mode 100644 index 0000000..ca2dca7 --- /dev/null +++ b/castle/textures/castle_crossbow_loaded.png diff --git a/castle/textures/castle_orb_day.png b/castle/textures/castle_orb_day.png Binary files differnew file mode 100644 index 0000000..3c12896 --- /dev/null +++ b/castle/textures/castle_orb_day.png diff --git a/castle/textures/castle_orb_day_weild.png b/castle/textures/castle_orb_day_weild.png Binary files differnew file mode 100644 index 0000000..1cfc6df --- /dev/null +++ b/castle/textures/castle_orb_day_weild.png diff --git a/castle/textures/castle_orb_night.png b/castle/textures/castle_orb_night.png Binary files differnew file mode 100644 index 0000000..2b062d1 --- /dev/null +++ b/castle/textures/castle_orb_night.png diff --git a/castle/textures/castle_orb_night_weild.png b/castle/textures/castle_orb_night_weild.png Binary files differnew file mode 100644 index 0000000..ded6e38 --- /dev/null +++ b/castle/textures/castle_orb_night_weild.png diff --git a/castle/textures/castle_tapestry_overlay.png b/castle/textures/castle_tapestry_overlay.png Binary files differnew file mode 100644 index 0000000..2ec8333 --- /dev/null +++ b/castle/textures/castle_tapestry_overlay.png diff --git a/castle/town_item.lua b/castle/town_item.lua index 57aeb37..6e2b4f8 100644 --- a/castle/town_item.lua +++ b/castle/town_item.lua @@ -13,6 +13,7 @@ minetest.register_node("castle:anvil",{ description = "Anvil", tiles = {"castle_steel.png"}, groups = {cracky=2,falling_node=1}, + sounds = default.node_sound_stone_defaults(), paramtype = "light", paramtype2 = "facedir", node_box = { @@ -42,6 +43,7 @@ minetest.register_node("castle:workbench",{ 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 ) @@ -139,7 +141,7 @@ minetest.register_abm( { action = function ( pos, node ) local meta = minetest.get_meta( pos ) local inv = meta:get_inventory() - local cresult, newinput, needed + 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 ) @@ -158,7 +160,6 @@ minetest.register_abm( { end } ) - local function has_locked_chest_privilege(meta, player) if player:get_player_name() ~= meta:get_string("owner") then return false @@ -166,7 +167,6 @@ local function has_locked_chest_privilege(meta, player) return true end - minetest.register_craft({ output = "castle:workbench", recipe = { @@ -182,6 +182,7 @@ minetest.register_node("castle:dungeon_stone", { tiles = {"castle_dungeon_stone.png"}, groups = {cracky=2}, paramtype = "light", + sounds = default.node_sound_stone_defaults(), }) minetest.register_craft({ @@ -204,6 +205,7 @@ minetest.register_node("castle: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) @@ -237,13 +239,6 @@ minetest.register_node("castle:crate", { 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:crate", recipe = { @@ -257,6 +252,7 @@ minetest.register_node("castle: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", }) @@ -273,6 +269,7 @@ minetest.register_node("castle:pavement_brick", { tiles = {"castle_pavement_brick.png"}, groups = {cracky=2}, paramtype = "light", + sounds = default.node_sound_stone_defaults(), }) minetest.register_craft({ @@ -290,6 +287,7 @@ minetest.register_node("castle:light",{ light_source = 14, tiles = {"castle_street_light.png"}, groups = {cracky=2}, + sounds = default.node_sound_glass_defaults(), paramtype = "light", }) @@ -302,3 +300,37 @@ minetest.register_craft({ } }) +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 |