Add in all standard Dreambuilder mods

except:  dropped future_ban, added give_initial_stuff
master
Vanessa Ezekowitz 2015-07-19 18:13:37 -04:00
parent 6fb1cee475
commit e09bdde7ed
156 changed files with 7087 additions and 171 deletions

1
mods/angled_walls Submodule

@ -0,0 +1 @@
Subproject commit 5efb6110c04e0aac73f80ac1cfcca5f4f61e2638

1
mods/areas Submodule

@ -0,0 +1 @@
Subproject commit 1ae80ba3f1616b9fe2096459503a84ed087d0a77

13
mods/bedrock/LICENSE.txt Normal file
View File

@ -0,0 +1,13 @@
+---- zlib/libpng license ----+
Copyright (c) 2013-2014 Calinou and contributors
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

1
mods/bedrock/depends.txt Normal file
View File

@ -0,0 +1 @@
default

41
mods/bedrock/init.lua Normal file
View File

@ -0,0 +1,41 @@
minetest.register_ore({
ore_type = "scatter",
ore = "bedrock:bedrock",
wherein = "default:stone",
clust_scarcity = 1 * 1 * 1,
clust_num_ores = 5,
clust_size = 2,
height_min = -30912, -- Engine changes can modify this value.
height_max = -30656, -- This ensures the bottom of the world is not even loaded.
})
minetest.register_ore({
ore_type = "scatter",
ore = "bedrock:deepstone",
wherein = "default:stone",
clust_scarcity = 1 * 1 * 1,
clust_num_ores = 5,
clust_size = 2,
height_min = -30656,
height_max = -30000,
})
minetest.register_node("bedrock:bedrock", {
description = "Bedrock",
tile_images = {"bedrock_bedrock.png"},
drop = "",
groups = {unbreakable = 1, not_in_creative_inventory = 1}, -- For Map Tools' admin pickaxe.
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("bedrock:deepstone", {
description = "Deepstone",
tile_images = {"bedrock_deepstone.png"},
drop = "default:stone", -- Intended.
groups = {cracky = 1},
sounds = default.node_sound_stone_defaults(),
})
if minetest.setting_getbool("log_mods") then
minetest.log("action", "[bedrock] loaded.")
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

1
mods/bees Submodule

@ -0,0 +1 @@
Subproject commit 68142731f3e7a2114a7eb2974d07be27e6d050b7

1
mods/blox Submodule

@ -0,0 +1 @@
Subproject commit 6d85b126978e58fd72ee943b60f5c10a3fb76117

1
mods/bobblocks Submodule

@ -0,0 +1 @@
Subproject commit 42f087b67f5eeb274adbc1a42de518ba1af7cfa3

View File

@ -0,0 +1 @@
default

180
mods/campfire/init.lua Normal file
View File

@ -0,0 +1,180 @@
minetest.register_craft({
output = "campfire:campfire",
recipe = {{'', 'default:stick', ''}, {'default:stick', '', 'default:stick'}}
})
minetest.register_node("campfire:campfire", {
description = "Camp Fire",
drawtype = "plantlike",
tiles = {"CampFire_off.png"},
walkable=false,
sunlight_propogates=true,
paramtype="light",
paramtype2 = "facedir",
groups = {oddly_breakable_by_hand=1},
legacy_facedir_simple = true,
sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", "Campfire")
local inv = meta:get_inventory()
inv:set_size("fuel", 1)
inv:set_size("src", 1)
inv:set_size("dst", 4)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty("fuel") then
return false
elseif not inv:is_empty("dst") then
return false
elseif not inv:is_empty("src") then
return false
end
return true
end,
})
minetest.register_node("campfire:campfire_active", {
description = "Campfire Active",
drawtype = "plantlike",
tiles = {{name="CampFire.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}},
light_source = 8,
paramtype="light",
walkable=false,
drop = "campfire:campfire",
groups = {cracky=2, not_in_creative_inventory=1},
legacy_facedir_simple = true,
sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", default.furnace_inactive_formspec)
meta:set_string("infotext", "Furnace");
local inv = meta:get_inventory()
inv:set_size("fuel", 1)
inv:set_size("src", 1)
inv:set_size("dst", 4)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty("fuel") then
return false
elseif not inv:is_empty("dst") then
return false
elseif not inv:is_empty("src") then
return false
end
return true
end,
})
function hacky_swap_node(pos,name)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
local meta0 = meta:to_table()
if node.name == name then
return
end
node.name = name
local meta0 = meta:to_table()
minetest.set_node(pos,node)
meta = minetest.get_meta(pos)
meta:from_table(meta0)
end
minetest.register_abm({
nodenames = {"campfire:campfire","campfire:campfire_active"},
interval = 1.0,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local meta = minetest.get_meta(pos)
for i, name in ipairs({
"fuel_totaltime",
"fuel_time",
"src_totaltime",
"src_time"
}) do
if meta:get_string(name) == "" then
meta:set_float(name, 0.0)
end
end
local inv = meta:get_inventory()
local srclist = inv:get_list("src")
local cooked = nil
if srclist then
cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
end
local was_active = false
if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
was_active = true
meta:set_float("fuel_time", meta:get_float("fuel_time") + 0.25)
meta:set_float("src_time", meta:get_float("src_time") + 0.25)
if cooked and cooked.item and meta:get_float("src_time") >= cooked.time then
-- check if there's room for output in "dst" list
if inv:room_for_item("dst",cooked.item) then
-- Put result in "dst" list
inv:add_item("dst", cooked.item)
-- take stuff from "src" list
srcstack = inv:get_stack("src", 1)
srcstack:take_item()
inv:set_stack("src", 1, srcstack)
else
print("Could not insert '"..cooked.item:to_string().."'")
end
meta:set_string("src_time", 0)
end
end
if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
local percent = math.floor(meta:get_float("fuel_time") /
meta:get_float("fuel_totaltime") * 100)
meta:set_string("infotext","Furnace active: "..percent.."%")
hacky_swap_node(pos,"campfire:campfire_active")
meta:set_string("formspec",
"size[8,9]"..
"image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:"..
(100-percent)..":default_furnace_fire_fg.png]"..
"list[current_name;fuel;2,3;1,1;]"..
"list[current_name;src;2,1;1,1;]"..
"list[current_name;dst;5,1;2,2;]"..
"list[current_player;main;0,5;8,4;]")
return
end
local fuel = nil
local cooked = nil
local fuellist = inv:get_list("fuel")
local srclist = inv:get_list("src")
if srclist then
cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
end
if fuellist then
fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
end
if fuel.time <= 0 then
meta:set_string("infotext","Put more wood on the fire!")
hacky_swap_node(pos,"campfire:campfire")
meta:set_string("formspec", default.furnace_inactive_formspec)
return
end
meta:set_string("fuel_totaltime", fuel.time)
meta:set_string("fuel_time", 0)
local stack = inv:get_stack("fuel", 1)
stack:take_item()
inv:set_stack("fuel", 1, stack)
end,
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

1
mods/carbone_mobs Submodule

@ -0,0 +1 @@
Subproject commit 09aa9d6f5d6fc6f10398b9d5bf978635e54297da

1
mods/carts Submodule

@ -0,0 +1 @@
Subproject commit 95f6f17cc83e319752725d4a46414a521b29830f

1
mods/castle Submodule

@ -0,0 +1 @@
Subproject commit 921cde19584e5231dec1b9a8c5b0a25e5f89de1e

1
mods/caverealms Submodule

@ -0,0 +1 @@
Subproject commit d65ceb30e2900c05799ea93437925b46a3e580d8

1
mods/coloredwood Submodule

@ -0,0 +1 @@
Subproject commit efbb5181459806c1cbe931db55840d46e35f173e

1
mods/colormachine Submodule

@ -0,0 +1 @@
Subproject commit 88e1aed681deb428fb131c6d0851e95620f76a09

40
mods/cottages/alias.lua Normal file
View File

@ -0,0 +1,40 @@
minetest.register_alias("random_buildings:roof", "cottages:roof_wood");
minetest.register_alias("random_buildings:roof_connector", "cottages:roof_connector_wood");
minetest.register_alias("random_buildings:roof_flat", "cottages:roof_flat_wood");
minetest.register_alias("random_buildings:roof_wood", "cottages:roof_wood");
minetest.register_alias("random_buildings:roof_connector_wood", "cottages:roof_connector_wood");
minetest.register_alias("random_buildings:roof_flat_wood", "cottages:roof_flat_wood");
minetest.register_alias("random_buildings:roof_straw", "cottages:roof_straw");
minetest.register_alias("random_buildings:roof_connector_straw", "cottages:roof_connector_straw");
minetest.register_alias("random_buildings:roof_flat_straw", "cottages:roof_flat_straw");
minetest.register_alias("random_buildings:barrel", "cottages:barrel");
minetest.register_alias("random_buildings:barrel_open", "cottages:barrel_open");
minetest.register_alias("random_buildings:barrel_lying", "cottages:barrel_lying");
minetest.register_alias("random_buildings:barrel_lying_open", "cottages:barrel_lying_open");
minetest.register_alias("random_buildings:tub", "cottages:tub");
minetest.register_alias("random_buildings:window_shutter_open", "cottages:window_shutter_open");
minetest.register_alias("random_buildings:window_shutter_closed", "cottages:window_shutter_closed");
minetest.register_alias("random_buildings:half_door", "cottages:half_door");
minetest.register_alias("random_buildings:half_door_inverted", "cottages:half_door_inverted");
minetest.register_alias("random_buildings:gate_closed", "cottages:gate_closed");
minetest.register_alias("random_buildings:gate_open", "cottages:gate_open");
minetest.register_alias("random_buildings:bed_foot", "cottages:bed_foot");
minetest.register_alias("random_buildings:bed_head", "cottages:bed_head");
minetest.register_alias("random_buildings:sleeping_mat", "cottages:sleeping_mat");
minetest.register_alias("random_buildings:loam", "cottages:loam");
minetest.register_alias("random_buildings:bench", "cottages:bench");
minetest.register_alias("random_buildings:table", "cottages:table");
minetest.register_alias("random_buildings:shelf", "cottages:shelf");
minetest.register_alias("random_buildings:stovepipe", "cottages:stovepipe");
minetest.register_alias("random_buildings:washing", "cottages:washing");
minetest.register_alias("random_buildings:wagon_wheel", "cottages:wagon_wheel");
minetest.register_alias("random_buildings:feldweg", "cottages:feldweg");
minetest.register_alias("random_buildings:straw_ground", "cottages:straw_ground");
minetest.register_alias("random_buildings:glass_pane", "cottages:glass_pane");
minetest.register_alias("random_buildings:straw_mat", "cottages:straw_mat");
minetest.register_alias("random_buildings:straw_bale", "cottages:straw_bale");
minetest.register_alias("random_buildings:straw", "cottages:straw");
minetest.register_alias("random_buildings:chest_private", "cottages:chest_private");
minetest.register_alias("random_buildings:chest_work", "cottages:chest_work");
minetest.register_alias("random_buildings:chest_storage", "cottages:chest_storage");

View File

@ -0,0 +1,5 @@
default
farming
stairs?
homedecor?
intllib?

38
mods/cottages/init.lua Normal file
View File

@ -0,0 +1,38 @@
-- Version: 2.0
-- Autor: Sokomine
-- License: GPLv3
--
-- Modified:
-- 23.01.14 Added conversion receipes in case of installed castle-mod (has its own anvil)
-- 23.01.14 Added hammer and anvil as decoration and for repairing tools.
-- Added hatches (wood and steel).
-- Changed the texture of the fence/handrail.
-- 17.01.13 Added alternate receipe for fences in case of interference due to xfences
-- 14.01.13 Added alternate receipes for roof parts in case homedecor is not installed.
-- Added receipe for stove pipe, tub and barrel.
-- Added stairs/slabs for dirt road, loam and clay
-- Added fence_small, fence_corner and fence_end, which are useful as handrails and fences
-- If two or more window shutters are placed above each other, they will now all close/open simultaneously.
-- Added threshing floor.
-- Added hand-driven mill.
cottages = {}
--cottages.config_use_mesh_barrel = false;
--cottages.config_use_mesh_handmill = true;
-- uncomment parts you do not want
dofile(minetest.get_modpath("cottages").."/nodes_furniture.lua");
dofile(minetest.get_modpath("cottages").."/nodes_historic.lua");
dofile(minetest.get_modpath("cottages").."/nodes_straw.lua");
dofile(minetest.get_modpath("cottages").."/nodes_anvil.lua");
dofile(minetest.get_modpath("cottages").."/nodes_doorlike.lua");
dofile(minetest.get_modpath("cottages").."/nodes_fences.lua");
dofile(minetest.get_modpath("cottages").."/nodes_roof.lua");
dofile(minetest.get_modpath("cottages").."/nodes_barrel.lua");
--dofile(minetest.get_modpath("cottages").."/nodes_chests.lua");
-- this is only required and useful if you run versions of the random_buildings mod where the nodes where defined inside that mod
dofile(minetest.get_modpath("cottages").."/alias.lua");

130
mods/cottages/locale/de.txt Normal file
View File

@ -0,0 +1,130 @@
# Translation by Xanthin
### alias.lua ###
### init.lua ###
### nodes_anvil.lua ###
Steel hammer for repairing tools on the anvil = Stahlhammer um Werkzeuge auf dem Amboss zu reparieren
anvil = Amboss
Anvil = Amboss
The workpiece slot is for damaged tools only. = Das Werkstueckfeld gilt nur fuer beschaedigtes Werkzeug.
Your tool has been repaired successfully. = Dein Werkzeug wurde erfolgreich repariert.
Your workpiece improves. = Dein Werkstueck verbessert sich.
Anvil (owned by %s) = Amboss (gehoert %s)
Workpiece: = Werkstueck
Optional = Moegliche
storage for = Aufbewahrung fuer
your hammer = deinen Hammer
Owner: %s = Besitzer: %s
Punch anvil with hammer to = Schlage mit dem Hammer auf den Amboss um
repair tool in workpiece-slot. = das Werkzeug im Werkstueckfeld zu reparieren.
### nodes_barrel.lua ###
Pour: = Eingiessen
Fill: = Ausgiessen
barrel (closed) = Fass (geschlossen)
barrel (open) = Fass (offen)
barrel (closed), lying somewhere = Liegendes Fass (geschlossen)
barrel (opened), lying somewhere = Liegendes Fass (offen)
tub = Bottich
### nodes_chests.lua ###
private NPC chest = Private NSC-Truhe
chest for work utils and kitchens = NSC-Truhe fuer Arbeitsutensilien und Kuechen
storage chest = NSC-Lagertruhe
### nodes_doorlike.lua ###
opened window shutters = Offene Fensterlaeden
closed window shutters = Geschlossene Fensterlaeden
half door = Kloentuer
half door inverted = Umgekehrte Kloentuer
closed fence gate = Geschlossenes Zauntor
opened fence gate = Offenes Zauntor
wooden hatch = Holzfalltuer
metal hatch = Metallfalltuer
### nodes_fences.lua ###
small fence = Kleiner Zaun
small fence corner = Kleiner Zaun (Ecke)
small fence end = Kleiner Zaun (Ende)
### nodes_furniture.lua ###
Bed (foot region) = Bett (Fussende)
Bed (head region) = Bett (Kopfende)
sleeping mat = Schlafmatte
simple wooden bench = Einfache Holzbank
table = Tisch
open storage shelf = Offenes Lagerregal
open storage shelf (in use) = Offenes Lagerregal (in Gebrauch)
open storage shelf (empty) = Offenes Lagerregal (leer)
stovepipe = Ofenrohr
washing place = Waschplatz
Sorry. This washing place is out of water. Please place it above water! = Entschuldige, dieser Waschplatz hat kein Wasser mehr. Bitte platziere ihn ueber Wasser!
You feel much cleaner after some washing. = Nach einer kleinen Waesche fuehlst du dich nun sauberer.
### nodes_historic.lua ###
wagon wheel = Wagenrad
dirt road = Feldweg
loam = Lehm
Dirt Road Stairs = Feldwegtreppe
Dirt Road, half height = Feldwegstufe
Loam Stairs = Lehmtreppe
Loam Slab = Lehmstufe
Clay Stairs = Tontreppe
Clay Slab = Tonstufe
straw ground for animals = Strohboden fuer Tiere
simple glass pane = Einfache Fensterscheibe
### nodes_roof.lua ###
Roof straw = Strohdach
Roof wood = Holzdach
Roof black = Schwarzes Dach
Roof red = Rotes Dach
Roof brown = Braunes Dach
Roof reet = Reetdach
Roof slate = Schieferdach
Roof connector straw = Strohdachverbinder
Roof connector wood = Holzdachverbinder
Roof connector black = Schwarzer Dachverbinder
Roof connector red = Roter Dachverbinder
Roof connector brown = Brauner Dachverbinder
Roof connector reet = Reet-Dachverbinder
Roof connector slate = Schiefer-Dachverbinder
Roof (flat) straw = Strohdach (flach)
Roof (flat) wood = Holzdach (flach)
Roof (flat) black = Schwarzes Dach (flach)
Roof (flat) red = Rotes Dach (flach)
Roof (flat) brown = Braunes Dach (flach)
Roof (flat) reet = Reetdach (flach)
Roof (flat) slate = Schieferdach (flach)
Vertical Slate = Vertikaler Schiefer
Reet for thatching = Reet
### nodes_straw.lua ###
layer of straw = Strohschicht
straw bale = Strohballen
straw = Stroh
threshing floor = Dreschboden
Threshing floor = Dreschboden
Threshing floor (owned by %s) = Dreschboden (gehoert %s)
Harvested wheat: = Geernteter Weizen
Straw: = Stroh
Seeds: = Koerner
Owner: %s = Besitzer: %s
Punch threshing floor with a stick = Schlage mit einem Stock auf den Dreschboden
to get straw and seeds from wheat. = um Stroh und Koerner vom Weizen zu bekommen.
You have threshed %s wheat (%s are left). = Du hast %s Weizenaehren gedroschen (%s bleiben uebrig).
You have threshed the last %s wheat. = Du hast die letzten %s Weizenaehren gedroschen.
mill, powered by punching = Muehle, durch Schlagen antreiben
Mill, powered by punching = Muehle, durch Schlagen antreiben
Mill, powered by punching (owned by %s) = Muehle, durch Schlagen antreiben (gehoert %s)
Wheat seeds: = Weizenkoerner
Flour: = Mehl
Mill = Muehle
Owner: %s = Besitzer: %s
Punch this hand-driven mill = Schlage auf diese handbetriebene Muehle
to convert wheat seeds into flour. = um Weizenkoerner in Mehl umzuwandeln.
You have grinded %s wheat seeds (%s are left). = Du hast %s Weizenkoerner gemahlen (%s bleiben uebrig).
You have grinded the last %s wheat seeds. = Du hast die letzten %s Weizenkoerner gemahlen.

View File

@ -0,0 +1,129 @@
# Template
### alias.lua ###
### init.lua ###
### nodes_anvil.lua ###
Steel hammer for repairing tools on the anvil =
anvil =
Anvil =
The workpiece slot is for damaged tools only. =
Your tool has been repaired successfully. =
Your workpiece improves. =
Anvil (owned by %s) =
Workpiece: =
Optional =
storage for =
your hammer =
Owner: %s =
Punch anvil with hammer to =
repair tool in workpiece-slot. =
### nodes_barrel.lua ###
Pour: =
Fill: =
barrel (closed) =
barrel (open) =
barrel (closed), lying somewhere =
barrel (opened), lying somewhere =
tub =
### nodes_chests.lua ###
private NPC chest =
chest for work utils and kitchens =
storage chest =
### nodes_doorlike.lua ###
opened window shutters =
closed window shutters =
half door =
half door inverted =
closed fence gate =
opened fence gate =
wooden hatch =
metal hatch =
### nodes_fences.lua ###
small fence =
small fence corner =
small fence end =
### nodes_furniture.lua ###
Bed (foot region) =
Bed (head region) =
sleeping mat =
simple wooden bench =
table =
open storage shelf =
open storage shelf (in use) =
open storage shelf (empty) =
stovepipe =
washing place =
Sorry. This washing place is out of water. Please place it above water! =
You feel much cleaner after some washing. =
### nodes_historic.lua ###
wagon wheel =
dirt road =
loam =
Dirt Road Stairs =
Dirt Road, half height =
Loam Stairs =
Loam Slab =
Clay Stairs =
Clay Slab =
straw ground for animals =
simple glass pane =
### nodes_roof.lua ###
Roof straw =
Roof wood =
Roof black =
Roof red =
Roof brown =
Roof reet =
Roof slate =
Roof connector straw =
Roof connector wood =
Roof connector black =
Roof connector red =
Roof connector brown =
Roof connector reet =
Roof connector slate =
Roof (flat) straw =
Roof (flat) wood =
Roof (flat) black =
Roof (flat) red =
Roof (flat) brown =
Roof (flat) reet =
Roof (flat) slate =
Vertical Slate =
Reet for thatching =
### nodes_straw.lua ###
layer of straw =
straw bale =
straw =
threshing floor =
Threshing floor =
Threshing floor (owned by %s) =
Harvested wheat: =
Straw: =
Seeds: =
Owner: %s =
Punch threshing floor with a stick =
to get straw and seeds from wheat. =
You have threshed %s wheat (%s are left). =
You have threshed the last %s wheat. =
mill, powered by punching =
Mill, powered by punching =
Mill, powered by punching (owned by %s) =
Wheat seeds: =
Flour: =
Mill =
Owner: %s =
Punch this hand-driven mill =
to convert wheat seeds into flour. =
You have grinded %s wheat seeds (%s are left). =
You have grinded the last %s wheat seeds. =

View File

@ -0,0 +1,543 @@
# Blender v2.69 (sub 0) OBJ File: 'barrel.blend'
# www.blender.org
o Cylinder
v 0.092835 -0.500001 -0.466712
v 0.092835 0.500000 -0.466712
v 0.264371 -0.500001 -0.395660
v 0.264371 0.500000 -0.395660
v 0.395660 -0.500001 -0.264371
v 0.395660 0.500000 -0.264371
v 0.466712 -0.500001 -0.092835
v 0.466712 0.500000 -0.092835
v 0.466712 -0.500001 0.092835
v 0.466712 0.500000 0.092835
v 0.395660 -0.500001 0.264371
v 0.395660 0.500000 0.264371
v 0.264371 -0.500001 0.395660
v 0.264371 0.500000 0.395660
v 0.092835 -0.500001 0.466712
v 0.092835 0.500000 0.466712
v -0.092835 -0.500001 0.466712
v -0.092835 0.500000 0.466712
v -0.264371 -0.500001 0.395660
v -0.264371 0.500000 0.395660
v -0.395660 -0.500001 0.264371
v -0.395660 0.500000 0.264371
v -0.466712 -0.500001 0.092835
v -0.466712 0.500000 0.092835
v -0.466712 -0.500001 -0.092835
v -0.466712 0.500000 -0.092835
v -0.395660 -0.500001 -0.264371
v -0.395660 0.500000 -0.264371
v -0.264371 -0.500001 -0.395660
v -0.264371 0.500000 -0.395660
v -0.092835 -0.500001 -0.466713
v -0.092835 0.500000 -0.466713
v 0.095930 0.413334 -0.482270
v 0.273184 -0.413334 -0.408849
v 0.408849 -0.413334 -0.273184
v 0.482270 -0.413334 -0.095929
v 0.482270 -0.413334 0.095930
v 0.408849 -0.413334 0.273184
v 0.273184 -0.413334 0.408849
v 0.095929 -0.413334 0.482270
v -0.095929 -0.413334 0.482270
v -0.273184 -0.413334 0.408849
v -0.408849 -0.413334 0.273184
v -0.482270 -0.413334 0.095929
v -0.482270 -0.413334 -0.095930
v -0.408849 -0.413334 -0.273184
v -0.273184 -0.413334 -0.408849
v -0.095929 -0.413334 -0.482270
v 0.095930 -0.413334 -0.482270
v 0.273184 0.413334 -0.408849
v 0.408849 0.413334 -0.273184
v 0.482270 0.413334 -0.095929
v 0.482270 0.413334 0.095930
v 0.408849 0.413334 0.273184
v 0.273184 0.413334 0.408849
v 0.095929 0.413334 0.482270
v -0.095929 0.413334 0.482270
v -0.273184 0.413334 0.408849
v -0.408849 0.413334 0.273184
v -0.482270 0.413334 0.095929
v -0.482270 0.413334 -0.095930
v -0.408849 0.413334 -0.273184
v -0.273184 0.413334 -0.408849
v -0.095929 0.413334 -0.482270
v 0.099128 0.114830 -0.498352
v 0.282294 -0.114831 -0.422482
v 0.422482 -0.114831 -0.282294
v 0.498352 -0.114831 -0.099128
v 0.498352 -0.114831 0.099128
v 0.422482 -0.114831 0.282294
v 0.282294 -0.114831 0.422482
v 0.099128 -0.114831 0.498352
v -0.099128 -0.114831 0.498352
v -0.282294 -0.114831 0.422482
v -0.422482 -0.114831 0.282294
v -0.498352 -0.114831 0.099128
v -0.498352 -0.114831 -0.099128
v -0.422482 -0.114831 -0.282294
v -0.282293 -0.114831 -0.422482
v -0.099128 -0.114831 -0.498352
v 0.099128 -0.114831 -0.498352
v 0.282294 0.114830 -0.422482
v 0.422482 0.114830 -0.282294
v 0.498352 0.114830 -0.099128
v 0.498352 0.114830 0.099128
v 0.422482 0.114830 0.282294
v 0.282294 0.114830 0.422482
v 0.099128 0.114830 0.498352
v -0.099128 0.114830 0.498352
v -0.282294 0.114830 0.422482
v -0.422482 0.114830 0.282294
v -0.498352 0.114830 0.099128
v -0.498352 0.114830 -0.099128
v -0.422482 0.114830 -0.282294
v -0.282293 0.114830 -0.422482
v -0.099128 0.114830 -0.498352
v 0.083551 -0.500001 -0.420041
v 0.083551 0.500000 -0.420041
v 0.237934 -0.500001 -0.356094
v 0.237934 0.500000 -0.356094
v 0.356094 -0.500001 -0.237934
v 0.356094 0.500000 -0.237934
v 0.420041 -0.500001 -0.083551
v 0.420041 0.500000 -0.083551
v 0.420041 -0.500001 0.083551
v 0.420041 0.500000 0.083551
v 0.356094 -0.500001 0.237934
v 0.356094 0.500000 0.237934
v 0.237934 -0.500001 0.356094
v 0.237934 0.500000 0.356094
v 0.083551 -0.500001 0.420041
v 0.083551 0.500000 0.420041
v -0.083551 -0.500001 0.420041
v -0.083551 0.500000 0.420041
v -0.237934 -0.500001 0.356094
v -0.237934 0.500000 0.356094
v -0.356094 -0.500001 0.237934
v -0.356094 0.500000 0.237934
v -0.420041 -0.500001 0.083551
v -0.420041 0.500000 0.083551
v -0.420041 -0.500001 -0.083551
v -0.420041 0.500000 -0.083551
v -0.356094 -0.500001 -0.237934
v -0.356094 0.500000 -0.237934
v -0.237934 -0.500001 -0.356094
v -0.237934 0.500000 -0.356094
v -0.083551 -0.500001 -0.420041
v -0.083551 0.500000 -0.420041
v 0.086337 0.413334 -0.434043
v 0.245866 -0.413335 -0.367964
v 0.367964 -0.413335 -0.245866
v 0.434043 -0.413335 -0.086336
v 0.434043 -0.413335 0.086337
v 0.367964 -0.413335 0.245866
v 0.245866 -0.413335 0.367964
v 0.086337 -0.413335 0.434043
v -0.086336 -0.413335 0.434043
v -0.245866 -0.413335 0.367964
v -0.367964 -0.413335 0.245866
v -0.434043 -0.413335 0.086337
v -0.434043 -0.413335 -0.086337
v -0.367964 -0.413335 -0.245866
v -0.245865 -0.413335 -0.367964
v -0.086336 -0.413335 -0.434043
v 0.086337 -0.413335 -0.434043
v 0.245866 0.413334 -0.367964
v 0.367964 0.413334 -0.245866
v 0.434043 0.413334 -0.086336
v 0.434043 0.413334 0.086337
v 0.367964 0.413334 0.245866
v 0.245866 0.413334 0.367964
v 0.086337 0.413334 0.434043
v -0.086336 0.413334 0.434043
v -0.245866 0.413334 0.367964
v -0.367964 0.413334 0.245866
v -0.434043 0.413334 0.086337
v -0.434043 0.413334 -0.086337
v -0.367964 0.413334 -0.245866
v -0.245865 0.413334 -0.367964
v -0.086336 0.413334 -0.434043
v 0.089216 0.114830 -0.448517
v 0.254064 -0.114831 -0.380234
v 0.380234 -0.114831 -0.254064
v 0.448517 -0.114831 -0.089215
v 0.448517 -0.114831 0.089216
v 0.380234 -0.114831 0.254064
v 0.254064 -0.114831 0.380234
v 0.089216 -0.114831 0.448517
v -0.089215 -0.114831 0.448517
v -0.254064 -0.114831 0.380234
v -0.380234 -0.114831 0.254064
v -0.448517 -0.114831 0.089216
v -0.448517 -0.114831 -0.089216
v -0.380234 -0.114831 -0.254064
v -0.254064 -0.114831 -0.380234
v -0.089215 -0.114831 -0.448517
v 0.089216 -0.114831 -0.448517
v 0.254064 0.114830 -0.380234
v 0.380234 0.114830 -0.254064
v 0.448517 0.114830 -0.089215
v 0.448517 0.114830 0.089216
v 0.380234 0.114830 0.254064
v 0.254064 0.114830 0.380234
v 0.089216 0.114830 0.448517
v -0.089215 0.114830 0.448517
v -0.254064 0.114830 0.380234
v -0.380234 0.114830 0.254064
v -0.448517 0.114830 0.089216
v -0.448517 0.114830 -0.089216
v -0.380234 0.114830 -0.254064
v -0.254064 0.114830 -0.380234
v -0.089215 0.114830 -0.448517
v 0.087776 -0.352645 -0.441280
v -0.087776 -0.352645 -0.441280
v -0.249965 -0.352645 -0.374099
v -0.374099 -0.352645 -0.249965
v -0.441280 -0.352645 -0.087776
v -0.441280 -0.352645 0.087776
v -0.374099 -0.352645 0.249965
v -0.249965 -0.352645 0.374099
v -0.087776 -0.352645 0.441280
v 0.087776 -0.352645 0.441280
v 0.249965 -0.352645 0.374099
v 0.374099 -0.352645 0.249965
v 0.441280 -0.352645 0.087776
v 0.441280 -0.352645 -0.087776
v 0.374099 -0.352645 -0.249965
v 0.249965 -0.352645 -0.374099
v 0.000000 -0.352645 0.000000
v -0.000000 -0.413334 0.000000
vt 0.211538 0.442308
vt 0.211538 0.467949
vt 0.108974 0.467949
vt 0.108974 0.442308
vt 0.314103 0.442308
vt 0.314103 0.467949
vt 0.416667 0.442308
vt 0.416667 0.467949
vt 0.006410 0.467949
vt 0.006410 0.442308
vt 0.211792 0.993590
vt 0.117562 0.954728
vt 0.262789 0.738327
vt 0.211538 0.006410
vt 0.108974 0.006410
vt 0.108974 0.032051
vt 0.211538 0.032051
vt 0.314103 0.006410
vt 0.314103 0.032051
vt 0.416667 0.006410
vt 0.416667 0.032051
vt 0.006410 0.006410
vt 0.006410 0.032051
vt 0.211361 0.993526
vt 0.117394 0.954505
vt 0.262040 0.737637
vt 0.045447 0.882467
vt 0.006475 0.788381
vt 0.006410 0.686569
vt 0.045263 0.592532
vt 0.117118 0.520586
vt 0.204627 0.488094
vt 0.312719 0.481748
vt 0.406687 0.520769
vt 0.478633 0.592807
vt 0.517605 0.686893
vt 0.517670 0.788705
vt 0.478816 0.882742
vt 0.406962 0.954687
vt 0.313044 0.993590
vt 0.045441 0.882922
vt 0.006410 0.789102
vt 0.006410 0.687551
vt 0.045442 0.593732
vt 0.117562 0.521925
vt 0.211793 0.483064
vt 0.313787 0.483064
vt 0.408016 0.521926
vt 0.480136 0.593732
vt 0.519168 0.687551
vt 0.519168 0.789103
vt 0.480136 0.882922
vt 0.408016 0.954728
vt 0.313786 0.993590
vt 0.416667 0.397436
vt 0.314103 0.397436
vt 0.211538 0.397436
vt 0.108974 0.397436
vt 0.006410 0.397436
vt 0.314103 0.185897
vt 0.314103 0.282051
vt 0.211538 0.282051
vt 0.211538 0.185897
vt 0.108974 0.282051
vt 0.108974 0.185897
vt 0.006410 0.282051
vt 0.006410 0.185897
vt 0.416667 0.185897
vt 0.416667 0.282051
vt 0.416667 0.076923
vt 0.314103 0.076923
vt 0.211538 0.076923
vt 0.108974 0.076923
vt 0.006410 0.076923
vt 0.429487 0.397436
vt 0.532051 0.397436
vt 0.532051 0.442308
vt 0.429487 0.442308
vt 0.634615 0.397436
vt 0.634615 0.442308
vt 0.737179 0.397436
vt 0.737179 0.442308
vt 0.839744 0.397436
vt 0.839744 0.442308
vt 0.532051 0.185897
vt 0.634615 0.185897
vt 0.634615 0.282051
vt 0.532051 0.282051
vt 0.737179 0.185897
vt 0.737179 0.282051
vt 0.839744 0.185897
vt 0.839744 0.282051
vt 0.429487 0.185897
vt 0.429487 0.282051
vt 0.429487 0.032051
vt 0.532051 0.032051
vt 0.532051 0.076923
vt 0.429487 0.076923
vt 0.634615 0.032051
vt 0.634615 0.076923
vt 0.737179 0.032051
vt 0.737179 0.076923
vt 0.839744 0.032051
vt 0.839744 0.076923
s off
f 14/1 110/2 112/3 16/4
f 12/5 108/6 110/2 14/1
f 10/7 106/8 108/6 12/5
f 8/4 104/3 106/9 10/10
f 6/1 102/2 104/3 8/4
f 4/5 100/6 102/2 6/1
f 2/7 98/8 100/6 4/5
f 32/4 128/3 98/9 2/10
f 30/1 126/2 128/3 32/4
f 28/5 124/6 126/2 30/1
f 26/7 122/8 124/6 28/5
f 24/4 120/3 122/9 26/10
f 22/1 118/2 120/3 24/4
f 20/5 116/6 118/2 22/1
f 18/7 114/8 116/6 20/5
f 16/4 112/3 114/9 18/10
f 145/11 130/12 210/13
f 13/14 15/15 111/16 109/17
f 11/18 13/14 109/17 107/19
f 9/20 11/18 107/19 105/21
f 7/15 9/22 105/23 103/16
f 5/14 7/15 103/16 101/17
f 3/18 5/14 101/17 99/19
f 1/20 3/18 99/19 97/21
f 31/15 1/22 97/23 127/16
f 29/14 31/15 127/16 125/17
f 27/18 29/14 125/17 123/19
f 25/20 27/18 123/19 121/21
f 23/15 25/22 121/23 119/16
f 21/14 23/15 119/16 117/17
f 19/18 21/14 117/17 115/19
f 17/20 19/18 115/19 113/21
f 15/15 17/22 113/23 111/16
f 194/24 195/25 209/26
f 195/25 196/27 209/26
f 196/27 197/28 209/26
f 197/28 198/29 209/26
f 198/29 199/30 209/26
f 199/30 200/31 209/26
f 200/31 201/32 209/26
f 201/32 202/33 209/26
f 202/33 203/34 209/26
f 203/34 204/35 209/26
f 204/35 205/36 209/26
f 205/36 206/37 209/26
f 206/37 207/38 209/26
f 207/38 208/39 209/26
f 208/39 193/40 209/26
f 193/40 194/24 209/26
f 130/12 131/41 210/13
f 131/41 132/42 210/13
f 132/42 133/43 210/13
f 133/43 134/44 210/13
f 134/44 135/45 210/13
f 135/45 136/46 210/13
f 136/46 137/47 210/13
f 137/47 138/48 210/13
f 138/48 139/49 210/13
f 139/49 140/50 210/13
f 140/50 141/51 210/13
f 141/51 142/52 210/13
f 142/52 143/53 210/13
f 143/53 144/54 210/13
f 144/54 145/11 210/13
s 1
f 33/55 2/7 4/5 50/56
f 50/56 4/5 6/1 51/57
f 51/57 6/1 8/4 52/58
f 52/58 8/4 10/10 53/59
f 53/55 10/7 12/5 54/56
f 54/56 12/5 14/1 55/57
f 55/57 14/1 16/4 56/58
f 56/58 16/4 18/10 57/59
f 57/55 18/7 20/5 58/56
f 58/56 20/5 22/1 59/57
f 59/57 22/1 24/4 60/58
f 60/58 24/4 26/10 61/59
f 61/55 26/7 28/5 62/56
f 62/56 28/5 30/1 63/57
f 64/58 32/4 2/10 33/59
f 63/57 30/1 32/4 64/58
f 66/60 82/61 83/62 67/63
f 67/63 83/62 84/64 68/65
f 68/65 84/64 85/66 69/67
f 69/68 85/69 86/61 70/60
f 70/60 86/61 87/62 71/63
f 71/63 87/62 88/64 72/65
f 72/65 88/64 89/66 73/67
f 73/68 89/69 90/61 74/60
f 74/60 90/61 91/62 75/63
f 75/63 91/62 92/64 76/65
f 76/65 92/64 93/66 77/67
f 77/68 93/69 94/61 78/60
f 78/60 94/61 95/62 79/63
f 80/65 96/64 65/66 81/67
f 79/63 95/62 96/64 80/65
f 65/69 33/55 50/56 82/61
f 82/61 50/56 51/57 83/62
f 83/62 51/57 52/58 84/64
f 84/64 52/58 53/59 85/66
f 85/69 53/55 54/56 86/61
f 86/61 54/56 55/57 87/62
f 87/62 55/57 56/58 88/64
f 88/64 56/58 57/59 89/66
f 89/69 57/55 58/56 90/61
f 90/61 58/56 59/57 91/62
f 91/62 59/57 60/58 92/64
f 92/64 60/58 61/59 93/66
f 93/69 61/55 62/56 94/61
f 94/61 62/56 63/57 95/62
f 96/64 64/58 33/59 65/66
f 95/62 63/57 64/58 96/64
f 1/21 49/70 34/71 3/19
f 3/19 34/71 35/72 5/17
f 5/17 35/72 36/73 7/16
f 7/16 36/73 37/74 9/23
f 9/21 37/70 38/71 11/19
f 11/19 38/71 39/72 13/17
f 13/17 39/72 40/73 15/16
f 15/16 40/73 41/74 17/23
f 17/21 41/70 42/71 19/19
f 19/19 42/71 43/72 21/17
f 21/17 43/72 44/73 23/16
f 23/16 44/73 45/74 25/23
f 25/21 45/70 46/71 27/19
f 27/19 46/71 47/72 29/17
f 31/16 48/73 49/74 1/23
f 29/17 47/72 48/73 31/16
f 49/70 81/68 66/60 34/71
f 34/71 66/60 67/63 35/72
f 35/72 67/63 68/65 36/73
f 36/73 68/65 69/67 37/74
f 37/70 69/68 70/60 38/71
f 38/71 70/60 71/63 39/72
f 39/72 71/63 72/65 40/73
f 40/73 72/65 73/67 41/74
f 41/70 73/68 74/60 42/71
f 42/71 74/60 75/63 43/72
f 43/72 75/63 76/65 44/73
f 44/73 76/65 77/67 45/74
f 45/70 77/68 78/60 46/71
f 46/71 78/60 79/63 47/72
f 48/73 80/65 81/67 49/74
f 47/72 79/63 80/65 48/73
f 65/69 82/61 66/60 81/68
f 129/75 146/76 100/77 98/78
f 146/76 147/79 102/80 100/77
f 147/79 148/81 104/82 102/80
f 148/81 149/83 106/84 104/82
f 149/75 150/76 108/77 106/78
f 150/76 151/79 110/80 108/77
f 151/79 152/81 112/82 110/80
f 152/81 153/83 114/84 112/82
f 153/75 154/76 116/77 114/78
f 154/76 155/79 118/80 116/77
f 155/79 156/81 120/82 118/80
f 156/81 157/83 122/84 120/82
f 157/75 158/76 124/77 122/78
f 158/76 159/79 126/80 124/77
f 160/81 129/83 98/84 128/82
f 159/79 160/81 128/82 126/80
f 162/85 163/86 179/87 178/88
f 163/86 164/89 180/90 179/87
f 164/89 165/91 181/92 180/90
f 165/93 166/85 182/88 181/94
f 166/85 167/86 183/87 182/88
f 167/86 168/89 184/90 183/87
f 168/89 169/91 185/92 184/90
f 169/93 170/85 186/88 185/94
f 170/85 171/86 187/87 186/88
f 171/86 172/89 188/90 187/87
f 172/89 173/91 189/92 188/90
f 173/93 174/85 190/88 189/94
f 174/85 175/86 191/87 190/88
f 176/89 177/91 161/92 192/90
f 175/86 176/89 192/90 191/87
f 161/94 178/88 146/76 129/75
f 178/88 179/87 147/79 146/76
f 179/87 180/90 148/81 147/79
f 180/90 181/92 149/83 148/81
f 181/94 182/88 150/76 149/75
f 182/88 183/87 151/79 150/76
f 183/87 184/90 152/81 151/79
f 184/90 185/92 153/83 152/81
f 185/94 186/88 154/76 153/75
f 186/88 187/87 155/79 154/76
f 187/87 188/90 156/81 155/79
f 188/90 189/92 157/83 156/81
f 189/94 190/88 158/76 157/75
f 190/88 191/87 159/79 158/76
f 192/90 161/92 129/83 160/81
f 191/87 192/90 160/81 159/79
f 97/95 99/96 130/97 145/98
f 99/96 101/99 131/100 130/97
f 101/99 103/101 132/102 131/100
f 103/101 105/103 133/104 132/102
f 105/95 107/96 134/97 133/98
f 107/96 109/99 135/100 134/97
f 109/99 111/101 136/102 135/100
f 111/101 113/103 137/104 136/102
f 113/95 115/96 138/97 137/98
f 115/96 117/99 139/100 138/97
f 117/99 119/101 140/102 139/100
f 119/101 121/103 141/104 140/102
f 121/95 123/96 142/97 141/98
f 123/96 125/99 143/100 142/97
f 127/101 97/103 145/104 144/102
f 125/99 127/101 144/102 143/100
f 193/98 208/97 162/85 177/93
f 208/97 207/100 163/86 162/85
f 207/100 206/102 164/89 163/86
f 206/102 205/104 165/91 164/89
f 205/98 204/97 166/85 165/93
f 204/97 203/100 167/86 166/85
f 203/100 202/102 168/89 167/86
f 202/102 201/104 169/91 168/89
f 201/98 200/97 170/85 169/93
f 200/97 199/100 171/86 170/85
f 199/100 198/102 172/89 171/86
f 198/102 197/104 173/91 172/89
f 197/98 196/97 174/85 173/93
f 196/97 195/100 175/86 174/85
f 194/102 193/104 177/91 176/89
f 195/100 194/102 176/89 175/86
f 161/94 177/93 162/85 178/88

View File

@ -0,0 +1,453 @@
# Blender v2.69 (sub 0) OBJ File: 'barrel-closed.blend'
# www.blender.org
o Cylinder
v 0.092835 -0.500001 -0.466712
v 0.092835 0.500000 -0.466712
v 0.264371 -0.500001 -0.395660
v 0.264371 0.500000 -0.395660
v 0.395660 -0.500001 -0.264371
v 0.395660 0.500000 -0.264371
v 0.466712 -0.500001 -0.092835
v 0.466712 0.500000 -0.092835
v 0.466712 -0.500001 0.092835
v 0.466712 0.500000 0.092835
v 0.395660 -0.500001 0.264371
v 0.395660 0.500000 0.264371
v 0.264371 -0.500001 0.395660
v 0.264371 0.500000 0.395660
v 0.092835 -0.500001 0.466712
v 0.092835 0.500000 0.466712
v -0.092835 -0.500001 0.466712
v -0.092835 0.500000 0.466712
v -0.264371 -0.500001 0.395660
v -0.264371 0.500000 0.395660
v -0.395660 -0.500001 0.264371
v -0.395660 0.500000 0.264371
v -0.466712 -0.500001 0.092835
v -0.466712 0.500000 0.092835
v -0.466712 -0.500001 -0.092835
v -0.466712 0.500000 -0.092835
v -0.395660 -0.500001 -0.264371
v -0.395660 0.500000 -0.264371
v -0.264371 -0.500001 -0.395660
v -0.264371 0.500000 -0.395660
v -0.092835 -0.500001 -0.466713
v -0.092835 0.500000 -0.466713
v 0.095930 0.413334 -0.482270
v 0.273184 -0.413334 -0.408849
v 0.408849 -0.413334 -0.273184
v 0.482270 -0.413334 -0.095929
v 0.482270 -0.413334 0.095930
v 0.408849 -0.413334 0.273184
v 0.273184 -0.413334 0.408849
v 0.095929 -0.413334 0.482270
v -0.095929 -0.413334 0.482270
v -0.273184 -0.413334 0.408849
v -0.408849 -0.413334 0.273184
v -0.482270 -0.413334 0.095929
v -0.482270 -0.413334 -0.095930
v -0.408849 -0.413334 -0.273184
v -0.273184 -0.413334 -0.408849
v -0.095929 -0.413334 -0.482270
v 0.095930 -0.413334 -0.482270
v 0.273184 0.413334 -0.408849
v 0.408849 0.413334 -0.273184
v 0.482270 0.413334 -0.095929
v 0.482270 0.413334 0.095930
v 0.408849 0.413334 0.273184
v 0.273184 0.413334 0.408849
v 0.095929 0.413334 0.482270
v -0.095929 0.413334 0.482270
v -0.273184 0.413334 0.408849
v -0.408849 0.413334 0.273184
v -0.482270 0.413334 0.095929
v -0.482270 0.413334 -0.095930
v -0.408849 0.413334 -0.273184
v -0.273184 0.413334 -0.408849
v -0.095929 0.413334 -0.482270
v 0.099128 0.114830 -0.498352
v 0.282294 -0.114831 -0.422482
v 0.422482 -0.114831 -0.282294
v 0.498352 -0.114831 -0.099128
v 0.498352 -0.114831 0.099128
v 0.422482 -0.114831 0.282294
v 0.282294 -0.114831 0.422482
v 0.099128 -0.114831 0.498352
v -0.099128 -0.114831 0.498352
v -0.282294 -0.114831 0.422482
v -0.422482 -0.114831 0.282294
v -0.498352 -0.114831 0.099128
v -0.498352 -0.114831 -0.099128
v -0.422482 -0.114831 -0.282294
v -0.282293 -0.114831 -0.422482
v -0.099128 -0.114831 -0.498352
v 0.099128 -0.114831 -0.498352
v 0.282294 0.114830 -0.422482
v 0.422482 0.114830 -0.282294
v 0.498352 0.114830 -0.099128
v 0.498352 0.114830 0.099128
v 0.422482 0.114830 0.282294
v 0.282294 0.114830 0.422482
v 0.099128 0.114830 0.498352
v -0.099128 0.114830 0.498352
v -0.282294 0.114830 0.422482
v -0.422482 0.114830 0.282294
v -0.498352 0.114830 0.099128
v -0.498352 0.114830 -0.099128
v -0.422482 0.114830 -0.282294
v -0.282293 0.114830 -0.422482
v -0.099128 0.114830 -0.498352
v 0.083551 -0.500001 -0.420041
v 0.083551 0.500000 -0.420041
v 0.237934 -0.500001 -0.356094
v 0.237934 0.500000 -0.356094
v 0.356094 -0.500001 -0.237934
v 0.356094 0.500000 -0.237934
v 0.420041 -0.500001 -0.083551
v 0.420041 0.500000 -0.083551
v 0.420041 -0.500001 0.083551
v 0.420041 0.500000 0.083551
v 0.356094 -0.500001 0.237934
v 0.356094 0.500000 0.237934
v 0.237934 -0.500001 0.356094
v 0.237934 0.500000 0.356094
v 0.083551 -0.500001 0.420041
v 0.083551 0.500000 0.420041
v -0.083551 -0.500001 0.420041
v -0.083551 0.500000 0.420041
v -0.237934 -0.500001 0.356094
v -0.237934 0.500000 0.356094
v -0.356094 -0.500001 0.237934
v -0.356094 0.500000 0.237934
v -0.420041 -0.500001 0.083551
v -0.420041 0.500000 0.083551
v -0.420041 -0.500001 -0.083551
v -0.420041 0.500000 -0.083551
v -0.356094 -0.500001 -0.237934
v -0.356094 0.500000 -0.237934
v -0.237934 -0.500001 -0.356094
v -0.237934 0.500000 -0.356094
v -0.083551 -0.500001 -0.420041
v -0.083551 0.500000 -0.420041
v 0.086337 0.413334 -0.434043
v 0.245866 -0.413335 -0.367964
v 0.367964 -0.413335 -0.245866
v 0.434043 -0.413335 -0.086336
v 0.434043 -0.413335 0.086337
v 0.367964 -0.413335 0.245866
v 0.245866 -0.413335 0.367964
v 0.086337 -0.413335 0.434043
v -0.086336 -0.413335 0.434043
v -0.245866 -0.413335 0.367964
v -0.367964 -0.413335 0.245866
v -0.434043 -0.413335 0.086337
v -0.434043 -0.413335 -0.086337
v -0.367964 -0.413335 -0.245866
v -0.245865 -0.413335 -0.367964
v -0.086336 -0.413335 -0.434043
v 0.086337 -0.413335 -0.434043
v 0.245866 0.413334 -0.367964
v 0.367964 0.413334 -0.245866
v 0.434043 0.413334 -0.086336
v 0.434043 0.413334 0.086337
v 0.367964 0.413334 0.245866
v 0.245866 0.413334 0.367964
v 0.086337 0.413334 0.434043
v -0.086336 0.413334 0.434043
v -0.245866 0.413334 0.367964
v -0.367964 0.413334 0.245866
v -0.434043 0.413334 0.086337
v -0.434043 0.413334 -0.086337
v -0.367964 0.413334 -0.245866
v -0.245865 0.413334 -0.367964
v -0.086336 0.413334 -0.434043
v 0.087776 0.428605 -0.441280
v -0.087776 0.428605 -0.441280
v -0.249965 0.428605 -0.374099
v -0.374099 0.428605 -0.249965
v -0.441280 0.428605 -0.087776
v -0.441280 0.428605 0.087776
v -0.374099 0.428605 0.249965
v -0.249965 0.428605 0.374099
v -0.087776 0.428605 0.441280
v 0.087776 0.428605 0.441280
v 0.249965 0.428605 0.374099
v 0.374099 0.428605 0.249965
v 0.441280 0.428605 0.087776
v 0.441280 0.428605 -0.087776
v 0.374099 0.428605 -0.249965
v 0.249965 0.428605 -0.374099
v 0.000000 0.428605 0.000000
v -0.000000 -0.413334 0.000000
vt 0.211538 0.442308
vt 0.211538 0.467949
vt 0.108974 0.467949
vt 0.108974 0.442308
vt 0.314103 0.442308
vt 0.314103 0.467949
vt 0.416667 0.442308
vt 0.416667 0.467949
vt 0.006410 0.467949
vt 0.006410 0.442308
vt 0.211792 0.993590
vt 0.117562 0.954728
vt 0.262789 0.738327
vt 0.211538 0.006410
vt 0.108974 0.006410
vt 0.108974 0.032051
vt 0.211538 0.032051
vt 0.314103 0.006410
vt 0.314103 0.032051
vt 0.416667 0.006410
vt 0.416667 0.032051
vt 0.006410 0.006410
vt 0.006410 0.032051
vt 0.211361 0.993526
vt 0.117394 0.954505
vt 0.262040 0.737637
vt 0.045447 0.882467
vt 0.006475 0.788381
vt 0.006410 0.686569
vt 0.045263 0.592532
vt 0.117118 0.520586
vt 0.204627 0.488094
vt 0.312719 0.481748
vt 0.406687 0.520769
vt 0.478633 0.592807
vt 0.517605 0.686893
vt 0.517670 0.788705
vt 0.478816 0.882742
vt 0.406962 0.954687
vt 0.313044 0.993590
vt 0.045441 0.882922
vt 0.006410 0.789102
vt 0.006410 0.687551
vt 0.045442 0.593732
vt 0.117562 0.521925
vt 0.211793 0.483064
vt 0.313787 0.483064
vt 0.408016 0.521926
vt 0.480136 0.593732
vt 0.519168 0.687551
vt 0.519168 0.789103
vt 0.480136 0.882922
vt 0.408016 0.954728
vt 0.313786 0.993590
vt 0.416667 0.397436
vt 0.314103 0.397436
vt 0.211538 0.397436
vt 0.108974 0.397436
vt 0.006410 0.397436
vt 0.314103 0.185897
vt 0.314103 0.282051
vt 0.211538 0.282051
vt 0.211538 0.185897
vt 0.108974 0.282051
vt 0.108974 0.185897
vt 0.006410 0.282051
vt 0.006410 0.185897
vt 0.416667 0.185897
vt 0.416667 0.282051
vt 0.416667 0.076923
vt 0.314103 0.076923
vt 0.211538 0.076923
vt 0.108974 0.076923
vt 0.006410 0.076923
vt 0.429487 0.397436
vt 0.532051 0.397436
vt 0.532051 0.442308
vt 0.429487 0.442308
vt 0.634615 0.397436
vt 0.634615 0.442308
vt 0.737179 0.397436
vt 0.737179 0.442308
vt 0.839744 0.397436
vt 0.839744 0.442308
vt 0.429487 0.032051
vt 0.532051 0.032051
vt 0.532051 0.076923
vt 0.429487 0.076923
vt 0.634615 0.032051
vt 0.634615 0.076923
vt 0.737179 0.032051
vt 0.737179 0.076923
vt 0.839744 0.032051
vt 0.839744 0.076923
s off
f 14/1 110/2 112/3 16/4
f 12/5 108/6 110/2 14/1
f 10/7 106/8 108/6 12/5
f 8/4 104/3 106/9 10/10
f 6/1 102/2 104/3 8/4
f 4/5 100/6 102/2 6/1
f 2/7 98/8 100/6 4/5
f 32/4 128/3 98/9 2/10
f 30/1 126/2 128/3 32/4
f 28/5 124/6 126/2 30/1
f 26/7 122/8 124/6 28/5
f 24/4 120/3 122/9 26/10
f 22/1 118/2 120/3 24/4
f 20/5 116/6 118/2 22/1
f 18/7 114/8 116/6 20/5
f 16/4 112/3 114/9 18/10
f 145/11 130/12 178/13
f 13/14 15/15 111/16 109/17
f 11/18 13/14 109/17 107/19
f 9/20 11/18 107/19 105/21
f 7/15 9/22 105/23 103/16
f 5/14 7/15 103/16 101/17
f 3/18 5/14 101/17 99/19
f 1/20 3/18 99/19 97/21
f 31/15 1/22 97/23 127/16
f 29/14 31/15 127/16 125/17
f 27/18 29/14 125/17 123/19
f 25/20 27/18 123/19 121/21
f 23/15 25/22 121/23 119/16
f 21/14 23/15 119/16 117/17
f 19/18 21/14 117/17 115/19
f 17/20 19/18 115/19 113/21
f 15/15 17/22 113/23 111/16
f 162/24 163/25 177/26
f 163/25 164/27 177/26
f 164/27 165/28 177/26
f 165/28 166/29 177/26
f 166/29 167/30 177/26
f 167/30 168/31 177/26
f 168/31 169/32 177/26
f 169/32 170/33 177/26
f 170/33 171/34 177/26
f 171/34 172/35 177/26
f 172/35 173/36 177/26
f 173/36 174/37 177/26
f 174/37 175/38 177/26
f 175/38 176/39 177/26
f 176/39 161/40 177/26
f 161/40 162/24 177/26
f 130/12 131/41 178/13
f 131/41 132/42 178/13
f 132/42 133/43 178/13
f 133/43 134/44 178/13
f 134/44 135/45 178/13
f 135/45 136/46 178/13
f 136/46 137/47 178/13
f 137/47 138/48 178/13
f 138/48 139/49 178/13
f 139/49 140/50 178/13
f 140/50 141/51 178/13
f 141/51 142/52 178/13
f 142/52 143/53 178/13
f 143/53 144/54 178/13
f 144/54 145/11 178/13
s 1
f 33/55 2/7 4/5 50/56
f 50/56 4/5 6/1 51/57
f 51/57 6/1 8/4 52/58
f 52/58 8/4 10/10 53/59
f 53/55 10/7 12/5 54/56
f 54/56 12/5 14/1 55/57
f 55/57 14/1 16/4 56/58
f 56/58 16/4 18/10 57/59
f 57/55 18/7 20/5 58/56
f 58/56 20/5 22/1 59/57
f 59/57 22/1 24/4 60/58
f 60/58 24/4 26/10 61/59
f 61/55 26/7 28/5 62/56
f 62/56 28/5 30/1 63/57
f 64/58 32/4 2/10 33/59
f 63/57 30/1 32/4 64/58
f 66/60 82/61 83/62 67/63
f 67/63 83/62 84/64 68/65
f 68/65 84/64 85/66 69/67
f 69/68 85/69 86/61 70/60
f 70/60 86/61 87/62 71/63
f 71/63 87/62 88/64 72/65
f 72/65 88/64 89/66 73/67
f 73/68 89/69 90/61 74/60
f 74/60 90/61 91/62 75/63
f 75/63 91/62 92/64 76/65
f 76/65 92/64 93/66 77/67
f 77/68 93/69 94/61 78/60
f 78/60 94/61 95/62 79/63
f 80/65 96/64 65/66 81/67
f 79/63 95/62 96/64 80/65
f 65/69 33/55 50/56 82/61
f 82/61 50/56 51/57 83/62
f 83/62 51/57 52/58 84/64
f 84/64 52/58 53/59 85/66
f 85/69 53/55 54/56 86/61
f 86/61 54/56 55/57 87/62
f 87/62 55/57 56/58 88/64
f 88/64 56/58 57/59 89/66
f 89/69 57/55 58/56 90/61
f 90/61 58/56 59/57 91/62
f 91/62 59/57 60/58 92/64
f 92/64 60/58 61/59 93/66
f 93/69 61/55 62/56 94/61
f 94/61 62/56 63/57 95/62
f 96/64 64/58 33/59 65/66
f 95/62 63/57 64/58 96/64
f 1/21 49/70 34/71 3/19
f 3/19 34/71 35/72 5/17
f 5/17 35/72 36/73 7/16
f 7/16 36/73 37/74 9/23
f 9/21 37/70 38/71 11/19
f 11/19 38/71 39/72 13/17
f 13/17 39/72 40/73 15/16
f 15/16 40/73 41/74 17/23
f 17/21 41/70 42/71 19/19
f 19/19 42/71 43/72 21/17
f 21/17 43/72 44/73 23/16
f 23/16 44/73 45/74 25/23
f 25/21 45/70 46/71 27/19
f 27/19 46/71 47/72 29/17
f 31/16 48/73 49/74 1/23
f 29/17 47/72 48/73 31/16
f 49/70 81/68 66/60 34/71
f 34/71 66/60 67/63 35/72
f 35/72 67/63 68/65 36/73
f 36/73 68/65 69/67 37/74
f 37/70 69/68 70/60 38/71
f 38/71 70/60 71/63 39/72
f 39/72 71/63 72/65 40/73
f 40/73 72/65 73/67 41/74
f 41/70 73/68 74/60 42/71
f 42/71 74/60 75/63 43/72
f 43/72 75/63 76/65 44/73
f 44/73 76/65 77/67 45/74
f 45/70 77/68 78/60 46/71
f 46/71 78/60 79/63 47/72
f 48/73 80/65 81/67 49/74
f 47/72 79/63 80/65 48/73
f 65/69 82/61 66/60 81/68
f 129/75 146/76 100/77 98/78
f 146/76 147/79 102/80 100/77
f 147/79 148/81 104/82 102/80
f 148/81 149/83 106/84 104/82
f 149/75 150/76 108/77 106/78
f 150/76 151/79 110/80 108/77
f 151/79 152/81 112/82 110/80
f 152/81 153/83 114/84 112/82
f 153/75 154/76 116/77 114/78
f 154/76 155/79 118/80 116/77
f 155/79 156/81 120/82 118/80
f 156/81 157/83 122/84 120/82
f 157/75 158/76 124/77 122/78
f 158/76 159/79 126/80 124/77
f 160/81 129/83 98/84 128/82
f 159/79 160/81 128/82 126/80
f 97/85 99/86 130/87 145/88
f 99/86 101/89 131/90 130/87
f 101/89 103/91 132/92 131/90
f 103/91 105/93 133/94 132/92
f 105/85 107/86 134/87 133/88
f 107/86 109/89 135/90 134/87
f 109/89 111/91 136/92 135/90
f 111/91 113/93 137/94 136/92
f 113/85 115/86 138/87 137/88
f 115/86 117/89 139/90 138/87
f 117/89 119/91 140/92 139/90
f 119/91 121/93 141/94 140/92
f 121/85 123/86 142/87 141/88
f 123/86 125/89 143/90 142/87
f 127/91 97/93 145/94 144/92
f 125/89 127/91 144/92 143/90

View File

@ -0,0 +1,453 @@
# Blender v2.69 (sub 0) OBJ File: 'barrel-closed.blend'
# www.blender.org
o Cylinder
v 0.500001 0.092835 -0.466712
v -0.500000 0.092835 -0.466712
v 0.500001 0.264371 -0.395660
v -0.500000 0.264371 -0.395660
v 0.500001 0.395660 -0.264371
v -0.500000 0.395660 -0.264371
v 0.500001 0.466712 -0.092835
v -0.500000 0.466713 -0.092835
v 0.500001 0.466712 0.092835
v -0.500000 0.466713 0.092835
v 0.500001 0.395660 0.264371
v -0.500000 0.395660 0.264371
v 0.500001 0.264371 0.395660
v -0.500000 0.264371 0.395660
v 0.500001 0.092835 0.466712
v -0.500000 0.092835 0.466712
v 0.500001 -0.092835 0.466712
v -0.500000 -0.092835 0.466712
v 0.500001 -0.264371 0.395660
v -0.500000 -0.264371 0.395660
v 0.500001 -0.395660 0.264372
v -0.500000 -0.395660 0.264371
v 0.500001 -0.466713 0.092835
v -0.500000 -0.466712 0.092835
v 0.500001 -0.466713 -0.092835
v -0.500000 -0.466712 -0.092835
v 0.500001 -0.395660 -0.264371
v -0.500000 -0.395660 -0.264372
v 0.500001 -0.264371 -0.395660
v -0.500000 -0.264371 -0.395660
v 0.500001 -0.092835 -0.466712
v -0.500000 -0.092835 -0.466713
v -0.413334 0.095930 -0.482270
v 0.413335 0.273184 -0.408849
v 0.413335 0.408849 -0.273184
v 0.413335 0.482270 -0.095929
v 0.413335 0.482270 0.095930
v 0.413335 0.408849 0.273184
v 0.413334 0.273184 0.408849
v 0.413334 0.095929 0.482270
v 0.413334 -0.095930 0.482270
v 0.413334 -0.273184 0.408849
v 0.413334 -0.408849 0.273184
v 0.413334 -0.482270 0.095930
v 0.413334 -0.482270 -0.095929
v 0.413334 -0.408849 -0.273184
v 0.413334 -0.273184 -0.408849
v 0.413334 -0.095929 -0.482270
v 0.413335 0.095929 -0.482270
v -0.413334 0.273184 -0.408849
v -0.413334 0.408849 -0.273184
v -0.413334 0.482270 -0.095929
v -0.413334 0.482270 0.095929
v -0.413334 0.408849 0.273184
v -0.413334 0.273184 0.408849
v -0.413334 0.095930 0.482270
v -0.413334 -0.095929 0.482270
v -0.413334 -0.273184 0.408849
v -0.413334 -0.408849 0.273184
v -0.413334 -0.482270 0.095929
v -0.413334 -0.482270 -0.095930
v -0.413334 -0.408849 -0.273184
v -0.413334 -0.273184 -0.408849
v -0.413334 -0.095929 -0.482270
v -0.114830 0.099128 -0.498352
v 0.114831 0.282294 -0.422482
v 0.114831 0.422482 -0.282294
v 0.114831 0.498352 -0.099128
v 0.114831 0.498352 0.099128
v 0.114831 0.422482 0.282294
v 0.114831 0.282294 0.422482
v 0.114831 0.099128 0.498352
v 0.114831 -0.099128 0.498352
v 0.114831 -0.282294 0.422482
v 0.114831 -0.422482 0.282294
v 0.114831 -0.498352 0.099128
v 0.114831 -0.498352 -0.099128
v 0.114831 -0.422482 -0.282294
v 0.114831 -0.282293 -0.422482
v 0.114831 -0.099128 -0.498352
v 0.114831 0.099128 -0.498352
v -0.114830 0.282294 -0.422482
v -0.114830 0.422482 -0.282294
v -0.114830 0.498352 -0.099128
v -0.114830 0.498352 0.099128
v -0.114830 0.422482 0.282294
v -0.114830 0.282294 0.422482
v -0.114830 0.099128 0.498352
v -0.114830 -0.099128 0.498352
v -0.114830 -0.282293 0.422482
v -0.114830 -0.422482 0.282294
v -0.114830 -0.498352 0.099128
v -0.114830 -0.498352 -0.099128
v -0.114830 -0.422482 -0.282294
v -0.114830 -0.282293 -0.422482
v -0.114830 -0.099128 -0.498352
v 0.500001 0.083551 -0.420041
v -0.500000 0.083552 -0.420041
v 0.500001 0.237934 -0.356094
v -0.500000 0.237934 -0.356094
v 0.500001 0.356094 -0.237934
v -0.500000 0.356094 -0.237934
v 0.500001 0.420041 -0.083551
v -0.500000 0.420041 -0.083551
v 0.500001 0.420041 0.083552
v -0.500000 0.420041 0.083551
v 0.500001 0.356094 0.237934
v -0.500000 0.356094 0.237934
v 0.500001 0.237934 0.356094
v -0.500000 0.237934 0.356094
v 0.500001 0.083551 0.420041
v -0.500000 0.083551 0.420041
v 0.500001 -0.083551 0.420041
v -0.500000 -0.083551 0.420041
v 0.500001 -0.237934 0.356094
v -0.500000 -0.237934 0.356094
v 0.500001 -0.356094 0.237934
v -0.500000 -0.356094 0.237934
v 0.500001 -0.420041 0.083551
v -0.500000 -0.420041 0.083551
v 0.500001 -0.420041 -0.083551
v -0.500000 -0.420041 -0.083552
v 0.500001 -0.356094 -0.237934
v -0.500000 -0.356094 -0.237934
v 0.500001 -0.237934 -0.356094
v -0.500000 -0.237934 -0.356094
v 0.500001 -0.083551 -0.420041
v -0.500000 -0.083551 -0.420041
v -0.413334 0.086337 -0.434043
v 0.413335 0.245866 -0.367964
v 0.413335 0.367964 -0.245866
v 0.413335 0.434043 -0.086336
v 0.413335 0.434043 0.086337
v 0.413335 0.367964 0.245866
v 0.413335 0.245866 0.367964
v 0.413334 0.086336 0.434043
v 0.413334 -0.086337 0.434043
v 0.413334 -0.245866 0.367964
v 0.413334 -0.367964 0.245866
v 0.413334 -0.434043 0.086337
v 0.413334 -0.434043 -0.086337
v 0.413334 -0.367964 -0.245866
v 0.413335 -0.245865 -0.367964
v 0.413335 -0.086336 -0.434043
v 0.413335 0.086336 -0.434043
v -0.413334 0.245866 -0.367964
v -0.413334 0.367964 -0.245866
v -0.413334 0.434043 -0.086337
v -0.413334 0.434043 0.086337
v -0.413334 0.367964 0.245866
v -0.413334 0.245866 0.367964
v -0.413334 0.086337 0.434043
v -0.413334 -0.086336 0.434043
v -0.413334 -0.245865 0.367964
v -0.413334 -0.367964 0.245866
v -0.413334 -0.434043 0.086337
v -0.413334 -0.434043 -0.086337
v -0.413334 -0.367964 -0.245866
v -0.413334 -0.245865 -0.367964
v -0.413334 -0.086336 -0.434043
v -0.428605 0.087776 -0.441280
v -0.428605 -0.087776 -0.441280
v -0.428605 -0.249965 -0.374099
v -0.428605 -0.374099 -0.249965
v -0.428605 -0.441280 -0.087776
v -0.428605 -0.441280 0.087776
v -0.428605 -0.374099 0.249965
v -0.428605 -0.249965 0.374099
v -0.428605 -0.087776 0.441280
v -0.428605 0.087776 0.441280
v -0.428605 0.249965 0.374099
v -0.428605 0.374099 0.249965
v -0.428605 0.441280 0.087776
v -0.428605 0.441280 -0.087776
v -0.428605 0.374099 -0.249965
v -0.428605 0.249965 -0.374099
v -0.428605 0.000000 -0.000000
v 0.413334 -0.000000 0.000000
vt 0.211538 0.442308
vt 0.211538 0.467949
vt 0.108974 0.467949
vt 0.108974 0.442308
vt 0.314103 0.442308
vt 0.314103 0.467949
vt 0.416667 0.442308
vt 0.416667 0.467949
vt 0.006410 0.467949
vt 0.006410 0.442308
vt 0.211792 0.993590
vt 0.117562 0.954728
vt 0.262789 0.738327
vt 0.211538 0.006410
vt 0.108974 0.006410
vt 0.108974 0.032051
vt 0.211538 0.032051
vt 0.314103 0.006410
vt 0.314103 0.032051
vt 0.416667 0.006410
vt 0.416667 0.032051
vt 0.006410 0.006410
vt 0.006410 0.032051
vt 0.211361 0.993526
vt 0.117394 0.954505
vt 0.262040 0.737637
vt 0.045447 0.882467
vt 0.006475 0.788381
vt 0.006410 0.686569
vt 0.045263 0.592532
vt 0.117118 0.520586
vt 0.204627 0.488094
vt 0.312719 0.481748
vt 0.406687 0.520769
vt 0.478633 0.592807
vt 0.517605 0.686893
vt 0.517670 0.788705
vt 0.478816 0.882742
vt 0.406962 0.954687
vt 0.313044 0.993590
vt 0.045441 0.882922
vt 0.006410 0.789102
vt 0.006410 0.687551
vt 0.045442 0.593732
vt 0.117562 0.521925
vt 0.211793 0.483064
vt 0.313787 0.483064
vt 0.408016 0.521926
vt 0.480136 0.593732
vt 0.519168 0.687551
vt 0.519168 0.789103
vt 0.480136 0.882922
vt 0.408016 0.954728
vt 0.313786 0.993590
vt 0.416667 0.397436
vt 0.314103 0.397436
vt 0.211538 0.397436
vt 0.108974 0.397436
vt 0.006410 0.397436
vt 0.314103 0.185897
vt 0.314103 0.282051
vt 0.211538 0.282051
vt 0.211538 0.185897
vt 0.108974 0.282051
vt 0.108974 0.185897
vt 0.006410 0.282051
vt 0.006410 0.185897
vt 0.416667 0.185897
vt 0.416667 0.282051
vt 0.416667 0.076923
vt 0.314103 0.076923
vt 0.211538 0.076923
vt 0.108974 0.076923
vt 0.006410 0.076923
vt 0.429487 0.397436
vt 0.532051 0.397436
vt 0.532051 0.442308
vt 0.429487 0.442308
vt 0.634615 0.397436
vt 0.634615 0.442308
vt 0.737179 0.397436
vt 0.737179 0.442308
vt 0.839744 0.397436
vt 0.839744 0.442308
vt 0.429487 0.032051
vt 0.532051 0.032051
vt 0.532051 0.076923
vt 0.429487 0.076923
vt 0.634615 0.032051
vt 0.634615 0.076923
vt 0.737179 0.032051
vt 0.737179 0.076923
vt 0.839744 0.032051
vt 0.839744 0.076923
s off
f 14/1 110/2 112/3 16/4
f 12/5 108/6 110/2 14/1
f 10/7 106/8 108/6 12/5
f 8/4 104/3 106/9 10/10
f 6/1 102/2 104/3 8/4
f 4/5 100/6 102/2 6/1
f 2/7 98/8 100/6 4/5
f 32/4 128/3 98/9 2/10
f 30/1 126/2 128/3 32/4
f 28/5 124/6 126/2 30/1
f 26/7 122/8 124/6 28/5
f 24/4 120/3 122/9 26/10
f 22/1 118/2 120/3 24/4
f 20/5 116/6 118/2 22/1
f 18/7 114/8 116/6 20/5
f 16/4 112/3 114/9 18/10
f 145/11 130/12 178/13
f 13/14 15/15 111/16 109/17
f 11/18 13/14 109/17 107/19
f 9/20 11/18 107/19 105/21
f 7/15 9/22 105/23 103/16
f 5/14 7/15 103/16 101/17
f 3/18 5/14 101/17 99/19
f 1/20 3/18 99/19 97/21
f 31/15 1/22 97/23 127/16
f 29/14 31/15 127/16 125/17
f 27/18 29/14 125/17 123/19
f 25/20 27/18 123/19 121/21
f 23/15 25/22 121/23 119/16
f 21/14 23/15 119/16 117/17
f 19/18 21/14 117/17 115/19
f 17/20 19/18 115/19 113/21
f 15/15 17/22 113/23 111/16
f 162/24 163/25 177/26
f 163/25 164/27 177/26
f 164/27 165/28 177/26
f 165/28 166/29 177/26
f 166/29 167/30 177/26
f 167/30 168/31 177/26
f 168/31 169/32 177/26
f 169/32 170/33 177/26
f 170/33 171/34 177/26
f 171/34 172/35 177/26
f 172/35 173/36 177/26
f 173/36 174/37 177/26
f 174/37 175/38 177/26
f 175/38 176/39 177/26
f 176/39 161/40 177/26
f 161/40 162/24 177/26
f 130/12 131/41 178/13
f 131/41 132/42 178/13
f 132/42 133/43 178/13
f 133/43 134/44 178/13
f 134/44 135/45 178/13
f 135/45 136/46 178/13
f 136/46 137/47 178/13
f 137/47 138/48 178/13
f 138/48 139/49 178/13
f 139/49 140/50 178/13
f 140/50 141/51 178/13
f 141/51 142/52 178/13
f 142/52 143/53 178/13
f 143/53 144/54 178/13
f 144/54 145/11 178/13
s 1
f 33/55 2/7 4/5 50/56
f 50/56 4/5 6/1 51/57
f 51/57 6/1 8/4 52/58
f 52/58 8/4 10/10 53/59
f 53/55 10/7 12/5 54/56
f 54/56 12/5 14/1 55/57
f 55/57 14/1 16/4 56/58
f 56/58 16/4 18/10 57/59
f 57/55 18/7 20/5 58/56
f 58/56 20/5 22/1 59/57
f 59/57 22/1 24/4 60/58
f 60/58 24/4 26/10 61/59
f 61/55 26/7 28/5 62/56
f 62/56 28/5 30/1 63/57
f 64/58 32/4 2/10 33/59
f 63/57 30/1 32/4 64/58
f 66/60 82/61 83/62 67/63
f 67/63 83/62 84/64 68/65
f 68/65 84/64 85/66 69/67
f 69/68 85/69 86/61 70/60
f 70/60 86/61 87/62 71/63
f 71/63 87/62 88/64 72/65
f 72/65 88/64 89/66 73/67
f 73/68 89/69 90/61 74/60
f 74/60 90/61 91/62 75/63
f 75/63 91/62 92/64 76/65
f 76/65 92/64 93/66 77/67
f 77/68 93/69 94/61 78/60
f 78/60 94/61 95/62 79/63
f 80/65 96/64 65/66 81/67
f 79/63 95/62 96/64 80/65
f 65/69 33/55 50/56 82/61
f 82/61 50/56 51/57 83/62
f 83/62 51/57 52/58 84/64
f 84/64 52/58 53/59 85/66
f 85/69 53/55 54/56 86/61
f 86/61 54/56 55/57 87/62
f 87/62 55/57 56/58 88/64
f 88/64 56/58 57/59 89/66
f 89/69 57/55 58/56 90/61
f 90/61 58/56 59/57 91/62
f 91/62 59/57 60/58 92/64
f 92/64 60/58 61/59 93/66
f 93/69 61/55 62/56 94/61
f 94/61 62/56 63/57 95/62
f 96/64 64/58 33/59 65/66
f 95/62 63/57 64/58 96/64
f 1/21 49/70 34/71 3/19
f 3/19 34/71 35/72 5/17
f 5/17 35/72 36/73 7/16
f 7/16 36/73 37/74 9/23
f 9/21 37/70 38/71 11/19
f 11/19 38/71 39/72 13/17
f 13/17 39/72 40/73 15/16
f 15/16 40/73 41/74 17/23
f 17/21 41/70 42/71 19/19
f 19/19 42/71 43/72 21/17
f 21/17 43/72 44/73 23/16
f 23/16 44/73 45/74 25/23
f 25/21 45/70 46/71 27/19
f 27/19 46/71 47/72 29/17
f 31/16 48/73 49/74 1/23
f 29/17 47/72 48/73 31/16
f 49/70 81/68 66/60 34/71
f 34/71 66/60 67/63 35/72
f 35/72 67/63 68/65 36/73
f 36/73 68/65 69/67 37/74
f 37/70 69/68 70/60 38/71
f 38/71 70/60 71/63 39/72
f 39/72 71/63 72/65 40/73
f 40/73 72/65 73/67 41/74
f 41/70 73/68 74/60 42/71
f 42/71 74/60 75/63 43/72
f 43/72 75/63 76/65 44/73
f 44/73 76/65 77/67 45/74
f 45/70 77/68 78/60 46/71
f 46/71 78/60 79/63 47/72
f 48/73 80/65 81/67 49/74
f 47/72 79/63 80/65 48/73
f 65/69 82/61 66/60 81/68
f 129/75 146/76 100/77 98/78
f 146/76 147/79 102/80 100/77
f 147/79 148/81 104/82 102/80
f 148/81 149/83 106/84 104/82
f 149/75 150/76 108/77 106/78
f 150/76 151/79 110/80 108/77
f 151/79 152/81 112/82 110/80
f 152/81 153/83 114/84 112/82
f 153/75 154/76 116/77 114/78
f 154/76 155/79 118/80 116/77
f 155/79 156/81 120/82 118/80
f 156/81 157/83 122/84 120/82
f 157/75 158/76 124/77 122/78
f 158/76 159/79 126/80 124/77
f 160/81 129/83 98/84 128/82
f 159/79 160/81 128/82 126/80
f 97/85 99/86 130/87 145/88
f 99/86 101/89 131/90 130/87
f 101/89 103/91 132/92 131/90
f 103/91 105/93 133/94 132/92
f 105/85 107/86 134/87 133/88
f 107/86 109/89 135/90 134/87
f 109/89 111/91 136/92 135/90
f 111/91 113/93 137/94 136/92
f 113/85 115/86 138/87 137/88
f 115/86 117/89 139/90 138/87
f 117/89 119/91 140/92 139/90
f 119/91 121/93 141/94 140/92
f 121/85 123/86 142/87 141/88
f 123/86 125/89 143/90 142/87
f 127/91 97/93 145/94 144/92
f 125/89 127/91 144/92 143/90

View File

@ -0,0 +1,543 @@
# Blender v2.69 (sub 0) OBJ File: 'barrel.blend'
# www.blender.org
o Cylinder
v 0.500001 0.092835 -0.466712
v -0.500000 0.092835 -0.466712
v 0.500001 0.264371 -0.395660
v -0.500000 0.264371 -0.395660
v 0.500001 0.395660 -0.264371
v -0.500000 0.395660 -0.264371
v 0.500001 0.466712 -0.092835
v -0.500000 0.466713 -0.092835
v 0.500001 0.466712 0.092835
v -0.500000 0.466713 0.092835
v 0.500001 0.395660 0.264371
v -0.500000 0.395660 0.264371
v 0.500001 0.264371 0.395660
v -0.500000 0.264371 0.395660
v 0.500001 0.092835 0.466712
v -0.500000 0.092835 0.466712
v 0.500001 -0.092835 0.466712
v -0.500000 -0.092835 0.466712
v 0.500001 -0.264371 0.395660
v -0.500000 -0.264371 0.395660
v 0.500001 -0.395660 0.264372
v -0.500000 -0.395660 0.264371
v 0.500001 -0.466713 0.092835
v -0.500000 -0.466712 0.092835
v 0.500001 -0.466713 -0.092835
v -0.500000 -0.466712 -0.092835
v 0.500001 -0.395660 -0.264371
v -0.500000 -0.395660 -0.264372
v 0.500001 -0.264371 -0.395660
v -0.500000 -0.264371 -0.395660
v 0.500001 -0.092835 -0.466712
v -0.500000 -0.092835 -0.466713
v -0.413334 0.095930 -0.482270
v 0.413335 0.273184 -0.408849
v 0.413335 0.408849 -0.273184
v 0.413335 0.482270 -0.095929
v 0.413335 0.482270 0.095930
v 0.413334 0.408849 0.273184
v 0.413334 0.273184 0.408849
v 0.413334 0.095929 0.482270
v 0.413334 -0.095930 0.482270
v 0.413334 -0.273184 0.408849
v 0.413334 -0.408849 0.273184
v 0.413334 -0.482270 0.095930
v 0.413334 -0.482270 -0.095929
v 0.413334 -0.408849 -0.273184
v 0.413334 -0.273184 -0.408849
v 0.413335 -0.095929 -0.482270
v 0.413335 0.095929 -0.482270
v -0.413334 0.273184 -0.408849
v -0.413334 0.408849 -0.273184
v -0.413334 0.482270 -0.095929
v -0.413334 0.482270 0.095929
v -0.413334 0.408849 0.273184
v -0.413334 0.273184 0.408849
v -0.413334 0.095930 0.482270
v -0.413334 -0.095929 0.482270
v -0.413334 -0.273184 0.408849
v -0.413334 -0.408849 0.273184
v -0.413334 -0.482270 0.095929
v -0.413334 -0.482270 -0.095930
v -0.413334 -0.408849 -0.273184
v -0.413334 -0.273184 -0.408849
v -0.413334 -0.095929 -0.482270
v -0.114830 0.099128 -0.498352
v 0.114831 0.282294 -0.422482
v 0.114831 0.422482 -0.282293
v 0.114831 0.498352 -0.099128
v 0.114831 0.498352 0.099128
v 0.114831 0.422482 0.282294
v 0.114831 0.282294 0.422482
v 0.114831 0.099128 0.498352
v 0.114831 -0.099128 0.498352
v 0.114831 -0.282294 0.422482
v 0.114831 -0.422482 0.282294
v 0.114831 -0.498352 0.099128
v 0.114831 -0.498352 -0.099128
v 0.114831 -0.422482 -0.282294
v 0.114831 -0.282293 -0.422482
v 0.114831 -0.099128 -0.498352
v 0.114831 0.099128 -0.498352
v -0.114830 0.282294 -0.422482
v -0.114830 0.422482 -0.282294
v -0.114830 0.498352 -0.099128
v -0.114830 0.498352 0.099128
v -0.114830 0.422482 0.282294
v -0.114830 0.282294 0.422482
v -0.114830 0.099128 0.498352
v -0.114830 -0.099128 0.498352
v -0.114830 -0.282293 0.422482
v -0.114830 -0.422482 0.282294
v -0.114830 -0.498352 0.099128
v -0.114830 -0.498352 -0.099128
v -0.114830 -0.422482 -0.282294
v -0.114830 -0.282293 -0.422482
v -0.114830 -0.099128 -0.498352
v 0.500001 0.083551 -0.420041
v -0.500000 0.083552 -0.420041
v 0.500001 0.237934 -0.356094
v -0.500000 0.237934 -0.356094
v 0.500001 0.356094 -0.237934
v -0.500000 0.356094 -0.237934
v 0.500001 0.420041 -0.083551
v -0.500000 0.420041 -0.083551
v 0.500001 0.420041 0.083552
v -0.500000 0.420041 0.083551
v 0.500001 0.356094 0.237934
v -0.500000 0.356094 0.237934
v 0.500001 0.237934 0.356094
v -0.500000 0.237934 0.356094
v 0.500001 0.083551 0.420041
v -0.500000 0.083551 0.420041
v 0.500001 -0.083551 0.420041
v -0.500000 -0.083551 0.420041
v 0.500001 -0.237934 0.356094
v -0.500000 -0.237934 0.356094
v 0.500001 -0.356094 0.237934
v -0.500000 -0.356094 0.237934
v 0.500001 -0.420041 0.083551
v -0.500000 -0.420041 0.083551
v 0.500001 -0.420041 -0.083551
v -0.500000 -0.420041 -0.083552
v 0.500001 -0.356094 -0.237934
v -0.500000 -0.356094 -0.237934
v 0.500001 -0.237934 -0.356094
v -0.500000 -0.237934 -0.356094
v 0.500001 -0.083551 -0.420041
v -0.500000 -0.083551 -0.420041
v -0.413334 0.086337 -0.434043
v 0.413335 0.245866 -0.367964
v 0.413335 0.367964 -0.245865
v 0.413335 0.434043 -0.086336
v 0.413335 0.434043 0.086337
v 0.413335 0.367964 0.245866
v 0.413335 0.245866 0.367964
v 0.413334 0.086336 0.434043
v 0.413334 -0.086337 0.434043
v 0.413334 -0.245866 0.367964
v 0.413334 -0.367964 0.245866
v 0.413334 -0.434043 0.086337
v 0.413334 -0.434043 -0.086337
v 0.413334 -0.367964 -0.245866
v 0.413335 -0.245865 -0.367964
v 0.413335 -0.086336 -0.434043
v 0.413335 0.086336 -0.434043
v -0.413334 0.245866 -0.367964
v -0.413334 0.367964 -0.245866
v -0.413334 0.434043 -0.086337
v -0.413334 0.434043 0.086337
v -0.413334 0.367964 0.245866
v -0.413334 0.245866 0.367964
v -0.413334 0.086337 0.434043
v -0.413334 -0.086336 0.434043
v -0.413334 -0.245865 0.367964
v -0.413334 -0.367964 0.245866
v -0.413334 -0.434043 0.086337
v -0.413334 -0.434043 -0.086337
v -0.413334 -0.367964 -0.245866
v -0.413334 -0.245865 -0.367964
v -0.413334 -0.086336 -0.434043
v -0.114830 0.089216 -0.448517
v 0.114831 0.254064 -0.380234
v 0.114831 0.380234 -0.254064
v 0.114831 0.448517 -0.089215
v 0.114831 0.448517 0.089216
v 0.114831 0.380234 0.254064
v 0.114831 0.254064 0.380234
v 0.114831 0.089215 0.448517
v 0.114831 -0.089215 0.448517
v 0.114831 -0.254064 0.380234
v 0.114831 -0.380234 0.254064
v 0.114831 -0.448517 0.089216
v 0.114831 -0.448517 -0.089216
v 0.114831 -0.380234 -0.254064
v 0.114831 -0.254064 -0.380234
v 0.114831 -0.089215 -0.448517
v 0.114831 0.089216 -0.448517
v -0.114830 0.254064 -0.380234
v -0.114830 0.380234 -0.254064
v -0.114830 0.448517 -0.089215
v -0.114830 0.448517 0.089216
v -0.114830 0.380234 0.254064
v -0.114830 0.254064 0.380234
v -0.114830 0.089216 0.448517
v -0.114830 -0.089215 0.448517
v -0.114830 -0.254064 0.380234
v -0.114830 -0.380234 0.254064
v -0.114830 -0.448517 0.089216
v -0.114830 -0.448517 -0.089216
v -0.114830 -0.380234 -0.254064
v -0.114830 -0.254064 -0.380234
v -0.114830 -0.089215 -0.448517
v 0.352645 0.087776 -0.441280
v 0.352645 -0.087776 -0.441280
v 0.352645 -0.249965 -0.374099
v 0.352645 -0.374099 -0.249965
v 0.352645 -0.441280 -0.087776
v 0.352645 -0.441280 0.087776
v 0.352645 -0.374099 0.249965
v 0.352645 -0.249965 0.374099
v 0.352645 -0.087776 0.441280
v 0.352645 0.087776 0.441280
v 0.352645 0.249965 0.374099
v 0.352645 0.374099 0.249965
v 0.352645 0.441280 0.087776
v 0.352645 0.441280 -0.087776
v 0.352645 0.374099 -0.249965
v 0.352645 0.249965 -0.374099
v 0.352645 -0.000000 0.000000
v 0.413334 -0.000000 0.000000
vt 0.211538 0.442308
vt 0.211538 0.467949
vt 0.108974 0.467949
vt 0.108974 0.442308
vt 0.314103 0.442308
vt 0.314103 0.467949
vt 0.416667 0.442308
vt 0.416667 0.467949
vt 0.006410 0.467949
vt 0.006410 0.442308
vt 0.211792 0.993590
vt 0.117562 0.954728
vt 0.262789 0.738327
vt 0.211538 0.006410
vt 0.108974 0.006410
vt 0.108974 0.032051
vt 0.211538 0.032051
vt 0.314103 0.006410
vt 0.314103 0.032051
vt 0.416667 0.006410
vt 0.416667 0.032051
vt 0.006410 0.006410
vt 0.006410 0.032051
vt 0.211361 0.993526
vt 0.117394 0.954505
vt 0.262040 0.737637
vt 0.045447 0.882467
vt 0.006475 0.788381
vt 0.006410 0.686569
vt 0.045263 0.592532
vt 0.117118 0.520586
vt 0.204627 0.488094
vt 0.312719 0.481748
vt 0.406687 0.520769
vt 0.478633 0.592807
vt 0.517605 0.686893
vt 0.517670 0.788705
vt 0.478816 0.882742
vt 0.406962 0.954687
vt 0.313044 0.993590
vt 0.045441 0.882922
vt 0.006410 0.789102
vt 0.006410 0.687551
vt 0.045442 0.593732
vt 0.117562 0.521925
vt 0.211793 0.483064
vt 0.313787 0.483064
vt 0.408016 0.521926
vt 0.480136 0.593732
vt 0.519168 0.687551
vt 0.519168 0.789103
vt 0.480136 0.882922
vt 0.408016 0.954728
vt 0.313786 0.993590
vt 0.416667 0.397436
vt 0.314103 0.397436
vt 0.211538 0.397436
vt 0.108974 0.397436
vt 0.006410 0.397436
vt 0.314103 0.185897
vt 0.314103 0.282051
vt 0.211538 0.282051
vt 0.211538 0.185897
vt 0.108974 0.282051
vt 0.108974 0.185897
vt 0.006410 0.282051
vt 0.006410 0.185897
vt 0.416667 0.185897
vt 0.416667 0.282051
vt 0.416667 0.076923
vt 0.314103 0.076923
vt 0.211538 0.076923
vt 0.108974 0.076923
vt 0.006410 0.076923
vt 0.429487 0.397436
vt 0.532051 0.397436
vt 0.532051 0.442308
vt 0.429487 0.442308
vt 0.634615 0.397436
vt 0.634615 0.442308
vt 0.737179 0.397436
vt 0.737179 0.442308
vt 0.839744 0.397436
vt 0.839744 0.442308
vt 0.532051 0.185897
vt 0.634615 0.185897
vt 0.634615 0.282051
vt 0.532051 0.282051
vt 0.737179 0.185897
vt 0.737179 0.282051
vt 0.839744 0.185897
vt 0.839744 0.282051
vt 0.429487 0.185897
vt 0.429487 0.282051
vt 0.429487 0.032051
vt 0.532051 0.032051
vt 0.532051 0.076923
vt 0.429487 0.076923
vt 0.634615 0.032051
vt 0.634615 0.076923
vt 0.737179 0.032051
vt 0.737179 0.076923
vt 0.839744 0.032051
vt 0.839744 0.076923
s off
f 14/1 110/2 112/3 16/4
f 12/5 108/6 110/2 14/1
f 10/7 106/8 108/6 12/5
f 8/4 104/3 106/9 10/10
f 6/1 102/2 104/3 8/4
f 4/5 100/6 102/2 6/1
f 2/7 98/8 100/6 4/5
f 32/4 128/3 98/9 2/10
f 30/1 126/2 128/3 32/4
f 28/5 124/6 126/2 30/1
f 26/7 122/8 124/6 28/5
f 24/4 120/3 122/9 26/10
f 22/1 118/2 120/3 24/4
f 20/5 116/6 118/2 22/1
f 18/7 114/8 116/6 20/5
f 16/4 112/3 114/9 18/10
f 145/11 130/12 210/13
f 13/14 15/15 111/16 109/17
f 11/18 13/14 109/17 107/19
f 9/20 11/18 107/19 105/21
f 7/15 9/22 105/23 103/16
f 5/14 7/15 103/16 101/17
f 3/18 5/14 101/17 99/19
f 1/20 3/18 99/19 97/21
f 31/15 1/22 97/23 127/16
f 29/14 31/15 127/16 125/17
f 27/18 29/14 125/17 123/19
f 25/20 27/18 123/19 121/21
f 23/15 25/22 121/23 119/16
f 21/14 23/15 119/16 117/17
f 19/18 21/14 117/17 115/19
f 17/20 19/18 115/19 113/21
f 15/15 17/22 113/23 111/16
f 194/24 195/25 209/26
f 195/25 196/27 209/26
f 196/27 197/28 209/26
f 197/28 198/29 209/26
f 198/29 199/30 209/26
f 199/30 200/31 209/26
f 200/31 201/32 209/26
f 201/32 202/33 209/26
f 202/33 203/34 209/26
f 203/34 204/35 209/26
f 204/35 205/36 209/26
f 205/36 206/37 209/26
f 206/37 207/38 209/26
f 207/38 208/39 209/26
f 208/39 193/40 209/26
f 193/40 194/24 209/26
f 130/12 131/41 210/13
f 131/41 132/42 210/13
f 132/42 133/43 210/13
f 133/43 134/44 210/13
f 134/44 135/45 210/13
f 135/45 136/46 210/13
f 136/46 137/47 210/13
f 137/47 138/48 210/13
f 138/48 139/49 210/13
f 139/49 140/50 210/13
f 140/50 141/51 210/13
f 141/51 142/52 210/13
f 142/52 143/53 210/13
f 143/53 144/54 210/13
f 144/54 145/11 210/13
s 1
f 33/55 2/7 4/5 50/56
f 50/56 4/5 6/1 51/57
f 51/57 6/1 8/4 52/58
f 52/58 8/4 10/10 53/59
f 53/55 10/7 12/5 54/56
f 54/56 12/5 14/1 55/57
f 55/57 14/1 16/4 56/58
f 56/58 16/4 18/10 57/59
f 57/55 18/7 20/5 58/56
f 58/56 20/5 22/1 59/57
f 59/57 22/1 24/4 60/58
f 60/58 24/4 26/10 61/59
f 61/55 26/7 28/5 62/56
f 62/56 28/5 30/1 63/57
f 64/58 32/4 2/10 33/59
f 63/57 30/1 32/4 64/58
f 66/60 82/61 83/62 67/63
f 67/63 83/62 84/64 68/65
f 68/65 84/64 85/66 69/67
f 69/68 85/69 86/61 70/60
f 70/60 86/61 87/62 71/63
f 71/63 87/62 88/64 72/65
f 72/65 88/64 89/66 73/67
f 73/68 89/69 90/61 74/60
f 74/60 90/61 91/62 75/63
f 75/63 91/62 92/64 76/65
f 76/65 92/64 93/66 77/67
f 77/68 93/69 94/61 78/60
f 78/60 94/61 95/62 79/63
f 80/65 96/64 65/66 81/67
f 79/63 95/62 96/64 80/65
f 65/69 33/55 50/56 82/61
f 82/61 50/56 51/57 83/62
f 83/62 51/57 52/58 84/64
f 84/64 52/58 53/59 85/66
f 85/69 53/55 54/56 86/61
f 86/61 54/56 55/57 87/62
f 87/62 55/57 56/58 88/64
f 88/64 56/58 57/59 89/66
f 89/69 57/55 58/56 90/61
f 90/61 58/56 59/57 91/62
f 91/62 59/57 60/58 92/64
f 92/64 60/58 61/59 93/66
f 93/69 61/55 62/56 94/61
f 94/61 62/56 63/57 95/62
f 96/64 64/58 33/59 65/66
f 95/62 63/57 64/58 96/64
f 1/21 49/70 34/71 3/19
f 3/19 34/71 35/72 5/17
f 5/17 35/72 36/73 7/16
f 7/16 36/73 37/74 9/23
f 9/21 37/70 38/71 11/19
f 11/19 38/71 39/72 13/17
f 13/17 39/72 40/73 15/16
f 15/16 40/73 41/74 17/23
f 17/21 41/70 42/71 19/19
f 19/19 42/71 43/72 21/17
f 21/17 43/72 44/73 23/16
f 23/16 44/73 45/74 25/23
f 25/21 45/70 46/71 27/19
f 27/19 46/71 47/72 29/17
f 31/16 48/73 49/74 1/23
f 29/17 47/72 48/73 31/16
f 49/70 81/68 66/60 34/71
f 34/71 66/60 67/63 35/72
f 35/72 67/63 68/65 36/73
f 36/73 68/65 69/67 37/74
f 37/70 69/68 70/60 38/71
f 38/71 70/60 71/63 39/72
f 39/72 71/63 72/65 40/73
f 40/73 72/65 73/67 41/74
f 41/70 73/68 74/60 42/71
f 42/71 74/60 75/63 43/72
f 43/72 75/63 76/65 44/73
f 44/73 76/65 77/67 45/74
f 45/70 77/68 78/60 46/71
f 46/71 78/60 79/63 47/72
f 48/73 80/65 81/67 49/74
f 47/72 79/63 80/65 48/73
f 65/69 82/61 66/60 81/68
f 129/75 146/76 100/77 98/78
f 146/76 147/79 102/80 100/77
f 147/79 148/81 104/82 102/80
f 148/81 149/83 106/84 104/82
f 149/75 150/76 108/77 106/78
f 150/76 151/79 110/80 108/77
f 151/79 152/81 112/82 110/80
f 152/81 153/83 114/84 112/82
f 153/75 154/76 116/77 114/78
f 154/76 155/79 118/80 116/77
f 155/79 156/81 120/82 118/80
f 156/81 157/83 122/84 120/82
f 157/75 158/76 124/77 122/78
f 158/76 159/79 126/80 124/77
f 160/81 129/83 98/84 128/82
f 159/79 160/81 128/82 126/80
f 162/85 163/86 179/87 178/88
f 163/86 164/89 180/90 179/87
f 164/89 165/91 181/92 180/90
f 165/93 166/85 182/88 181/94
f 166/85 167/86 183/87 182/88
f 167/86 168/89 184/90 183/87
f 168/89 169/91 185/92 184/90
f 169/93 170/85 186/88 185/94
f 170/85 171/86 187/87 186/88
f 171/86 172/89 188/90 187/87
f 172/89 173/91 189/92 188/90
f 173/93 174/85 190/88 189/94
f 174/85 175/86 191/87 190/88
f 176/89 177/91 161/92 192/90
f 175/86 176/89 192/90 191/87
f 161/94 178/88 146/76 129/75
f 178/88 179/87 147/79 146/76
f 179/87 180/90 148/81 147/79
f 180/90 181/92 149/83 148/81
f 181/94 182/88 150/76 149/75
f 182/88 183/87 151/79 150/76
f 183/87 184/90 152/81 151/79
f 184/90 185/92 153/83 152/81
f 185/94 186/88 154/76 153/75
f 186/88 187/87 155/79 154/76
f 187/87 188/90 156/81 155/79
f 188/90 189/92 157/83 156/81
f 189/94 190/88 158/76 157/75
f 190/88 191/87 159/79 158/76
f 192/90 161/92 129/83 160/81
f 191/87 192/90 160/81 159/79
f 97/95 99/96 130/97 145/98
f 99/96 101/99 131/100 130/97
f 101/99 103/101 132/102 131/100
f 103/101 105/103 133/104 132/102
f 105/95 107/96 134/97 133/98
f 107/96 109/99 135/100 134/97
f 109/99 111/101 136/102 135/100
f 111/101 113/103 137/104 136/102
f 113/95 115/96 138/97 137/98
f 115/96 117/99 139/100 138/97
f 117/99 119/101 140/102 139/100
f 119/101 121/103 141/104 140/102
f 121/95 123/96 142/97 141/98
f 123/96 125/99 143/100 142/97
f 127/101 97/103 145/104 144/102
f 125/99 127/101 144/102 143/100
f 193/98 208/97 162/85 177/93
f 208/97 207/100 163/86 162/85
f 207/100 206/102 164/89 163/86
f 206/102 205/104 165/91 164/89
f 205/98 204/97 166/85 165/93
f 204/97 203/100 167/86 166/85
f 203/100 202/102 168/89 167/86
f 202/102 201/104 169/91 168/89
f 201/98 200/97 170/85 169/93
f 200/97 199/100 171/86 170/85
f 199/100 198/102 172/89 171/86
f 198/102 197/104 173/91 172/89
f 197/98 196/97 174/85 173/93
f 196/97 195/100 175/86 174/85
f 194/102 193/104 177/91 176/89
f 195/100 194/102 176/89 175/86
f 161/94 177/93 162/85 178/88

View File

@ -0,0 +1,376 @@
# Blender v2.69 (sub 0) OBJ File: 'handmill.blend'
# www.blender.org
o Cylinder.002
v -0.047835 -0.281250 0.115485
v -0.047835 -0.250000 0.115485
v -0.115485 -0.281250 0.047835
v -0.115485 -0.250000 0.047835
v -0.115485 -0.281250 -0.047835
v -0.115485 -0.250000 -0.047835
v -0.047835 -0.281250 -0.115485
v -0.047835 -0.250000 -0.115485
v 0.047835 -0.281250 -0.115485
v 0.047835 -0.250000 -0.115485
v 0.115485 -0.281250 -0.047835
v 0.115485 -0.250000 -0.047835
v 0.115485 -0.281250 0.047835
v 0.115485 -0.250000 0.047835
v 0.047835 -0.281250 0.115485
v 0.047835 -0.250000 0.115485
v -0.047835 -0.062500 0.115485
v -0.047835 0.000000 0.115485
v -0.115485 -0.062500 0.047835
v -0.115485 0.000000 0.047835
v -0.115485 -0.062500 -0.047835
v -0.115485 0.000000 -0.047835
v -0.047835 -0.062500 -0.115485
v -0.047835 0.000000 -0.115485
v 0.047835 -0.062500 -0.115485
v 0.047835 0.000000 -0.115485
v 0.115485 -0.062500 -0.047835
v 0.115485 0.000000 -0.047835
v 0.115485 -0.062500 0.047835
v 0.115485 0.000000 0.047835
v 0.047835 -0.062500 0.115485
v 0.047835 0.000000 0.115485
v 0.272957 -0.062500 -0.239132
v 0.272957 0.187500 -0.239132
v 0.239133 -0.062500 -0.272957
v 0.239133 0.187500 -0.272957
v 0.239133 -0.062500 -0.320793
v 0.239133 0.187500 -0.320793
v 0.272957 -0.062500 -0.354617
v 0.272957 0.187500 -0.354617
v 0.320793 -0.062500 -0.354617
v 0.320793 0.187500 -0.354617
v 0.354618 -0.062500 -0.320793
v 0.354618 0.187500 -0.320793
v 0.354618 -0.062500 -0.272957
v 0.354618 0.187500 -0.272957
v 0.320793 -0.062500 -0.239132
v 0.320793 0.187500 -0.239132
v 0.272957 0.187500 -0.239132
v 0.239133 0.187500 -0.272957
v 0.239133 0.187500 -0.320793
v 0.272957 0.187500 -0.354617
v 0.320793 0.187500 -0.354617
v 0.354618 0.187500 -0.320793
v 0.354618 0.187500 -0.272957
v 0.320793 0.187500 -0.239132
v -0.097545 -0.062500 0.490393
v -0.097545 -0.250000 0.490393
v -0.097545 -0.500000 0.490393
v -0.097545 -0.281250 0.490393
v -0.277785 -0.500000 0.415735
v -0.277785 -0.281250 0.415735
v -0.415735 -0.500000 0.277785
v -0.415735 -0.281250 0.277785
v -0.490393 -0.500000 0.097545
v -0.490393 -0.281250 0.097545
v -0.490393 -0.500000 -0.097545
v -0.490393 -0.281250 -0.097545
v -0.415735 -0.500000 -0.277785
v -0.415735 -0.281250 -0.277785
v -0.277785 -0.500000 -0.415735
v -0.277785 -0.281250 -0.415735
v -0.097545 -0.500000 -0.490393
v -0.097545 -0.281250 -0.490393
v 0.097545 -0.500000 -0.490393
v 0.097545 -0.281250 -0.490393
v 0.277785 -0.500000 -0.415735
v 0.277785 -0.281250 -0.415735
v 0.415735 -0.500000 -0.277785
v 0.415735 -0.281250 -0.277785
v 0.490393 -0.500000 -0.097545
v 0.490393 -0.281250 -0.097545
v 0.490393 -0.500000 0.097545
v 0.490393 -0.281250 0.097545
v 0.415735 -0.500000 0.277785
v 0.415735 -0.281250 0.277785
v 0.277785 -0.500000 0.415735
v 0.277785 -0.281250 0.415735
v 0.097545 -0.500000 0.490393
v 0.097545 -0.281250 0.490393
v -0.277785 -0.250000 0.415735
v -0.277785 -0.062500 0.415735
v -0.415735 -0.250000 0.277785
v -0.415735 -0.062500 0.277785
v -0.490393 -0.250000 0.097545
v -0.490393 -0.062500 0.097545
v -0.490393 -0.250000 -0.097545
v -0.490393 -0.062500 -0.097545
v -0.415735 -0.250000 -0.277785
v -0.415735 -0.062500 -0.277785
v -0.277785 -0.250000 -0.415735
v -0.277785 -0.062500 -0.415735
v -0.097545 -0.250000 -0.490393
v -0.097545 -0.062500 -0.490393
v 0.097545 -0.250000 -0.490393
v 0.097545 -0.062500 -0.490393
v 0.277785 -0.250000 -0.415735
v 0.277785 -0.062500 -0.415735
v 0.415735 -0.250000 -0.277785
v 0.415735 -0.062500 -0.277785
v 0.490393 -0.250000 -0.097545
v 0.490393 -0.062500 -0.097545
v 0.490393 -0.250000 0.097545
v 0.490393 -0.062500 0.097545
v 0.415735 -0.250000 0.277785
v 0.415735 -0.062500 0.277785
v 0.277785 -0.250000 0.415735
v 0.277785 -0.062500 0.415735
v 0.097545 -0.250000 0.490393
v 0.097545 -0.062500 0.490393
v 0.296875 0.187500 -0.296875
v -0.000000 -0.250000 0.000000
v 0.000000 -0.281250 0.000000
v 0.000000 -0.062500 0.000000
v -0.000000 -0.500000 0.000000
v -0.047835 0.000000 0.115485
v -0.115485 0.000000 0.047835
v -0.115485 0.000000 -0.047835
v -0.047835 0.000000 -0.115485
v 0.047835 0.000000 -0.115485
v 0.115485 0.000000 -0.047835
v 0.115485 0.000000 0.047835
v 0.047835 0.000000 0.115485
v 0.000000 0.000000 -0.000000
vt 0.500000 0.812500
vt 0.500000 0.875000
vt 0.375000 0.875000
vt 0.375000 0.812500
vt 0.250000 0.875000
vt 0.250000 0.812500
vt 0.125000 0.875000
vt 0.125000 0.812500
vt 0.000000 0.875000
vt 0.000000 0.812500
vt 1.000000 0.812500
vt 1.000000 0.875000
vt 0.875000 0.875000
vt 0.875000 0.812500
vt 0.750000 0.875000
vt 0.750000 0.812500
vt 0.625000 0.812500
vt 0.625000 0.875000
vt 0.500000 0.937500
vt 0.500000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.937500
vt 0.250000 1.000000
vt 0.250000 0.937500
vt 0.125000 1.000000
vt 0.125000 0.937500
vt 0.000000 1.000000
vt 0.000000 0.937500
vt 1.000000 0.937500
vt 1.000000 1.000000
vt 0.875000 1.000000
vt 0.875000 0.937500
vt 0.750000 1.000000
vt 0.750000 0.937500
vt 0.625000 0.937500
vt 0.625000 1.000000
vt 0.125000 0.963388
vt 0.088388 1.000000
vt 0.062500 0.937500
vt 0.250000 0.437500
vt 0.250000 0.750000
vt 0.187500 0.750000
vt 0.187500 0.437500
vt 0.125000 0.750000
vt 0.125000 0.437500
vt 0.062500 0.750000
vt 0.062500 0.437500
vt 0.000000 0.750000
vt 0.000000 0.437500
vt 0.500000 0.437500
vt 0.500000 0.750000
vt 0.437500 0.750000
vt 0.437500 0.437500
vt 0.375000 0.750000
vt 0.375000 0.437500
vt 0.312500 0.437500
vt 0.312500 0.750000
vt 0.599456 1.000000
vt 0.783227 0.923879
vt 0.500000 0.500000
vt 0.750000 0.250000
vt 0.750000 0.437500
vt 0.500000 0.250000
vt 0.000000 0.250000
vt 0.000000 0.000000
vt 0.250000 0.000000
vt 0.250000 0.250000
vt 1.000000 0.250000
vt 1.000000 0.437500
vt 0.500000 0.000000
vt 0.750000 0.000000
vt 1.000000 0.000000
vt 0.036612 1.000000
vt 0.000000 0.963388
vt 0.000000 0.911612
vt 0.036612 0.875000
vt 0.088388 0.875000
vt 0.125000 0.911612
vt 0.923880 0.783227
vt 1.000000 0.599456
vt 1.000000 0.400544
vt 0.923880 0.216773
vt 0.783227 0.076120
vt 0.599456 -0.000000
vt 0.400544 -0.000000
vt 0.216773 0.076120
vt 0.076121 0.216773
vt 0.000000 0.400544
vt 0.000000 0.599456
vt 0.076121 0.783227
vt 0.216773 0.923880
vt 0.400544 1.000000
vt 0.076120 0.783227
vt 0.076120 0.216773
vt 0.551777 0.375000
vt 0.625000 0.448223
vt 0.625000 0.551777
vt 0.551777 0.625000
vt 0.448223 0.625000
vt 0.375000 0.551777
vt 0.375000 0.448223
vt 0.448223 0.375000
s off
f 1/1 2/2 4/3 3/4
f 3/4 4/3 6/5 5/6
f 5/6 6/5 8/7 7/8
f 7/8 8/7 10/9 9/10
f 9/11 10/12 12/13 11/14
f 11/14 12/13 14/15 13/16
f 15/17 16/18 2/2 1/1
f 13/16 14/15 16/18 15/17
f 17/19 18/20 20/21 19/22
f 19/22 20/21 22/23 21/24
f 21/24 22/23 24/25 23/26
f 23/26 24/25 26/27 25/28
f 25/29 26/30 28/31 27/32
f 27/32 28/31 30/33 29/34
f 31/35 32/36 18/20 17/19
f 29/34 30/33 32/36 31/35
f 50/37 49/38 121/39
f 33/40 34/41 36/42 35/43
f 35/43 36/42 38/44 37/45
f 37/45 38/44 40/46 39/47
f 39/47 40/46 42/48 41/49
f 41/50 42/51 44/52 43/53
f 43/53 44/52 46/54 45/55
f 47/56 48/57 34/41 33/40
f 45/55 46/54 48/57 47/56
f 58/58 91/59 122/60
f 115/61 116/62 118/50 117/63
f 59/64 60/65 62/66 61/67
f 113/68 114/69 116/62 115/61
f 61/67 62/66 64/70 63/63
f 111/67 112/40 114/49 113/64
f 63/63 64/70 66/71 65/61
f 109/63 110/50 112/40 111/67
f 65/61 66/71 68/72 67/68
f 107/61 108/62 110/50 109/63
f 67/64 68/65 70/66 69/67
f 105/68 106/69 108/62 107/61
f 69/67 70/66 72/70 71/63
f 103/67 104/40 106/49 105/64
f 71/63 72/70 74/71 73/61
f 101/63 102/50 104/40 103/67
f 73/61 74/71 76/72 75/68
f 99/61 100/62 102/50 101/63
f 75/64 76/65 78/66 77/67
f 97/68 98/69 100/62 99/61
f 77/67 78/66 80/70 79/63
f 95/67 96/40 98/49 97/64
f 79/63 80/70 82/71 81/61
f 62/59 60/58 123/60
f 93/63 94/50 96/40 95/67
f 81/61 82/71 84/72 83/68
f 117/63 118/50 120/40 119/67
f 91/61 92/62 94/50 93/63
f 83/64 84/65 86/66 85/67
f 119/67 120/40 57/49 58/64
f 58/68 57/69 92/62 91/61
f 85/67 86/66 88/70 87/63
f 92/59 57/58 124/60
f 89/61 90/71 60/72 59/68
f 87/63 88/70 90/71 89/61
f 59/58 61/59 125/60
f 49/38 56/73 121/39
f 56/73 55/74 121/39
f 55/74 54/75 121/39
f 54/75 53/76 121/39
f 53/76 52/77 121/39
f 52/77 51/78 121/39
f 51/78 50/37 121/39
f 91/59 93/79 122/60
f 93/79 95/80 122/60
f 95/80 97/81 122/60
f 97/81 99/82 122/60
f 99/82 101/83 122/60
f 101/83 103/84 122/60
f 103/84 105/85 122/60
f 105/85 107/86 122/60
f 107/86 109/87 122/60
f 109/87 111/88 122/60
f 111/88 113/89 122/60
f 113/89 115/90 122/60
f 115/90 117/91 122/60
f 117/91 119/92 122/60
f 119/92 58/58 122/60
f 60/58 90/92 123/60
f 90/92 88/91 123/60
f 88/91 86/90 123/60
f 86/90 84/89 123/60
f 84/89 82/88 123/60
f 82/88 80/87 123/60
f 80/87 78/86 123/60
f 78/86 76/85 123/60
f 76/85 74/84 123/60
f 74/84 72/83 123/60
f 72/83 70/82 123/60
f 70/82 68/81 123/60
f 68/81 66/80 123/60
f 66/80 64/79 123/60
f 64/79 62/59 123/60
f 57/58 120/92 124/60
f 120/92 118/91 124/60
f 118/91 116/93 124/60
f 116/93 114/89 124/60
f 114/89 112/88 124/60
f 112/88 110/94 124/60
f 110/94 108/86 124/60
f 108/86 106/85 124/60
f 106/85 104/84 124/60
f 104/84 102/83 124/60
f 102/83 100/82 124/60
f 100/82 98/81 124/60
f 98/81 96/80 124/60
f 96/80 94/79 124/60
f 94/79 92/59 124/60
f 61/59 63/79 125/60
f 63/79 65/80 125/60
f 65/80 67/81 125/60
f 67/81 69/82 125/60
f 69/82 71/83 125/60
f 71/83 73/84 125/60
f 73/84 75/85 125/60
f 75/85 77/86 125/60
f 77/86 79/94 125/60
f 79/94 81/88 125/60
f 81/88 83/89 125/60
f 83/89 85/93 125/60
f 85/93 87/91 125/60
f 87/91 89/92 125/60
f 89/92 59/58 125/60
f 127/95 126/96 134/60
f 126/96 133/97 134/60
f 133/97 132/98 134/60
f 132/98 131/99 134/60
f 131/99 130/100 134/60
f 130/100 129/101 134/60
f 129/101 128/102 134/60
f 134/60 128/102 127/95

View File

@ -0,0 +1,326 @@
# Blender v2.69 (sub 0) OBJ File: 'cottages-tub.blend'
# www.blender.org
o Cylinder
v 0.092835 -0.500001 -0.466712
v 0.264371 -0.500001 -0.395660
v 0.395660 -0.500001 -0.264371
v 0.466712 -0.500001 -0.092835
v 0.466712 -0.500001 0.092835
v 0.395660 -0.500001 0.264371
v 0.264371 -0.500001 0.395660
v 0.092835 -0.500001 0.466712
v -0.092835 -0.500001 0.466712
v -0.264371 -0.500001 0.395660
v -0.395660 -0.500001 0.264371
v -0.466712 -0.500001 0.092835
v -0.466712 -0.500001 -0.092835
v -0.395660 -0.500001 -0.264371
v -0.264371 -0.500001 -0.395660
v -0.092835 -0.500001 -0.466713
v 0.273184 -0.413334 -0.408849
v 0.408849 -0.413334 -0.273184
v 0.482270 -0.413334 -0.095929
v 0.482270 -0.413334 0.095930
v 0.408849 -0.413334 0.273184
v 0.273184 -0.413334 0.408849
v 0.095929 -0.413334 0.482270
v -0.095929 -0.413334 0.482270
v -0.273184 -0.413334 0.408849
v -0.408849 -0.413334 0.273184
v -0.482270 -0.413334 0.095929
v -0.482270 -0.413334 -0.095930
v -0.408849 -0.413334 -0.273184
v -0.273184 -0.413334 -0.408849
v -0.095929 -0.413334 -0.482270
v 0.095930 -0.413334 -0.482270
v 0.282294 -0.114831 -0.422482
v 0.422482 -0.114831 -0.282294
v 0.498352 -0.114831 -0.099128
v 0.498352 -0.114831 0.099128
v 0.422482 -0.114831 0.282294
v 0.282294 -0.114831 0.422482
v 0.099128 -0.114831 0.498352
v -0.099128 -0.114831 0.498352
v -0.282294 -0.114831 0.422482
v -0.422482 -0.114831 0.282294
v -0.498352 -0.114831 0.099128
v -0.498352 -0.114831 -0.099128
v -0.422482 -0.114831 -0.282294
v -0.282293 -0.114831 -0.422482
v -0.099128 -0.114831 -0.498352
v 0.099128 -0.114831 -0.498352
v 0.083551 -0.500001 -0.420041
v 0.237934 -0.500001 -0.356094
v 0.356094 -0.500001 -0.237934
v 0.420041 -0.500001 -0.083551
v 0.420041 -0.500001 0.083551
v 0.356094 -0.500001 0.237934
v 0.237934 -0.500001 0.356094
v 0.083551 -0.500001 0.420041
v -0.083551 -0.500001 0.420041
v -0.237934 -0.500001 0.356094
v -0.356094 -0.500001 0.237934
v -0.420041 -0.500001 0.083551
v -0.420041 -0.500001 -0.083551
v -0.356094 -0.500001 -0.237934
v -0.237934 -0.500001 -0.356094
v -0.083551 -0.500001 -0.420041
v 0.245866 -0.413335 -0.367964
v 0.367964 -0.413335 -0.245866
v 0.434043 -0.413335 -0.086336
v 0.434043 -0.413335 0.086337
v 0.367964 -0.413335 0.245866
v 0.245866 -0.413335 0.367964
v 0.086337 -0.413335 0.434043
v -0.086336 -0.413335 0.434043
v -0.245866 -0.413335 0.367964
v -0.367964 -0.413335 0.245866
v -0.434043 -0.413335 0.086337
v -0.434043 -0.413335 -0.086337
v -0.367964 -0.413335 -0.245866
v -0.245865 -0.413335 -0.367964
v -0.086336 -0.413335 -0.434043
v 0.086337 -0.413335 -0.434043
v 0.254064 -0.114831 -0.380234
v 0.380234 -0.114831 -0.254064
v 0.448517 -0.114831 -0.089215
v 0.448517 -0.114831 0.089216
v 0.380234 -0.114831 0.254064
v 0.254064 -0.114831 0.380234
v 0.089216 -0.114831 0.448517
v -0.089215 -0.114831 0.448517
v -0.254064 -0.114831 0.380234
v -0.380234 -0.114831 0.254064
v -0.448517 -0.114831 0.089216
v -0.448517 -0.114831 -0.089216
v -0.380234 -0.114831 -0.254064
v -0.254064 -0.114831 -0.380234
v -0.089215 -0.114831 -0.448517
v 0.089216 -0.114831 -0.448517
v 0.087776 -0.352645 -0.441280
v -0.087776 -0.352645 -0.441280
v -0.249965 -0.352645 -0.374099
v -0.374099 -0.352645 -0.249965
v -0.441280 -0.352645 -0.087776
v -0.441280 -0.352645 0.087776
v -0.374099 -0.352645 0.249965
v -0.249965 -0.352645 0.374099
v -0.087776 -0.352645 0.441280
v 0.087776 -0.352645 0.441280
v 0.249965 -0.352645 0.374099
v 0.374099 -0.352645 0.249965
v 0.441280 -0.352645 0.087776
v 0.441280 -0.352645 -0.087776
v 0.374099 -0.352645 -0.249965
v 0.249965 -0.352645 -0.374099
v 0.000000 -0.352645 0.000000
v -0.000000 -0.413334 0.000000
vt 0.211792 0.993590
vt 0.117562 0.954728
vt 0.262789 0.738327
vt 0.211538 0.006410
vt 0.108974 0.006410
vt 0.108974 0.032051
vt 0.211538 0.032051
vt 0.314103 0.006410
vt 0.314103 0.032051
vt 0.416667 0.006410
vt 0.416667 0.032051
vt 0.006410 0.006410
vt 0.006410 0.032051
vt 0.211361 0.993526
vt 0.117394 0.954505
vt 0.262040 0.737637
vt 0.045447 0.882467
vt 0.006475 0.788381
vt 0.006410 0.686569
vt 0.045263 0.592532
vt 0.117118 0.520586
vt 0.204627 0.488094
vt 0.312719 0.481748
vt 0.406687 0.520769
vt 0.478633 0.592807
vt 0.517605 0.686893
vt 0.517670 0.788705
vt 0.478816 0.882742
vt 0.406962 0.954687
vt 0.313044 0.993590
vt 0.045441 0.882922
vt 0.006410 0.789102
vt 0.006410 0.687551
vt 0.045442 0.593732
vt 0.117562 0.521925
vt 0.211793 0.483064
vt 0.313787 0.483064
vt 0.408016 0.521926
vt 0.480136 0.593732
vt 0.519168 0.687551
vt 0.519168 0.789103
vt 0.480136 0.882922
vt 0.408016 0.954728
vt 0.313786 0.993590
vt 0.211538 0.442308
vt 0.211538 0.467949
vt 0.108974 0.467949
vt 0.108974 0.442308
vt 0.314103 0.442308
vt 0.314103 0.467949
vt 0.416667 0.442308
vt 0.416667 0.467949
vt 0.006410 0.467949
vt 0.006410 0.442308
vt 0.416667 0.076923
vt 0.314103 0.076923
vt 0.211538 0.076923
vt 0.108974 0.076923
vt 0.006410 0.076923
vt 0.416667 0.185897
vt 0.314103 0.185897
vt 0.211538 0.185897
vt 0.108974 0.185897
vt 0.006410 0.185897
vt 0.429487 0.032051
vt 0.532051 0.032051
vt 0.532051 0.076923
vt 0.429487 0.076923
vt 0.634615 0.032051
vt 0.634615 0.076923
vt 0.737179 0.032051
vt 0.737179 0.076923
vt 0.839744 0.032051
vt 0.839744 0.076923
vt 0.532051 0.185897
vt 0.429487 0.185897
vt 0.634615 0.185897
vt 0.737179 0.185897
vt 0.839744 0.185897
s off
f 80/1 65/2 114/3
f 7/4 8/5 56/6 55/7
f 6/8 7/4 55/7 54/9
f 5/10 6/8 54/9 53/11
f 4/5 5/12 53/13 52/6
f 3/4 4/5 52/6 51/7
f 2/8 3/4 51/7 50/9
f 1/10 2/8 50/9 49/11
f 16/5 1/12 49/13 64/6
f 15/4 16/5 64/6 63/7
f 14/8 15/4 63/7 62/9
f 13/10 14/8 62/9 61/11
f 12/5 13/12 61/13 60/6
f 11/4 12/5 60/6 59/7
f 10/8 11/4 59/7 58/9
f 9/10 10/8 58/9 57/11
f 8/5 9/12 57/13 56/6
f 98/14 99/15 113/16
f 99/15 100/17 113/16
f 100/17 101/18 113/16
f 101/18 102/19 113/16
f 102/19 103/20 113/16
f 103/20 104/21 113/16
f 104/21 105/22 113/16
f 105/22 106/23 113/16
f 106/23 107/24 113/16
f 107/24 108/25 113/16
f 108/25 109/26 113/16
f 109/26 110/27 113/16
f 110/27 111/28 113/16
f 111/28 112/29 113/16
f 112/29 97/30 113/16
f 97/30 98/14 113/16
f 65/2 66/31 114/3
f 66/31 67/32 114/3
f 67/32 68/33 114/3
f 68/33 69/34 114/3
f 69/34 70/35 114/3
f 70/35 71/36 114/3
f 71/36 72/37 114/3
f 72/37 73/38 114/3
f 73/38 74/39 114/3
f 74/39 75/40 114/3
f 75/40 76/41 114/3
f 76/41 77/42 114/3
f 77/42 78/43 114/3
f 78/43 79/44 114/3
f 79/44 80/1 114/3
f 38/45 86/46 87/47 39/48
f 37/49 85/50 86/46 38/45
f 36/51 84/52 85/50 37/49
f 35/48 83/47 84/53 36/54
f 34/45 82/46 83/47 35/48
f 33/49 81/50 82/46 34/45
f 48/51 96/52 81/50 33/49
f 47/48 95/47 96/53 48/54
f 46/45 94/46 95/47 47/48
f 45/49 93/50 94/46 46/45
f 44/51 92/52 93/50 45/49
f 43/48 91/47 92/53 44/54
f 42/45 90/46 91/47 43/48
f 41/49 89/50 90/46 42/45
f 40/51 88/52 89/50 41/49
f 39/48 87/47 88/53 40/54
s 1
f 1/11 32/55 17/56 2/9
f 2/9 17/56 18/57 3/7
f 3/7 18/57 19/58 4/6
f 4/6 19/58 20/59 5/13
f 5/11 20/55 21/56 6/9
f 6/9 21/56 22/57 7/7
f 7/7 22/57 23/58 8/6
f 8/6 23/58 24/59 9/13
f 9/11 24/55 25/56 10/9
f 10/9 25/56 26/57 11/7
f 11/7 26/57 27/58 12/6
f 12/6 27/58 28/59 13/13
f 13/11 28/55 29/56 14/9
f 14/9 29/56 30/57 15/7
f 16/6 31/58 32/59 1/13
f 15/7 30/57 31/58 16/6
f 32/55 48/60 33/61 17/56
f 17/56 33/61 34/62 18/57
f 18/57 34/62 35/63 19/58
f 19/58 35/63 36/64 20/59
f 20/55 36/60 37/61 21/56
f 21/56 37/61 38/62 22/57
f 22/57 38/62 39/63 23/58
f 23/58 39/63 40/64 24/59
f 24/55 40/60 41/61 25/56
f 25/56 41/61 42/62 26/57
f 26/57 42/62 43/63 27/58
f 27/58 43/63 44/64 28/59
f 28/55 44/60 45/61 29/56
f 29/56 45/61 46/62 30/57
f 31/58 47/63 48/64 32/59
f 30/57 46/62 47/63 31/58
f 49/65 50/66 65/67 80/68
f 50/66 51/69 66/70 65/67
f 51/69 52/71 67/72 66/70
f 52/71 53/73 68/74 67/72
f 53/65 54/66 69/67 68/68
f 54/66 55/69 70/70 69/67
f 55/69 56/71 71/72 70/70
f 56/71 57/73 72/74 71/72
f 57/65 58/66 73/67 72/68
f 58/66 59/69 74/70 73/67
f 59/69 60/71 75/72 74/70
f 60/71 61/73 76/74 75/72
f 61/65 62/66 77/67 76/68
f 62/66 63/69 78/70 77/67
f 64/71 49/73 80/74 79/72
f 63/69 64/71 79/72 78/70
f 97/68 112/67 81/75 96/76
f 112/67 111/70 82/77 81/75
f 111/70 110/72 83/78 82/77
f 110/72 109/74 84/79 83/78
f 109/68 108/67 85/75 84/76
f 108/67 107/70 86/77 85/75
f 107/70 106/72 87/78 86/77
f 106/72 105/74 88/79 87/78
f 105/68 104/67 89/75 88/76
f 104/67 103/70 90/77 89/75
f 103/70 102/72 91/78 90/77
f 102/72 101/74 92/79 91/78
f 101/68 100/67 93/75 92/76
f 100/67 99/70 94/77 93/75
f 98/72 97/74 96/79 95/78
f 99/70 98/72 95/78 94/77

View File

@ -0,0 +1,244 @@
---------------------------------------------------------------------------------------
-- simple anvil that can be used to repair tools
---------------------------------------------------------------------------------------
-- * can be used to repair tools
-- * the hammer gets dammaged a bit at each repair step
---------------------------------------------------------------------------------------
-- License of the hammer picture: CC-by-SA; done by GloopMaster; source:
-- https://github.com/GloopMaster/glooptest/blob/master/glooptest/textures/glooptest_tool_steelhammer.png
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
-- the hammer for the anvil
minetest.register_tool("cottages:hammer", {
description = S("Steel hammer for repairing tools on the anvil"),
image = "glooptest_tool_steelhammer.png",
inventory_image = "glooptest_tool_steelhammer.png",
tool_capabilities = {
full_punch_interval = 0.8,
max_drop_level=1,
groupcaps={
-- about equal to a stone pick (it's not intended as a tool)
cracky={times={[2]=2.00, [3]=1.20}, uses=30, maxlevel=1},
},
damage_groups = {fleshy=6},
}
})
minetest.register_node("cottages:anvil", {
drawtype = "nodebox",
description = S("anvil"),
tiles = {"default_stone.png"}, -- TODO default_steel_block.png, default_obsidian.png are also nice
paramtype = "light",
paramtype2 = "facedir",
groups = {cracky=2},
-- the nodebox model comes from realtest
node_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,-0.3,0.5,-0.4,0.3},
{-0.35,-0.4,-0.25,0.35,-0.3,0.25},
{-0.3,-0.3,-0.15,0.3,-0.1,0.15},
{-0.35,-0.1,-0.2,0.35,0.1,0.2},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5,-0.5,-0.3,0.5,-0.4,0.3},
{-0.35,-0.4,-0.25,0.35,-0.3,0.25},
{-0.3,-0.3,-0.15,0.3,-0.1,0.15},
{-0.35,-0.1,-0.2,0.35,0.1,0.2},
}
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos);
meta:set_string("infotext", S("Anvil"));
local inv = meta:get_inventory();
inv:set_size("input", 1);
-- inv:set_size("material", 9);
-- inv:set_size("sample", 1);
inv:set_size("hammer", 1);
end,
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", S("Anvil (owned by %s)"):format((meta:get_string("owner") or "")));
meta:set_string("formspec",
"size[8,8]"..
"image[7,3;1,1;glooptest_tool_steelhammer.png]"..
-- "list[current_name;sample;0,0.5;1,1;]"..
"list[current_name;input;2.5,1.5;1,1;]"..
-- "list[current_name;material;5,0;3,3;]"..
"list[current_name;hammer;5,3;1,1;]"..
-- "label[0.0,0.0;Sample:]"..
-- "label[0.0,1.0;(Receipe)]"..
"label[2.5,1.0;"..S("Workpiece:").."]"..
-- "label[6.0,-0.5;Materials:]"..
"label[6.0,2.7;"..S("Optional").."]"..
"label[6.0,3.0;"..S("storage for").."]"..
"label[6.0,3.3;"..S("your hammer").."]"..
"label[0,-0.5;"..S("Anvil").."]"..
"label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"..
"label[0,3.0;"..S("Punch anvil with hammer to").."]"..
"label[0,3.3;"..S("repair tool in workpiece-slot.").."]"..
"list[current_player;main;0,4;8,4;]");
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory();
local owner = meta:get_string('owner');
if( not( inv:is_empty("input"))
-- or not( inv:is_empty("material"))
-- or not( inv:is_empty("sample"))
or not( inv:is_empty("hammer"))
or not( player )
or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then
return false;
end
return true;
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return count;
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0;
end
if( listname=='hammer' and stack and stack:get_name() ~= 'cottages:hammer') then
return 0;
end
if( listname=='input'
and( stack:get_wear() == 0
or stack:get_name() == "technic:water_can"
or stack:get_name() == "technic:lava_can" )) then
minetest.chat_send_player( player:get_player_name(),
S('The workpiece slot is for damaged tools only.'));
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( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return stack:get_count()
end,
on_punch = function(pos, node, puncher)
if( not( pos ) or not( node ) or not( puncher )) then
return;
end
-- only punching with the hammer is supposed to work
local wielded = puncher:get_wielded_item();
if( not( wielded ) or not( wielded:get_name() ) or wielded:get_name() ~= 'cottages:hammer') then
return;
end
local name = puncher:get_player_name();
local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory();
local input = inv:get_stack('input',1);
-- only tools can be repaired
if( not( input )
or input:is_empty()
or input:get_name() == "technic:water_can"
or input:get_name() == "technic:lava_can" ) then
return;
end
-- tell the player when the job is done
if( input:get_wear() == 0 ) then
minetest.chat_send_player( puncher:get_player_name(),
S('Your tool has been repaired successfully.'));
return;
end
-- do the actual repair
input:add_wear( -5000 ); -- equals to what technic toolshop does in 5 seconds
inv:set_stack("input", 1, input)
-- damage the hammer slightly
wielded:add_wear( 100 );
puncher:set_wielded_item( wielded );
-- do not spam too much
if( math.random( 1,5 )==1 ) then
minetest.chat_send_player( puncher:get_player_name(),
S('Your workpiece improves.'));
end
end,
is_ground_content = false,
})
---------------------------------------------------------------------------------------
-- crafting receipes
---------------------------------------------------------------------------------------
minetest.register_craft({
output = "cottages:anvil",
recipe = {
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
{'', 'default:steel_ingot','' },
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'} },
})
-- the castle-mod has an anvil as well - with the same receipe. convert the two into each other
if ( minetest.get_modpath("castle") ~= nil ) then
minetest.register_craft({
output = "cottages:anvil",
recipe = {
{'castle:anvil'},
},
})
minetest.register_craft({
output = "castle:anvil",
recipe = {
{'cottages:anvil'},
},
})
end
minetest.register_craft({
output = "cottages:hammer",
recipe = {
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
{'default:steel_ingot','default:steel_ingot','default:steel_ingot'},
{'', 'default:stick', '' } }
})

View File

@ -0,0 +1,210 @@
---------------------------------------------------------------------
-- a barrel and a tub - plus a function that makes 'round' objects
---------------------------------------------------------------------
-- IMPORTANT NOTE: The barrel requires a lot of nodeboxes. That may be
-- too much for weak hardware!
---------------------------------------------------------------------
-- Functionality: right-click to open/close a barrel;
-- punch a barrel to change between vertical/horizontal
---------------------------------------------------------------------
-- Changelog:
-- 24.03.13 Can no longer be opended/closed on rightclick because that is now used for a formspec;
-- instead, it can be filled with liquids.
-- Filled barrels will always be closed, while empty barrels will always be open.
-- pipes: table with the following entries for each pipe-part:
-- f: radius factor; if 1, it will have a radius of half a nodebox and fill the entire nodebox
-- h1, h2: height at witch the nodebox shall start and end; usually -0.5 and 0.5 for a full nodebox
-- b: make a horizontal part/shelf
-- horizontal: if 1, then x and y coordinates will be swapped
-- TODO: option so that it works without nodeboxes
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
barrel = {};
-- prepare formspec
barrel.on_construct = function( pos )
local meta = minetest.get_meta(pos);
local percent = math.random( 1, 100 ); -- TODO: show real filling
meta:set_string( 'formspec',
"size[8,9]"..
"image[2.6,2;2,3;default_sandstone.png^[lowpart:"..
(100-percent)..":default_desert_stone.png]".. -- TODO: better images
"label[2.2,0;"..S("Pour:").."]"..
"list[current_name;input;3,0.5;1,1;]"..
"label[5,3.3;"..S("Fill:").."]"..
"list[current_name;output;5,3.8;1,1;]"..
"list[current_player;main;0,5;8,4;]");
meta:set_string( 'liquid_type', '' ); -- which liquid is in the barrel?
meta:set_int( 'liquid_level', 0 ); -- how much of the liquid is in there?
local inv = meta:get_inventory()
inv:set_size("input", 1); -- to fill in new liquid
inv:set_size("output", 1); -- to extract liquid
end
-- can only be digged if there are no more vessels/buckets in any of the slots
-- TODO: allow digging of a filled barrel? this would disallow stacking of them
barrel.can_dig = function( pos, player )
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return ( inv:is_empty('input')
and inv:is_empty('output'));
end
-- the barrel received input; either a new liquid that is to be poured in or a vessel that is to be filled
barrel.on_metadata_inventory_put = function( pos, listname, index, stack, player )
end
-- right-click to open/close barrel; punch to switch between horizontal/vertical position
minetest.register_node("cottages:barrel", {
description = S("barrel (closed)"),
paramtype = "light",
drawtype = "mesh",
mesh = "cottages_barrel_closed.obj",
tiles = {"cottages_barrel.png" },
groups = { tree = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2
},
drop = "cottages:barrel",
-- on_rightclick = function(pos, node, puncher)
-- minetest.add_node(pos, {name = "cottages:barrel_open", param2 = node.param2})
-- end,
-- TODO: on_rightclick is no longer available - maybe open if empty and closed if full?
on_punch = function(pos, node, puncher)
minetest.add_node(pos, {name = "cottages:barrel_lying", param2 = node.param2})
end,
on_construct = function( pos )
return barrel.on_construct( pos );
end,
can_dig = function(pos,player)
return barrel.can_dig( pos, player );
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
return barrel.on_metadata_inventory_put( pos, listname, index, stack, player );
end,
is_ground_content = false,
})
-- this barrel is opened at the top
minetest.register_node("cottages:barrel_open", {
description = S("barrel (open)"),
paramtype = "light",
drawtype = "mesh",
mesh = "cottages_barrel.obj",
tiles = {"cottages_barrel.png" },
groups = { tree = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2
},
drop = "cottages:barrel",
-- on_rightclick = function(pos, node, puncher)
-- minetest.add_node(pos, {name = "cottages:barrel", param2 = node.param2})
-- end,
on_punch = function(pos, node, puncher)
minetest.add_node(pos, {name = "cottages:barrel_lying_open", param2 = node.param2})
end,
is_ground_content = false,
})
-- horizontal barrel
minetest.register_node("cottages:barrel_lying", {
description = S("barrel (closed), lying somewhere"),
paramtype = "light",
paramtype2 = "facedir",
drawtype = "mesh",
mesh = "cottages_barrel_closed_lying.obj",
tiles = {"cottages_barrel.png" },
groups = { tree = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2
},
drop = "cottages:barrel",
on_rightclick = function(pos, node, puncher)
minetest.add_node(pos, {name = "cottages:barrel_lying_open", param2 = node.param2})
end,
on_punch = function(pos, node, puncher)
if( node.param2 < 4 ) then
minetest.add_node(pos, {name = "cottages:barrel_lying", param2 = (node.param2+1)})
else
minetest.add_node(pos, {name = "cottages:barrel", param2 = 0})
end
end,
is_ground_content = false,
})
-- horizontal barrel, open
minetest.register_node("cottages:barrel_lying_open", {
description = S("barrel (opened), lying somewhere"),
paramtype = "light",
paramtype2 = "facedir",
drawtype = "mesh",
mesh = "cottages_barrel_lying.obj",
tiles = {"cottages_barrel.png" },
groups = { tree = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2
},
drop = "cottages:barrel",
on_rightclick = function(pos, node, puncher)
minetest.add_node(pos, {name = "cottages:barrel_lying", param2 = node.param2})
end,
on_punch = function(pos, node, puncher)
if( node.param2 < 4 ) then
minetest.add_node(pos, {name = "cottages:barrel_lying_open", param2 = (node.param2+1)})
else
minetest.add_node(pos, {name = "cottages:barrel_open", param2 = 0})
end
end,
is_ground_content = false,
})
-- let's hope "tub" is the correct english word for "bottich"
minetest.register_node("cottages:tub", {
description = S("tub"),
paramtype = "light",
drawtype = "mesh",
mesh = "cottages_tub.obj",
tiles = {"cottages_barrel.png" },
groups = { tree = 1, snappy = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2
},
is_ground_content = false,
})
minetest.register_craft({
output = "cottages:barrel",
recipe = {
{"group:wood", "", "group:wood" },
{"default:steel_ingot", "", "default:steel_ingot"},
{"group:wood", "group:wood", "group:wood" },
},
})
minetest.register_craft({
output = "cottages:tub 2",
recipe = {
{"cottages:barrel"},
},
})
minetest.register_craft({
output = "cottages:barrel",
recipe = {
{"cottages:tub"},
{"cottages:tub"},
},
})

View File

@ -0,0 +1,69 @@
-- TODO: make these chests as chests and indicate that they are owned by npc
-- TODO: add bags (not for carrying around but for decoration)
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
cottages_chests = {}
-- uses default.chest_formspec for now
cottages_chests.on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",default.chest_formspec)
-- meta:set_string("infotext", "Chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
end
cottages_chests.can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end
-- the chests do not need receipes since they are only placeholders and not intended to be built by players
-- (they are later on supposed to be filled with diffrent items by fill_chest.lua)
minetest.register_node("cottages:chest_private", {
description = S("private NPC chest"),
infotext = "chest containing the possesions of one of the inhabitants",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
on_construct = cottages_chests.on_construct,
can_dig = cottages_chests.can_dig,
is_ground_content = false,
})
minetest.register_node("cottages:chest_work", {
description = S("chest for work utils and kitchens"),
infotext = "everything the inhabitant needs for his work",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
on_construct = cottages_chests.on_construct,
can_dig = cottages_chests.can_dig,
is_ground_content = false,
})
minetest.register_node("cottages:chest_storage", {
description = S("storage chest"),
infotext = "stored food reserves",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
on_construct = cottages_chests.on_construct,
can_dig = cottages_chests.can_dig,
is_ground_content = false,
})

View File

@ -0,0 +1,443 @@
-----------------------------------------------------------------------------------------------------------
-- These nodes are all like doors in a way:
-- * window shutters (they open on right-click and when it turns day; they close at night)
-- * a half-door where the top part can be opened seperately from the bottom part
-- * a gate that drops to the floor when opened
--
-----------------------------------------------------------------------------------------------------------
-- IMPORTANT NOTICE: If you have a very slow computer, it might be wise to increase the rate at which the
-- abm that opens/closes the window shutters is called. Anything less than 10 minutes
-- (600 seconds) ought to be ok.
-----------------------------------------------------------------------------------------------------------
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
-----------------------------------------------------------------------------------------------------------
-- small window shutters for single-node-windows; they open at day and close at night if the abm is working
-----------------------------------------------------------------------------------------------------------
-- propagate shutting/closing of window shutters to window shutters below/above this one
cottages_window_sutter_operate = function( pos, old_node_state_name, new_node_state_name )
local offsets = {-1,1,-2,2,-3,3};
local stop_up = 0;
local stop_down = 0;
for i,v in ipairs(offsets) do
local node = minetest.env:get_node_or_nil( {x=pos.x, y=(pos.y+v), z=pos.z } );
if( node and node.name and node.name==old_node_state_name
and ( (v > 0 and stop_up == 0 )
or (v < 0 and stop_down == 0 ))) then
minetest.env:add_node({x=pos.x, y=(pos.y+v), z=pos.z }, {name = new_node_state_name, param2 = node.param2})
-- found a diffrent node - no need to search further up
elseif( v > 0 and stop_up == 0 ) then
stop_up = 1;
elseif( v < 0 and stop_down == 0 ) then
stop_down = 1;
end
end
end
-- window shutters - they cover half a node to each side
minetest.register_node("cottages:window_shutter_open", {
description = S("opened window shutters"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
-- larger than one node but slightly smaller than a half node so that wallmounted torches pose no problem
node_box = {
type = "fixed",
fixed = {
{-0.90, -0.5, 0.4, -0.45, 0.5, 0.5},
{ 0.45, -0.5, 0.4, 0.9, 0.5, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.9, -0.5, 0.4, 0.9, 0.5, 0.5},
},
},
on_rightclick = function(pos, node, puncher)
minetest.env:add_node(pos, {name = "cottages:window_shutter_closed", param2 = node.param2})
cottages_window_sutter_operate( pos, "cottages:window_shutter_open", "cottages:window_shutter_closed" );
end,
is_ground_content = false,
})
minetest.register_node("cottages:window_shutter_closed", {
description = S("closed window shutters"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4, -0.05, 0.5, 0.5},
{ 0.05, -0.5, 0.4, 0.5, 0.5, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4, 0.5, 0.5, 0.5},
},
},
on_rightclick = function(pos, node, puncher)
minetest.env:add_node(pos, {name = "cottages:window_shutter_open", param2 = node.param2})
cottages_window_sutter_operate( pos, "cottages:window_shutter_closed", "cottages:window_shutter_open" );
end,
is_ground_content = false,
drop = "cottages:window_shutter_open",
})
-- open shutters in the morning
minetest.register_abm({
nodenames = {"cottages:window_shutter_closed"},
interval = 20, -- change this to 600 if your machine is too slow
chance = 3, -- not all people wake up at the same time!
action = function(pos)
-- at this time, sleeping in a bed is not possible
if( not(minetest.env:get_timeofday() < 0.2 or minetest.env:get_timeofday() > 0.805)) then
local old_node = minetest.env:get_node( pos );
minetest.env:add_node(pos, {name = "cottages:window_shutter_open", param2 = old_node.param2})
cottages_window_sutter_operate( pos, "cottages:window_shutter_closed", "cottages:window_shutter_open" );
end
end
})
-- close them at night
minetest.register_abm({
nodenames = {"cottages:window_shutter_open"},
interval = 20, -- change this to 600 if your machine is too slow
chance = 2,
action = function(pos)
-- same time at which sleeping is allowed in beds
if( minetest.env:get_timeofday() < 0.2 or minetest.env:get_timeofday() > 0.805) then
local old_node = minetest.env:get_node( pos );
minetest.env:add_node(pos, {name = "cottages:window_shutter_closed", param2 = old_node.param2})
cottages_window_sutter_operate( pos, "cottages:window_shutter_open", "cottages:window_shutter_closed" );
end
end
})
------------------------------------------------------------------------------------------------------------------------------
-- a half door; can be combined to a full door where the upper part can be operated seperately; usually found in barns/stables
------------------------------------------------------------------------------------------------------------------------------
minetest.register_node("cottages:half_door", {
description = S("half door"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4, 0.48, 0.5, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4, 0.48, 0.5, 0.5},
},
},
on_rightclick = function(pos, node, puncher)
local node2 = minetest.env:get_node( {x=pos.x,y=(pos.y+1),z=pos.z});
local param2 = node.param2;
if( param2%4 == 1) then param2 = param2+1; --2;
elseif( param2%4 == 2) then param2 = param2-1; --1;
elseif( param2%4 == 3) then param2 = param2-3; --0;
elseif( param2%4 == 0) then param2 = param2+3; --3;
end;
minetest.env:add_node(pos, {name = "cottages:half_door", param2 = param2})
-- if the node above consists of a door of the same type, open it as well
-- Note: doors beneath this one are not opened! It is a special feature of these doors that they can be opend partly
if( node2 ~= nil and node2.name == node.name and node2.param2==node.param2) then
minetest.env:add_node( {x=pos.x,y=(pos.y+1),z=pos.z}, {name = "cottages:half_door", param2 = param2})
end
end,
is_ground_content = false,
})
minetest.register_node("cottages:half_door_inverted", {
description = S("half door inverted"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.48, 0.5, -0.4},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.48, 0.5, -0.4},
},
},
on_rightclick = function(pos, node, puncher)
local node2 = minetest.env:get_node( {x=pos.x,y=(pos.y+1),z=pos.z});
local param2 = node.param2;
if( param2%4 == 1) then param2 = param2-1; --0;
elseif( param2%4 == 0) then param2 = param2+1; --1;
elseif( param2%4 == 2) then param2 = param2+1; --3;
elseif( param2%4 == 3) then param2 = param2-1; --2;
end;
minetest.env:add_node(pos, {name = "cottages:half_door_inverted", param2 = param2})
-- open upper parts of this door (if there are any)
if( node2 ~= nil and node2.name == node.name and node2.param2==node.param2) then
minetest.env:add_node( {x=pos.x,y=(pos.y+1),z=pos.z}, {name = "cottages:half_door_inverted", param2 = param2})
end
end,
is_ground_content = false,
})
------------------------------------------------------------------------------------------------------------------------------
-- this gate for fences solves the "where to store the opened gate" problem by dropping it to the floor in optened state
------------------------------------------------------------------------------------------------------------------------------
minetest.register_node("cottages:gate_closed", {
description = S("closed fence gate"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"default_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.85, -0.25, -0.02, 0.85, -0.05, 0.02},
{ -0.85, 0.15, -0.02, 0.85, 0.35, 0.02},
{ -0.80, -0.05, -0.02, -0.60, 0.15, 0.02},
{ 0.60, -0.05, -0.02, 0.80, 0.15, 0.02},
{ -0.15, -0.05, -0.02, 0.15, 0.15, 0.02},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.85, -0.25, -0.1, 0.85, 0.35, 0.1},
},
},
on_rightclick = function(pos, node, puncher)
minetest.env:add_node(pos, {name = "cottages:gate_open", param2 = node.param2})
end,
is_ground_content = false,
})
minetest.register_node("cottages:gate_open", {
description = S("opened fence gate"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"default_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
drop = "cottages:gate_closed",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
node_box = {
type = "fixed",
fixed = {
{ -0.85, -0.5, -0.25, 0.85, -0.46, -0.05},
{ -0.85, -0.5, 0.15, 0.85, -0.46, 0.35},
{ -0.80, -0.5, -0.05, -0.60, -0.46, 0.15},
{ 0.60, -0.5, -0.05, 0.80, -0.46, 0.15},
{ -0.15, -0.5, -0.05, 0.15, -0.46, 0.15},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.85, -0.5, -0.25, 0.85, -0.3, 0.35},
},
},
on_rightclick = function(pos, node, puncher)
minetest.env:add_node(pos, {name = "cottages:gate_closed", param2 = node.param2})
end,
is_ground_content = false,
drop = "cottages:gate_closed",
})
-----------------------------------------------------------------------------------------------------------
-- a hatch; nodebox definition taken from realtest
-----------------------------------------------------------------------------------------------------------
-- hatches rotate around their axis
-- old facedir: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23
new_facedirs = { 10,19, 4,13, 2,18,22,14,20,16, 0,12,11, 3, 7,21, 9,23, 5, 1, 8,15, 6,17};
cottages.register_hatch = function( nodename, description, texture, receipe_item )
minetest.register_node( nodename, {
description = S(description), -- not that there are any other...
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = { texture },
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.49, -0.55, -0.49, -0.3, -0.45, 0.45},
-- {-0.5, -0.55, 0.3, 0.3, -0.45, 0.5},
{0.3, -0.55, -0.3, 0.49, -0.45, 0.45},
{0.49, -0.55, -0.49, -0.3, -0.45, -0.3},
{-0.075, -0.55, -0.3, 0.075, -0.45, 0.3},
{-0.3, -0.55, -0.075, -0.075, -0.45, 0.075},
{0.075, -0.55, -0.075, 0.3, -0.45, 0.075},
{-0.3, -0.55, 0.3, 0.3, -0.45, 0.45},
-- hinges
{-0.45,-0.530, 0.45, -0.15,-0.470, 0.525},
{ 0.15,-0.530, 0.45, 0.45,-0.470, 0.525},
-- handle
{-0.05,-0.60,-0.35, 0.05,-0.40,-0.45},
},
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.55, -0.5, 0.5, -0.45, 0.5},
},
on_rightclick = function(pos, node, puncher)
minetest.env:add_node(pos, {name = node.name, param2 = new_facedirs[ node.param2+1 ]})
end,
is_ground_content = false,
on_place = minetest.rotate_node,
})
minetest.register_craft({
output = nodename,
recipe = {
{ '', '', receipe_item },
{ receipe_item, 'default:stick', '' },
{ '', '', '' },
}
})
end
-- further alternate hatch materials: wood, tree, copper_block
cottages.register_hatch( 'cottages:hatch_wood', 'wooden hatch', 'cottages_minimal_wood.png', 'stairs:slab_wood' );
cottages.register_hatch( 'cottages:hatch_steel', 'metal hatch', 'default_steel_block.png', 'default:steel_ingot' );
-----------------------------------------------------------------------------------------------------------
-- and now the crafting receipes:
-----------------------------------------------------------------------------------------------------------
-- transform opend and closed shutters into each other for convenience
minetest.register_craft({
output = "cottages:window_shutter_open",
recipe = {
{"cottages:window_shutter_closed" },
}
})
minetest.register_craft({
output = "cottages:window_shutter_closed",
recipe = {
{"cottages:window_shutter_open" },
}
})
minetest.register_craft({
output = "cottages:window_shutter_open",
recipe = {
{"default:wood", "", "default:wood" },
}
})
-- transform one half door into another
minetest.register_craft({
output = "cottages:half_door",
recipe = {
{"cottages:half_door_inverted" },
}
})
minetest.register_craft({
output = "cottages:half_door_inverted",
recipe = {
{"cottages:half_door" },
}
})
minetest.register_craft({
output = "cottages:half_door 2",
recipe = {
{"", "default:wood", "" },
{"", "doors:door_wood", "" },
}
})
-- transform open and closed versions into into another for convenience
minetest.register_craft({
output = "cottages:gate_closed",
recipe = {
{"cottages:gate_open" },
}
})
minetest.register_craft({
output = "cottages:gate_open",
recipe = {
{"cottages:gate_closed"},
}
})
minetest.register_craft({
output = "cottages:gate_closed",
recipe = {
{"default:stick", "default:stick", "default:wood" },
}
})

View File

@ -0,0 +1,165 @@
-- 22.01.13 Changed texture to that of the wood from the minimal development game
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
minetest.register_node("cottages:fence_small", {
description = S("small fence"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.45, -0.35, 0.46, 0.45, -0.20, 0.50},
{ -0.45, 0.00, 0.46, 0.45, 0.15, 0.50},
{ -0.45, 0.35, 0.46, 0.45, 0.50, 0.50},
{ -0.50, -0.50, 0.46, -0.45, 0.50, 0.50},
{ 0.45, -0.50, 0.46, 0.50, 0.50, 0.50},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.50, -0.50, 0.4, 0.50, 0.50, 0.5},
},
},
is_ground_content = false,
})
minetest.register_node("cottages:fence_corner", {
description = S("small fence corner"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.45, -0.35, 0.46, 0.45, -0.20, 0.50},
{ -0.45, 0.00, 0.46, 0.45, 0.15, 0.50},
{ -0.45, 0.35, 0.46, 0.45, 0.50, 0.50},
{ -0.50, -0.50, 0.46, -0.45, 0.50, 0.50},
{ 0.45, -0.50, 0.46, 0.50, 0.50, 0.50},
{ 0.46, -0.35, -0.45, 0.50, -0.20, 0.45},
{ 0.46, 0.00, -0.45, 0.50, 0.15, 0.45},
{ 0.46, 0.35, -0.45, 0.50, 0.50, 0.45},
{ 0.46, -0.50, -0.50, 0.50, 0.50, -0.45},
{ 0.46, -0.50, 0.45, 0.50, 0.50, 0.50},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.50, -0.50,-0.5, 0.50, 0.50, 0.5},
},
},
is_ground_content = false,
})
minetest.register_node("cottages:fence_end", {
description = S("small fence end"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.45, -0.35, 0.46, 0.45, -0.20, 0.50},
{ -0.45, 0.00, 0.46, 0.45, 0.15, 0.50},
{ -0.45, 0.35, 0.46, 0.45, 0.50, 0.50},
{ -0.50, -0.50, 0.46, -0.45, 0.50, 0.50},
{ 0.45, -0.50, 0.46, 0.50, 0.50, 0.50},
{ 0.46, -0.35, -0.45, 0.50, -0.20, 0.45},
{ 0.46, 0.00, -0.45, 0.50, 0.15, 0.45},
{ 0.46, 0.35, -0.45, 0.50, 0.50, 0.45},
{ 0.46, -0.50, -0.50, 0.50, 0.50, -0.45},
{ 0.46, -0.50, 0.45, 0.50, 0.50, 0.50},
{ -0.50, -0.35, -0.45, -0.46, -0.20, 0.45},
{ -0.50, 0.00, -0.45, -0.46, 0.15, 0.45},
{ -0.50, 0.35, -0.45, -0.46, 0.50, 0.45},
{ -0.50, -0.50, -0.50, -0.46, 0.50, -0.45},
{ -0.50, -0.50, 0.45, -0.46, 0.50, 0.50},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.50, -0.50,-0.5, 0.50, 0.50, 0.5},
},
},
is_ground_content = false,
})
minetest.register_craft({
output = "cottages:fence_small 3",
recipe = {
{"default:fence_wood","default:fence_wood" },
}
})
-- xfences can be configured to replace normal fences - which makes them uncraftable
if ( minetest.get_modpath("xfences") ~= nil ) then
minetest.register_craft({
output = "cottages:fence_small 3",
recipe = {
{"xfences:fence","xfences:fence" },
}
})
end
minetest.register_craft({
output = "cottages:fence_corner",
recipe = {
{"cottages:fence_small","cottages:fence_small" },
}
})
minetest.register_craft({
output = "cottages:fence_small 2",
recipe = {
{"cottages:fence_corner" },
}
})
minetest.register_craft({
output = "cottages:fence_end",
recipe = {
{"cottages:fence_small","cottages:fence_small", "cottages:fence_small" },
}
})
minetest.register_craft({
output = "cottages:fence_small 3",
recipe = {
{"cottages:fence_end" },
}
})

View File

@ -0,0 +1,378 @@
---------------------------------------------------------------------------------------
-- furniture
---------------------------------------------------------------------------------------
-- contains:
-- * a bed seperated into foot and head reagion so that it can be placed manually; it has
-- no other functionality than decoration!
-- * a sleeping mat - mostly for NPC that cannot afford a bet yet
-- * bench - if you don't have 3dforniture:chair, then this is the next best thing
-- * table - very simple one
-- * shelf - for stroring things; this one is 3d
-- * stovepipe - so that the smoke from the furnace can get away
-- * washing place - put it over a water source and you can 'wash' yourshelf
---------------------------------------------------------------------------------------
-- TODO: change the textures of the bed (make the clothing white, foot path not entirely covered with cloth)
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
-- a bed without functionality - just decoration
minetest.register_node("cottages:bed_foot", {
description = S("Bed (foot region)"),
drawtype = "nodebox",
tiles = {"cottages_beds_bed_top_bottom.png", "default_wood.png", "cottages_beds_bed_side.png", "cottages_beds_bed_side.png", "cottages_beds_bed_side.png", "cottages_beds_bed_side.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
-- bed
{-0.5, 0.0, -0.5, 0.5, 0.3, 0.5},
-- stützen
{-0.5, -0.5, -0.5, -0.4, 0.5, -0.4},
{ 0.4,-0.5, -0.5, 0.5, 0.5, -0.4},
-- Querstrebe
{-0.4, 0.3, -0.5, 0.4, 0.5, -0.4}
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0.3, 0.5},
}
},
is_ground_content = false,
})
-- the bed is split up in two parts to avoid destruction of blocks on placement
minetest.register_node("cottages:bed_head", {
description = S("Bed (head region)"),
drawtype = "nodebox",
tiles = {"cottages_beds_bed_top_top.png", "default_wood.png", "cottages_beds_bed_side_top_r.png", "cottages_beds_bed_side_top_l.png", "default_wood.png", "cottages_beds_bed_side.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
-- bed
{-0.5, 0.0, -0.5, 0.5, 0.3, 0.5},
-- stützen
{-0.5,-0.5, 0.4, -0.4, 0.5, 0.5},
{ 0.4,-0.5, 0.4, 0.5, 0.5, 0.5},
-- Querstrebe
{-0.4, 0.3, 0.4, 0.4, 0.5, 0.5}
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0.3, 0.5},
}
},
is_ground_content = false,
})
-- the basic version of a bed - a sleeping mat
-- to facilitate upgrade path straw mat -> sleeping mat -> bed, this uses a nodebox
minetest.register_node("cottages:sleeping_mat", {
description = S("sleeping mat"),
drawtype = 'nodebox',
tiles = { 'cottages_sleepingmat.png' }, -- done by VanessaE
wield_image = 'cottages_sleepingmat.png',
inventory_image = 'cottages_sleepingmat.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "wallmounted",
},
node_box = {
type = "fixed",
fixed = {
{-0.48, -0.5,-0.48, 0.48, -0.45, 0.48},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.48, -0.5,-0.48, 0.48, -0.25, 0.48},
}
},
is_ground_content = false,
})
-- furniture; possible replacement: 3dforniture:chair
minetest.register_node("cottages:bench", {
drawtype = "nodebox",
description = S("simple wooden bench"),
tiles = {"cottages_minimal_wood.png", "cottages_minimal_wood.png", "cottages_minimal_wood.png", "cottages_minimal_wood.png", "cottages_minimal_wood.png", "cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(),
node_box = {
type = "fixed",
fixed = {
-- sitting area
{-0.5, -0.15, 0.1, 0.5, -0.05, 0.5},
-- stützen
{-0.4, -0.5, 0.2, -0.3, -0.15, 0.4},
{ 0.3, -0.5, 0.2, 0.4, -0.15, 0.4},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0, 0.5, 0, 0.5},
}
},
is_ground_content = false,
})
-- a simple table; possible replacement: 3dforniture:table
minetest.register_node("cottages:table", {
description = S("table"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.1, -0.5, -0.1, 0.1, 0.3, 0.1},
{ -0.5, 0.3, -0.5, 0.5, 0.4, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.4, 0.5},
},
},
is_ground_content = false,
})
-- looks better than two slabs impersonating a shelf; also more 3d than a bookshelf
-- the infotext shows if it's empty or not
minetest.register_node("cottages:shelf", {
description = S("open storage shelf"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.3, -0.4, 0.5, 0.5},
{ 0.4, -0.5, -0.3, 0.5, 0.5, 0.5},
{ -0.5, -0.2, -0.3, 0.5, -0.1, 0.5},
{ -0.5, 0.3, -0.3, 0.5, 0.4, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
},
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos);
meta:set_string("formspec",
"size[8,8]"..
"list[current_name;main;0,0;8,3;]"..
"list[current_player;main;0,4;8,4;]")
meta:set_string("infotext", S("open storage shelf"))
local inv = meta:get_inventory();
inv:set_size("main", 24);
end,
can_dig = function( pos,player )
local meta = minetest.env:get_meta( pos );
local inv = meta:get_inventory();
return inv:is_empty("main");
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta( pos );
meta:set_string('infotext', S('open storage shelf (in use)'));
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.env:get_meta( pos );
local inv = meta:get_inventory();
if( inv:is_empty("main")) then
meta:set_string('infotext', S('open storage shelf (empty)'));
end
end,
is_ground_content = false,
})
-- so that the smoke from a furnace can get out of a building
minetest.register_node("cottages:stovepipe", {
description = S("stovepipe"),
drawtype = "nodebox",
tiles = {"default_steel_block.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ 0.20, -0.5, 0.20, 0.45, 0.5, 0.45},
},
},
selection_box = {
type = "fixed",
fixed = {
{ 0.20, -0.5, 0.20, 0.45, 0.5, 0.45},
},
},
is_ground_content = false,
})
-- this washing place can be put over a water source (it is open at the bottom)
minetest.register_node("cottages:washing", {
description = S("washing place"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"default_clay.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.2, -0.2},
{ -0.5, -0.5, -0.2, -0.4, 0.2, 0.5},
{ 0.4, -0.5, -0.2, 0.5, 0.2, 0.5},
{ -0.4, -0.5, 0.4, 0.4, 0.2, 0.5},
{ -0.4, -0.5, -0.2, 0.4, 0.2, -0.1},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.2, 0.5},
},
},
on_rightclick = function(pos, node, player)
-- works only with water beneath
local node_under = minetest.env:get_node( {x=pos.x, y=(pos.y-1), z=pos.z} );
if( not( node_under ) or node_under.name == "ignore" or (node_under.name ~= 'default:water_source' and node_under.name ~= 'default:water_flowing')) then
minetest.chat_send_player( player:get_player_name(), S("Sorry. This washing place is out of water. Please place it above water!"));
else
minetest.chat_send_player( player:get_player_name(), S("You feel much cleaner after some washing."));
end
end,
is_ground_content = false,
})
---------------------------------------------------------------------------------------
-- crafting receipes
---------------------------------------------------------------------------------------
minetest.register_craft({
output = "cottages:bed_foot",
recipe = {
{"wool:white", "", "", },
{"default:wood", "", "", },
{"default:stick", "", "", }
}
})
minetest.register_craft({
output = "cottages:bed_head",
recipe = {
{"", "", "wool:white", },
{"", "default:stick", "default:wood", },
{"", "", "default:stick", }
}
})
minetest.register_craft({
output = "cottages:sleeping_mat",
recipe = {
{"wool:white", "cottages:straw_mat","cottages:straw_mat" }
}
})
minetest.register_craft({
output = "cottages:table",
recipe = {
{"", "stairs:slab_wood", "", },
{"", "default:stick", "" }
}
})
minetest.register_craft({
output = "cottages:bench",
recipe = {
{"", "default:wood", "", },
{"default:stick", "", "default:stick", }
}
})
minetest.register_craft({
output = "cottages:shelf",
recipe = {
{"default:stick", "default:wood", "default:stick", },
{"default:stick", "default:wood", "default:stick", },
{"default:stick", "", "default:stick"}
}
})
minetest.register_craft({
output = "cottages:washing 2",
recipe = {
{"default:stick", },
{"default:clay", },
}
})
minetest.register_craft({
output = "cottages:stovepipe 2",
recipe = {
{'default:steel_ingot', '', 'default:steel_ingot'},
}
})

View File

@ -0,0 +1,272 @@
---------------------------------------------------------------------------------------
-- decoration and building material
---------------------------------------------------------------------------------------
-- * includes a wagon wheel that can be used as decoration on walls or to build (stationary) wagons
-- * dirt road - those are more natural in small old villages than cobble roads
-- * loam - no, old buildings are usually not built out of clay; loam was used
-- * straw - useful material for roofs
-- * glass pane - an improvement compared to fence posts as windows :-)
---------------------------------------------------------------------------------------
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
-- can be used to buid real stationary wagons or attached to walls as decoration
minetest.register_node("cottages:wagon_wheel", {
description = S("wagon wheel"),
drawtype = "signlike",
tiles = {"cottages_wagonwheel.png"}, -- done by VanessaE!
inventory_image = "cottages_wagonwheel.png",
wield_image = "cottages_wagonwheel.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "wallmounted",
},
groups = {choppy=2,dig_immediate=2,attached_node=1},
legacy_wallmounted = true,
sounds = default.node_sound_defaults(),
is_ground_content = false,
})
-- a nice dirt road for small villages or paths to fields
minetest.register_node("cottages:feldweg", {
description = S("dirt road"),
tiles = {"cottages_feldweg.png","default_dirt.png", "default_dirt.png^default_grass_side.png"},
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults,
is_ground_content = false,
})
-- people didn't use clay for houses; they did build with loam
minetest.register_node("cottages:loam", {
description = S("loam"),
tiles = {"cottages_loam.png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults,
is_ground_content = false,
})
-- create stairs if possible
if( stairs and stairs.register_stair_and_slab) then
stairs.register_stair_and_slab("feldweg", "cottages:feldweg",
{snappy=2,choppy=2,oddly_breakable_by_hand=2},
{"cottages_feldweg.png","default_dirt.png", "default_grass.png","default_grass.png","cottages_feldweg.png","cottages_feldweg.png"},
S("Dirt Road Stairs"),
S("Dirt Road, half height"),
default.node_sound_dirt_defaults())
stairs.register_stair_and_slab("loam", "cottages:loam",
{snappy=2,choppy=2,oddly_breakable_by_hand=2},
{"cottages_loam.png"},
S("Loam Stairs"),
S("Loam Slab"),
default.node_sound_dirt_defaults())
stairs.register_stair_and_slab("clay", "default:clay",
{crumbly=3},
{"default_clay.png"},
S("Clay Stairs"),
S("Clay Slab"),
default.node_sound_dirt_defaults())
end
-- straw is a common material for places where animals are kept indoors
-- right now, this block mostly serves as a placeholder
minetest.register_node("cottages:straw_ground", {
description = S("straw ground for animals"),
tiles = {"cottages_darkage_straw.png","cottages_loam.png","cottages_loam.png","cottages_loam.png","cottages_loam.png","cottages_loam.png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults,
is_ground_content = false,
})
-- note: these houses look good with a single fence pile as window! the glass pane is the version for 'richer' inhabitants
minetest.register_node("cottages:glass_pane", {
description = S("simple glass pane (centered)"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_glass_pane.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.05, 0.5, 0.5, 0.05},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.05, 0.5, 0.5, 0.05},
},
},
is_ground_content = false,
})
minetest.register_node("cottages:glass_pane_side", {
description = S("simple glass pane"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_glass_pane.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.40, 0.5, 0.5, -0.50},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.40, 0.5, 0.5, -0.50},
},
},
is_ground_content = false,
})
---------------------------------------------------------------------------------------
-- a very small wooden slab
---------------------------------------------------------------------------------------
minetest.register_node("cottages:wood_flat", {
description = S("flat wooden planks"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"cottages_minimal_wood.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.50, 0.5, -0.5+1/16, 0.50},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.50, 0.5, -0.5+1/16, 0.50},
},
},
is_ground_content = false,
on_place = minetest.rotate_node,
})
---------------------------------------------------------------------------------------
-- useful for building tents
---------------------------------------------------------------------------------------
minetest.register_node("cottages:wool_tent", {
description = S("wool for tents"),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
tiles = {"wool_white.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.50, 0.5, -0.5+1/16, 0.50},
},
},
selection_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, -0.50, 0.5, -0.5+1/16, 0.50},
},
},
is_ground_content = false,
on_place = minetest.rotate_node,
})
---------------------------------------------------------------------------------------
-- crafting receipes
---------------------------------------------------------------------------------------
minetest.register_craft({
output = "cottages:wagon_wheel 3",
recipe = {
{"default:iron_lump", "default:stick", "default:iron_lump" },
{"default:stick", "default:steel_ingot", "default:stick" },
{"default:iron_lump", "default:stick", "default:iron_lump" }
}
})
-- run a wagon wheel over dirt :-)
minetest.register_craft({
output = "cottages:feldweg 4",
recipe = {
{"", "cottages:wagon_wheel", "" },
{"default:dirt","default:dirt","default:dirt" }
},
replacements = { {'cottages:wagon_wheel', 'cottages:wagon_wheel'}, }
})
minetest.register_craft({
output = "cottages:loam 4",
recipe = {
{"default:sand" },
{"default:clay"}
}
})
minetest.register_craft({
output = "cottages:straw_ground 2",
recipe = {
{"cottages:straw_mat" },
{"cottages:loam"}
}
})
minetest.register_craft({
output = "cottages:glass_pane 4",
recipe = {
{"default:stick", "default:stick", "default:stick" },
{"default:stick", "default:glass", "default:stick" },
{"default:stick", "default:stick", "default:stick" }
}
})
minetest.register_craft({
output = "cottages:glass_pane_side",
recipe = {
{"cottages:glass_pane"},
}
})
minetest.register_craft({
output = "cottages:glass_pane",
recipe = {
{"cottages:glass_pane_side"},
}
})
minetest.register_craft({
output = "cottages:wood_flat 16",
recipe = {
{"default:stick", "farming:string","default:stick" },
{"default:stick", "", "default:stick" },
}
})

View File

@ -0,0 +1,216 @@
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
---------------------------------------------------------------------------------------
-- roof parts
---------------------------------------------------------------------------------------
-- a better roof than the normal stairs; can be replaced by stairs:stair_wood
-- create the three basic roof parts plus receipes for them;
cottages.register_roof = function( name, tiles, basic_material, homedecor_alternative )
minetest.register_node("cottages:roof_"..name, {
description = S("Roof "..name),
drawtype = "nodebox",
--tiles = {"default_tree.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","default_tree.png"},
tiles = tiles,
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
},
is_ground_content = false,
})
-- a better roof than the normal stairs; this one is for usage directly on top of walls (it has the form of a stair)
minetest.register_node("cottages:roof_connector_"..name, {
description = S("Roof connector "..name),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
--tiles = {"default_tree.png","default_wood.png","default_tree.png","default_tree.png","default_wood.png","default_tree.png"},
--tiles = {"darkage_straw.png","default_wood.png","darkage_straw.png","darkage_straw.png","darkage_straw.png","darkage_straw.png"},
tiles = tiles,
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
},
is_ground_content = false,
})
-- this one is the slab version of the above roof
minetest.register_node("cottages:roof_flat_"..name, {
description = S("Roof (flat) "..name),
drawtype = "nodebox",
-- top, bottom, side1, side2, inner, outer
--tiles = {"default_tree.png","default_wood.png","default_tree.png","default_tree.png","default_wood.png","default_tree.png"},
-- this one is from all sides - except from the underside - of the given material
tiles = { tiles[1], tiles[2], tiles[1], tiles[1], tiles[1], tiles[1] };
paramtype = "light",
paramtype2 = "facedir",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
},
is_ground_content = false,
})
if( not( homedecor_alternative )
or ( minetest.get_modpath("homedecor") ~= nil )) then
minetest.register_craft({
output = "cottages:roof_"..name.." 6",
recipe = {
{'', '', basic_material },
{'', basic_material, '' },
{basic_material, '', '' }
}
})
end
-- make those roof parts that use homedecor craftable without that mod
if( homedecor_alternative ) then
basic_material = 'cottages:roof_wood';
minetest.register_craft({
output = "cottages:roof_"..name.." 3",
recipe = {
{homedecor_alternative, '', basic_material },
{'', basic_material, '' },
{basic_material, '', '' }
}
})
end
minetest.register_craft({
output = "cottages:roof_connector_"..name,
recipe = {
{'cottages:roof_'..name },
{'default:wood' },
}
})
minetest.register_craft({
output = "cottages:roof_flat_"..name..' 2',
recipe = {
{'cottages:roof_'..name, 'cottages:roof_'..name },
}
})
-- convert flat roofs back to normal roofs
minetest.register_craft({
output = "cottages:roof_"..name,
recipe = {
{"cottages:roof_flat_"..name, "cottages:roof_flat_"..name }
}
})
end -- of cottages.register_roof( name, tiles, basic_material )
---------------------------------------------------------------------------------------
-- add the diffrent roof types
---------------------------------------------------------------------------------------
cottages.register_roof( 'straw',
{"cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png","cottages_darkage_straw.png"},
'cottages:straw_mat', nil );
cottages.register_roof( 'reet',
{"cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png","cottages_reet.png"},
'default:papyrus', nil );
cottages.register_roof( 'wood',
{"default_tree.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","default_tree.png"},
'default:wood', nil);
cottages.register_roof( 'black',
{"cottages_homedecor_shingles_asphalt.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_asphalt.png"},
'homedecor:shingles_asphalt', 'default:coal_lump');
cottages.register_roof( 'red',
{"cottages_homedecor_shingles_terracotta.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_terracotta.png"},
'homedecor:shingles_terracotta', 'default:clay_brick');
cottages.register_roof( 'brown',
{"cottages_homedecor_shingles_wood.png","default_wood.png","default_wood.png","default_wood.png","default_wood.png","cottages_homedecor_shingles_wood.png"},
'homedecor:shingles_wood', 'default:dirt');
cottages.register_roof( 'slate',
{"cottages_slate.png","default_wood.png","cottages_slate.png","cottages_slate.png","default_wood.png","cottages_slate.png"},
'default:stone', nil);
---------------------------------------------------------------------------------------
-- slate roofs are sometimes on vertical fronts of houses
---------------------------------------------------------------------------------------
minetest.register_node("cottages:slate_vertical", {
description = S("Vertical Slate"),
tiles = {"cottages_slate.png","default_wood.png","cottages_slate.png","cottages_slate.png","default_wood.png","cottages_slate.png"},
paramtype2 = "facedir",
groups = {cracky=2, stone=1},
sounds = default.node_sound_stone_defaults(),
is_ground_content = false,
})
minetest.register_craft({
output = "cottages:slate_vertical",
recipe = { {'default:stone', 'default:wood', '' }
}
});
---------------------------------------------------------------------------------------
-- Reed might also be needed as a full block
---------------------------------------------------------------------------------------
minetest.register_node("cottages:reet", {
description = S("Reet for thatching"),
tiles = {"cottages_reet.png"},
groups = {snappy=3,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults(),
is_ground_content = false,
})
minetest.register_craft({
output = "cottages:reet",
recipe = { {'default:papyrus','default:papyrus'},
{'default:papyrus','default:papyrus'},
},
})

View File

@ -0,0 +1,461 @@
---------------------------------------------------------------------------------------
-- straw - a very basic material
---------------------------------------------------------------------------------------
-- * straw mat - for animals and very poor NPC; also basis for other straw things
-- * straw bale - well, just a good source for building and decoration
-- Boilerplate to support localized strings if intllib mod is installed.
local S
if intllib then
S = intllib.Getter()
else
S = function(s) return s end
end
-- an even simpler from of bed - usually for animals
-- it is a nodebox and not wallmounted because that makes it easier to replace beds with straw mats
minetest.register_node("cottages:straw_mat", {
description = S("layer of straw"),
drawtype = 'nodebox',
tiles = { 'cottages_darkage_straw.png' }, -- done by VanessaE
wield_image = 'cottages_darkage_straw.png',
inventory_image = 'cottages_darkage_straw.png',
sunlight_propagates = true,
paramtype = 'light',
paramtype2 = "facedir",
walkable = false,
groups = { snappy = 3 },
sounds = default.node_sound_leaves_defaults(),
node_box = {
type = "fixed",
fixed = {
{-0.48, -0.5,-0.48, 0.48, -0.45, 0.48},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.48, -0.5,-0.48, 0.48, -0.25, 0.48},
}
},
is_ground_content = false,
})
-- straw bales are a must for farming environments; if you for some reason do not have the darkage mod installed, this here gets you a straw bale
minetest.register_node("cottages:straw_bale", {
drawtype = "nodebox",
description = S("straw bale"),
tiles = {"cottages_darkage_straw_bale.png"},
paramtype = "light",
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
sounds = default.node_sound_wood_defaults(),
-- the bale is slightly smaller than a full node
node_box = {
type = "fixed",
fixed = {
{-0.45, -0.5,-0.45, 0.45, 0.45, 0.45},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.45, -0.5,-0.45, 0.45, 0.45, 0.45},
}
},
is_ground_content = false,
})
-- just straw
minetest.register_node("cottages:straw", {
drawtype = "normal",
description = S("straw"),
tiles = {"cottages_darkage_straw.png"},
groups = {snappy=3,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults(),
-- the bale is slightly smaller than a full node
is_ground_content = false,
})
minetest.register_node("cottages:threshing_floor", {
drawtype = "nodebox",
description = S("threshing floor"),
-- TODO: stone also looks pretty well for this
tiles = {"default_junglewood.png^farming_wheat.png","default_junglewood.png","default_junglewood.png^default_stick.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {cracky=2},
is_ground_content = false,
node_box = {
type = "fixed",
fixed = {
{-0.50, -0.5,-0.50, 0.50, -0.40, 0.50},
{-0.50, -0.4,-0.50,-0.45, -0.20, 0.50},
{ 0.45, -0.4,-0.50, 0.50, -0.20, 0.50},
{-0.45, -0.4,-0.50, 0.45, -0.20,-0.45},
{-0.45, -0.4, 0.45, 0.45, -0.20, 0.50},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.50, -0.5,-0.50, 0.50, -0.20, 0.50},
}
},
on_construct = function(pos)
local meta = minetest.get_meta(pos);
meta:set_string("infotext", S("Threshing floor"));
local inv = meta:get_inventory();
inv:set_size("harvest", 2);
inv:set_size("straw", 4);
inv:set_size("seeds", 4);
end,
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", S("Threshing floor (owned by %s)"):format(meta:get_string("owner") or ""));
meta:set_string("formspec",
"size[8,8]"..
"image[1.5,0;1,1;default_stick.png]"..
"image[0,1;1,1;farming_wheat.png]"..
"list[current_name;harvest;1,1;2,1;]"..
"list[current_name;straw;5,0;2,2;]"..
"list[current_name;seeds;5,2;2,2;]"..
"label[1,0.5;"..S("Harvested wheat:").."]"..
"label[4,0.0;"..S("Straw:").."]"..
"label[4,2.0;"..S("Seeds:").."]"..
"label[0,-0.5;"..S("Threshing floor").."]"..
"label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string("owner") or "").."]"..
"label[0,2.5;"..S("Punch threshing floor with a stick").."]"..
"label[0,3.0;"..S("to get straw and seeds from wheat.").."]"..
"list[current_player;main;0,4;8,4;]");
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory();
local owner = meta:get_string('owner');
if( not( inv:is_empty("harvest"))
or not( inv:is_empty("straw"))
or not( inv:is_empty("seeds"))
or not( player )
or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then
return false;
end
return true;
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return count;
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
-- only accept input the threshing floor can use/process
if( listname=='straw'
or listname=='seeds'
or (listname=='harvest' and stack and stack:get_name() ~= 'farming:wheat' )) then
return 0;
end
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
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( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return stack:get_count()
end,
on_punch = function(pos, node, puncher)
if( not( pos ) or not( node ) or not( puncher )) then
return;
end
-- only punching with a normal stick is supposed to work
local wielded = puncher:get_wielded_item();
if( not( wielded ) or not( wielded:get_name() ) or wielded:get_name() ~= 'default:stick') then
return;
end
local name = puncher:get_player_name();
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory();
local input = inv:get_list('harvest');
-- we have two input slots
local stack1 = inv:get_stack( 'harvest', 1);
local stack2 = inv:get_stack( 'harvest', 2);
if( ( stack1:is_empty() and stack2:is_empty())
or( not( stack1:is_empty()) and stack1:get_name() ~= 'farming:wheat')
or( not( stack2:is_empty()) and stack2:get_name() ~= 'farming:wheat')) then
-- minetest.chat_send_player( name, 'One of the input slots contains something else than wheat, or there is no wheat at all.');
return;
end
-- on average, process 25 wheat at each punch (10..40 are possible)
local anz_wheat = 10 + math.random( 0, 30 );
-- we already made sure there is only wheat inside
local found_wheat = stack1:get_count() + stack2:get_count();
-- do not process more wheat than present in the input slots
if( found_wheat < anz_wheat ) then
anz_wheat = found_wheat;
end
-- this can be enlarged by a multiplicator if desired
local anz_straw = anz_wheat;
local anz_seeds = anz_wheat;
if( inv:room_for_item('straw','cottages:straw_mat '..tostring( anz_straw ))
and inv:room_for_item('seeds','farming:seed_wheat '..tostring( anz_seeds ))) then
-- the player gets two kind of output
inv:add_item("straw",'cottages:straw_mat '..tostring( anz_straw ));
inv:add_item("seeds",'farming:seed_wheat '..tostring( anz_seeds ));
-- consume the wheat
inv:remove_item("harvest", 'farming:wheat '..tostring( anz_wheat ));
local anz_left = found_wheat - anz_wheat;
if( anz_left > 0 ) then
minetest.chat_send_player( name, S('You have threshed %s wheat (%s are left).'):format(anz_wheat,anz_left));
else
minetest.chat_send_player( name, S('You have threshed the last %s wheat.'):format(anz_wheat));
end
end
end,
})
minetest.register_node("cottages:handmill", {
description = S("mill, powered by punching"),
drawtype = "mesh",
mesh = "cottages_handmill.obj",
tiles = {"default_stone.png"},
paramtype = "light",
paramtype2 = "facedir",
groups = {cracky=2},
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {
{-0.50, -0.5,-0.50, 0.50, 0.25, 0.50},
}
},
collision_box = {
type = "fixed",
fixed = {
{-0.50, -0.5,-0.50, 0.50, 0.25, 0.50},
}
},
on_construct = function(pos)
local meta = minetest.get_meta(pos);
meta:set_string("infotext", S("Mill, powered by punching"));
local inv = meta:get_inventory();
inv:set_size("seeds", 1);
inv:set_size("flour", 4);
end,
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", S("Mill, powered by punching (owned by %s)"):format(meta:get_string("owner") or ""));
meta:set_string("formspec",
"size[8,8]"..
"image[0,1;1,1;farming_wheat_seed.png]"..
"list[current_name;seeds;1,1;1,1;]"..
"list[current_name;flour;5,1;2,2;]"..
"label[0,0.5;"..S("Wheat seeds:").."]"..
"label[4,0.5;"..S("Flour:").."]"..
"label[0,-0.5;"..S("Mill").."]"..
"label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"..
"label[0,2.5;"..S("Punch this hand-driven mill").."]"..
"label[0,3.0;"..S("to convert wheat seeds into flour.").."]"..
"list[current_player;main;0,4;8,4;]");
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory();
local owner = meta:get_string('owner');
if( not( inv:is_empty("flour"))
or not( inv:is_empty("seeds"))
or not( player )
or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then
return false;
end
return true;
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return count;
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
-- only accept input the threshing floor can use/process
if( listname=='flour'
or (listname=='seeds' and stack and stack:get_name() ~= 'farming:seed_wheat' )) then
return 0;
end
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
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( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return stack:get_count()
end,
-- this code is very similar to the threshing floor; except that it has only one input- and output-slot
-- and does not require the usage of a stick
on_punch = function(pos, node, puncher)
if( not( pos ) or not( node ) or not( puncher )) then
return;
end
local name = puncher:get_player_name();
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory();
local input = inv:get_list('seeds');
local stack1 = inv:get_stack( 'seeds', 1);
if( ( stack1:is_empty())
or( not( stack1:is_empty()) and stack1:get_name() ~= 'farming:seed_wheat')) then
return;
end
-- turning the mill is a slow process; 1-21 flour are generated per turn
local anz = 1 + math.random( 0, 20 );
-- we already made sure there is only wheat inside
local found = stack1:get_count();
-- do not process more wheat than present in the input slots
if( found < anz ) then
anz = found;
end
if( inv:room_for_item('flour','farming:flour '..tostring( anz ))) then
inv:add_item("flour",'farming:flour '..tostring( anz ));
inv:remove_item("seeds", 'farming:seed_wheat '..tostring( anz ));
local anz_left = found - anz;
if( anz_left > 0 ) then
minetest.chat_send_player( name, S('You have grinded %s wheat seeds (%s are left).'):format(anz,anz_left));
else
minetest.chat_send_player( name, S('You have grinded the last %s wheat seeds.'):format(anz));
end
-- if the version of MT is recent enough, rotate the mill a bit
if( minetest.swap_node ) then
node.param2 = node.param2 + 1;
if( node.param2 > 3 ) then
node.param2 = 0;
end
minetest.swap_node( pos, node );
end
end
end,
})
---------------------------------------------------------------------------------------
-- crafting receipes
---------------------------------------------------------------------------------------
-- this returns corn as well
-- the replacements work only if the replaced slot gets empty...
minetest.register_craft({
output = "cottages:straw_mat 6",
recipe = {
{'default:cobble','',''},
{"farming:wheat_harvested", "farming:wheat_harvested", "farming:wheat_harvested", },
},
replacements = {{ 'default:cobble', "farming:seed_wheat 3" }},
})
-- this is a better way to get straw mats
minetest.register_craft({
output = "cottages:threshing_floor",
recipe = {
{"default:junglewood", "default:chest_locked", "default:junglewood", },
{"default:junglewood", "default:stone", "default:junglewood", },
},
})
-- and a way to turn wheat seeds into flour
minetest.register_craft({
output = "cottages:handmill",
recipe = {
{"default:stick", "default:stone", "", },
{"", "default:steel_ingot", "", },
{"", "default:stone", "", },
},
})
minetest.register_craft({
output = "cottages:straw_bale",
recipe = {
{"cottages:straw_mat"},
{"cottages:straw_mat"},
{"cottages:straw_mat"},
},
})
minetest.register_craft({
output = "cottages:straw",
recipe = {
{"cottages:straw_bale"},
},
})
minetest.register_craft({
output = "cottages:straw_bale",
recipe = {
{"cottages:straw"},
},
})
minetest.register_craft({
output = "cottages:straw_mat 3",
recipe = {
{"cottages:straw_bale"},
},
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

1
mods/currency Submodule

@ -0,0 +1 @@
Subproject commit d52512a89ff83d0167ea386c5eabd9cea3cd8df1

1
mods/datastorage Submodule

@ -0,0 +1 @@
Subproject commit 8ce345aaa8b056bed0471a33890711055c5fd4aa

1
mods/digilines Submodule

@ -0,0 +1 @@
Subproject commit e2b9141ccc0217639fdbc47b6185ef60e2ce73e8

1
mods/display_blocks Submodule

@ -0,0 +1 @@
Subproject commit 9e8cd59b7ce7c05d29c9bfda4b5a1d6700bc3194

View File

@ -0,0 +1,18 @@
Minetest 0.4 mod: external_legacy
=================================
License of source code:
-----------------------
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
http://www.gnu.org/licenses/lgpl-2.1.html
License of media (textures and sounds)
--------------------------------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/

View File

@ -0,0 +1,24 @@
-- Minetest 0.4 mod: external_legacy
-- See README.txt for licensing and other information.
-- Aliases to support moreores' ores
minetest.register_alias("moreores:mineral_gold", "default:stone_with_gold")
minetest.register_alias("moreores:gold_block", "default:goldblock")
minetest.register_alias("moreores:gold_lump", "default:gold_lump")
minetest.register_alias("moreores:gold_ingot", "default:gold_ingot")
minetest.register_alias("moreores:mineral_copper", "default:stone_with_copper")
minetest.register_alias("moreores:copper_lump", "default:copper_lump")
minetest.register_alias("moreores:copper_ingot", "default:copper_ingot")
minetest.register_alias("moreores:copper_block", "default:copperblock")
minetest.register_alias("moreores:bronze_ingot", "default:bronze_ingot")
minetest.register_alias("moreores:bronze_block", "default:bronzeblock")
-- Aliases for the diamonds mod by InfinityProject
minetest.register_alias("diamonds:diamond_in_ground", "default:stone_with_diamond")
minetest.register_alias("diamonds:block", "default:diamondblock")
minetest.register_alias("diamonds:sword", "default:sword_diamond")
minetest.register_alias("diamonds:pick", "default:pick_diamond")
minetest.register_alias("diamonds:shovel", "default:shovel_diamond")
minetest.register_alias("diamonds:axe", "default:axe_diamond")
minetest.register_alias("diamonds:diamond", "default:diamond")
minetest.register_alias("diamonds:ingot", "default:diamond")

1
mods/farming_plus Submodule

@ -0,0 +1 @@
Subproject commit 61f68c924e6e91d80aa7ac2fc2b41dedce1d77f3

1
mods/framedglass Submodule

@ -0,0 +1 @@
Subproject commit 67c7336a321e18f87ff946b92c82baed84aa8006

75
mods/gardening/README.txt Normal file
View File

@ -0,0 +1,75 @@
-=-
Gardening mod
-
By: philipbenr
-=-
Before use, realize this; This mod is purely decorative. It has crafting recipes, but no natural spawning abilities. Those may be added later with the removal of crafting.
-=-
License : WTFPL
-=-
Depends : Default, Minetest 0.4.7 or Flowers.
-=-
Crafting recipes
~~~~~~~~~~~~~~~~~
Packed Dirt =
Stone
Sand
Dirt
in any column
--------------
Rosebush =
Rose
Leaves
Tree
in any column
--------------
Violas =
Viola
Leaves
Tree
in any column
--------------
Geraniums =
Geranium
Leaves
Tree
in any column
--------------
Tulips =
Tulips
Leaves
Tree
in any column
--------------
Dandelions =
_, Yellow Dandelion, White Dandelion
_, Leaves, _
_, Tree, _
this is the only fixed recipe
--------------
-=-
Thats all for now.

168
mods/gardening/init.lua Normal file
View File

@ -0,0 +1,168 @@
minetest.register_node("gardening:rosebush", {
description = "Rosebush",
drawtype = "plantlike",
visual_scale = 1.1,
inventory_image = "gardening_rosebush.png",
wield_image = "gardening_rosebush.png",
tiles = {"gardening_rosebush.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
groups = {snappy=3,flammable=3,attached_node=1},
-- sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5},
},
})
minetest.register_craft({
output = 'gardening:rosebush',
recipe = {
{'flowers:rose'},
{'default:leaves'},
{'default:tree'},
},
})
-- geraniums
minetest.register_node("gardening:geranium_shrub", {
description = "Geranium cluster",
drawtype = "plantlike",
visual_scale = 1.1,
inventory_image = "gardening_geranium_shrub.png",
wield_image = "gardening_geranium_shrub.png",
tiles = {"gardening_geranium_shrub.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
groups = {snappy=3,flammable=3,attached_node=1},
-- sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5},
},
})
minetest.register_craft({
output = 'gardening:geranium_shrub',
recipe = {
{'flowers:geranium'},
{'default:leaves'},
{'default:tree'},
},
})
-- viola
minetest.register_node("gardening:violas", {
description = "Violas cluster",
drawtype = "plantlike",
visual_scale = 1.1,
inventory_image = "gardening_violas.png",
wield_image = "gardening_violas.png",
tiles = {"gardening_violas.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
groups = {snappy=3,flammable=3,attached_node=1},
-- sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5},
},
})
minetest.register_craft({
output = 'gardening:violas',
recipe = {
{'flowers:viola'},
{'default:leaves'},
{'default:tree'},
},
})
-- dandelions
minetest.register_node('gardening:dandelions', {
description = "Dandelion cluster",
drawtype = "plantlike",
visual_scale = 1.1,
inventory_image = "gardening_dandelions.png",
wield_image = "gardening_dandelions.png",
tiles = {"gardening_dandelions.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
groups = {snappy=3,flammable=3,attached_node=1},
-- sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5},
},
})
minetest.register_craft({
output = 'gardening:dandelions',
recipe = {
{'', 'flowers:dandelion_yellow', 'flowers:dandelion_white'},
{'', 'default:leaves', ''},
{'', 'default:tree', ''},
},
})
--tulips
minetest.register_node("gardening:tulip_shrub", {
description = "Tulip cluster",
drawtype = "plantlike",
visual_scale = 1.1,
inventory_image = "gardening_tulip_shrub.png",
wield_image = "gardening_tulip_shrub.png",
tiles = {"gardening_tulip_shrub.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
groups = {snappy=3,flammable=3,attached_node=1},
-- sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -2.5/16, 0.5},
},
})
minetest.register_craft({
output = 'gardening:tulip_shrub',
recipe = {
{'flowers:tulip'},
{'default:leaves'},
{'default:tree'},
},
})
--packed dirt
minetest.register_node("gardening:packed_dirt", {
description = "Packed Dirt",
tiles = {"gardening_packed_dirt.png"},
is_ground_content = true,
groups = {crumbly=3},
-- sounds = default.node_sound_dirt_defaults(),
})
minetest.register_craft({
output = 'gardening:packed_dirt 3',
recipe = {
{'default:stone'},
{'default:sand'},
{'default:dirt'},
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

1
mods/gloopblocks Submodule

@ -0,0 +1 @@
Subproject commit 530f5720736dfffb7545824d5d87e205782d3737

1
mods/glooptest Submodule

@ -0,0 +1 @@
Subproject commit 9a73f603ac21e4edc1341654a3c843aa6732b823

@ -0,0 +1 @@
Subproject commit a949238a0ddbc19bb33d41f77d45438529471cd5

1
mods/ilights Submodule

@ -0,0 +1 @@
Subproject commit 44125c7ce8ce15077df6739d93c24e825452d350

1
mods/infrastructure Submodule

@ -0,0 +1 @@
Subproject commit b8b5edfe1d89b04bf518b7a1d617630b028f5729

1
mods/inventory_sorter Submodule

@ -0,0 +1 @@
Subproject commit 59ff757c80b917a764f0d2a98c350ab25bd7cad8

1
mods/item_tweaks Submodule

@ -0,0 +1 @@
Subproject commit 47161da891e89806f6468f70980ff94eacc74907

1
mods/jumping Submodule

@ -0,0 +1 @@
Subproject commit 47df671545c55f446d1b2cd08d39a8ded40475d5

2
mods/legacy/depends.txt Normal file
View File

@ -0,0 +1,2 @@
default

107
mods/legacy/init.lua Normal file
View File

@ -0,0 +1,107 @@
-- legacy (Minetest 0.4 mod)
-- Provides as much backwards-compatibility as feasible
--
-- Aliases to support loading 0.3 and old 0.4 worlds and inventories
--
minetest.register_alias("stone", "default:stone")
minetest.register_alias("stone_with_coal", "default:stone_with_coal")
minetest.register_alias("stone_with_iron", "default:stone_with_iron")
minetest.register_alias("dirt_with_grass", "default:dirt_with_grass")
minetest.register_alias("dirt_with_grass_footsteps", "default:dirt_with_grass_footsteps")
minetest.register_alias("dirt", "default:dirt")
minetest.register_alias("sand", "default:sand")
minetest.register_alias("gravel", "default:gravel")
minetest.register_alias("sandstone", "default:sandstone")
minetest.register_alias("clay", "default:clay")
minetest.register_alias("brick", "default:brick")
minetest.register_alias("tree", "default:tree")
minetest.register_alias("jungletree", "default:jungletree")
minetest.register_alias("junglegrass", "default:junglegrass")
minetest.register_alias("leaves", "default:leaves")
minetest.register_alias("cactus", "default:cactus")
minetest.register_alias("papyrus", "default:papyrus")
minetest.register_alias("bookshelf", "default:bookshelf")
minetest.register_alias("glass", "default:glass")
minetest.register_alias("wooden_fence", "default:fence_wood")
minetest.register_alias("rail", "default:rail")
minetest.register_alias("ladder", "default:ladder")
minetest.register_alias("wood", "default:wood")
minetest.register_alias("mese", "default:mese")
minetest.register_alias("cloud", "default:cloud")
minetest.register_alias("water_flowing", "default:water_flowing")
minetest.register_alias("water_source", "default:water_source")
minetest.register_alias("lava_flowing", "default:lava_flowing")
minetest.register_alias("lava_source", "default:lava_source")
minetest.register_alias("torch", "default:torch")
minetest.register_alias("sign_wall", "default:sign_wall")
minetest.register_alias("furnace", "default:furnace")
minetest.register_alias("chest", "default:chest")
minetest.register_alias("locked_chest", "default:chest_locked")
minetest.register_alias("cobble", "default:cobble")
minetest.register_alias("mossycobble", "default:mossycobble")
minetest.register_alias("steelblock", "default:steelblock")
minetest.register_alias("nyancat", "default:nyancat")
minetest.register_alias("nyancat_rainbow", "default:nyancat_rainbow")
minetest.register_alias("sapling", "default:sapling")
minetest.register_alias("apple", "default:apple")
minetest.register_alias("WPick", "default:pick_wood")
minetest.register_alias("STPick", "default:pick_stone")
minetest.register_alias("SteelPick", "default:pick_steel")
minetest.register_alias("MesePick", "default:pick_mese")
minetest.register_alias("WShovel", "default:shovel_wood")
minetest.register_alias("STShovel", "default:shovel_stone")
minetest.register_alias("SteelShovel", "default:shovel_steel")
minetest.register_alias("WAxe", "default:axe_wood")
minetest.register_alias("STAxe", "default:axe_stone")
minetest.register_alias("SteelAxe", "default:axe_steel")
minetest.register_alias("WSword", "default:sword_wood")
minetest.register_alias("STSword", "default:sword_stone")
minetest.register_alias("SteelSword", "default:sword_steel")
minetest.register_alias("Stick", "default:stick")
minetest.register_alias("paper", "default:paper")
minetest.register_alias("book", "default:book")
minetest.register_alias("lump_of_coal", "default:coal_lump")
minetest.register_alias("lump_of_iron", "default:iron_lump")
minetest.register_alias("lump_of_clay", "default:clay_lump")
minetest.register_alias("steel_ingot", "default:steel_ingot")
minetest.register_alias("clay_brick", "default:clay_brick")
minetest.register_alias("scorched_stuff", "default:scorched_stuff")
--
-- Old items
--
minetest.register_craftitem(":rat", {
description = "Rat",
inventory_image = "rat.png",
})
minetest.register_craftitem(":cooked_rat", {
description = "Cooked rat",
inventory_image = "cooked_rat.png",
on_use = minetest.item_eat(6),
})
minetest.register_craftitem(":firefly", {
description = "Firefly",
inventory_image = "firefly.png",
groups = {not_in_creative_inventory=1},
})
minetest.register_craft({
type = "cooking",
output = "cooked_rat",
recipe = "rat",
})
minetest.register_craft({
type = "cooking",
output = "scorched_stuff",
recipe = "cooked_rat",
})
-- END

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

1
mods/locks Submodule

@ -0,0 +1 @@
Subproject commit 5ba3cc03c1285ea049d1bcd3c56781d134256798

1
mods/maptools Submodule

@ -0,0 +1 @@
Subproject commit 2f02bf146b965d6d1b4e3f546bf8968a5aa933a6

1
mods/markers Submodule

@ -0,0 +1 @@
Subproject commit f9ede8b64d68332826675055c02488d62629c1b2

View File

@ -0,0 +1 @@
default

361
mods/memorandum/init.lua Normal file
View File

@ -0,0 +1,361 @@
-----------------------------------------------------------------------------------------------
local title = "Memorandum"
local version = "0.0.9"
local mname = "memorandum"
-----------------------------------------------------------------------------------------------
-- { left , bottom , front , right , top , back }
local sheet = { -1/2 , -1/2 , -1/2 , 1/2 , -7/16 , 1/2 }
local info = 'On this piece of paper is written: "'
local sign = '" Signed by '
minetest.register_craftitem(":default:paper", {
description = "Paper",
inventory_image = "default_paper.png",
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
local direction = minetest.dir_to_facedir(placer:get_look_dir())
local there = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
if minetest.get_node(there).name == "air" then
minetest.add_node(there, {name="memorandum:letter_empty", param2=direction})
itemstack:take_item()
return itemstack
end
end,
})
minetest.register_node("memorandum:letter_empty", {
drawtype = "nodebox",
tiles = {"memorandum_letter_empty.png"},
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = false,
node_box = {type = "fixed", fixed = sheet},
groups = {snappy=3,dig_immediate=3,not_in_creative_inventory=1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string(
"formspec",
"size[10,7]"..
"field[1,1;8.5,1;text; Write a Letter;${text}]"..
"field[1,3;4.25,1;signed; Sign Letter (optional);${signed}]"..
"button_exit[0.75,5;4.25,1;text,signed;Done]"
)
meta:set_string("infotext", info..'"')
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.get_meta(pos)
fields.text = fields.text
fields.signed = fields.signed
--[[print((sender:get_player_name() or "").." wrote \""..fields.text..
"\" to paper at "..minetest.pos_to_string(pos))]]
local direction = minetest.get_node(pos).param2
if fields.text ~= "" then
minetest.add_node(pos, {name="memorandum:letter_written", param2=direction})
end
meta:set_string("text", fields.text)
meta:set_string("signed", "")
if fields.text then
if fields.signed ~= "" then
meta:set_string("signed", fields.signed)
meta:set_string("infotext", info..fields.text..sign..fields.signed)
else
meta:set_string("infotext", info..fields.text..'" Unsigned')
end
else
meta:set_string("infotext", "" )
end
end,
on_dig = function(pos, node, digger)
if digger:is_player() and digger:get_inventory() then
digger:get_inventory():add_item("main", {name="default:paper", count=1, wear=0, metadata=""})
end
minetest.remove_node(pos)
end,
})
minetest.register_craftitem("memorandum:letter", {
description = "Letter",
inventory_image = "default_paper.png^memorandum_letters.png",
stack_max = 1,
groups = {not_in_creative_inventory=1},
on_use = function(itemstack, user, pointed_thing)
local player = user:get_player_name()
local text = itemstack:get_metadata()
local scnt = string.sub (text, -2, -1)
if scnt == "00" then
mssg = string.sub (text, 1, -3)
sgnd = ""
elseif tonumber(scnt) == nil then -- to support previous versions
mssg = string.sub (text, 37, -1)
sgnd = ""
else
mssg = string.sub (text, 1, -scnt -3)
sgnd = string.sub (text, -scnt-2, -3)
end
if scnt == "00" or tonumber(scnt) == nil then
minetest.chat_send_player(player, info..mssg..'" Unsigned', false)
else
minetest.chat_send_player(player, info..mssg..sign..sgnd, false)
end
end,
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
local there = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
local direction = minetest.dir_to_facedir(placer:get_look_dir())
local meta = minetest.get_meta(there)
local text = itemstack:get_metadata()
local scnt = string.sub (text, -2, -1)
if scnt == "00" then
mssg = string.sub (text, 1, -3)
sgnd = ""
elseif tonumber(scnt) == nil then -- to support previous versions
mssg = string.sub (text, 37, -1)
sgnd = ""
else
mssg = string.sub (text, 1, -scnt -3)
sgnd = string.sub (text, -scnt-2, -3)
end
if minetest.get_node(there).name == "air" then
minetest.add_node(there, {name="memorandum:letter_written", param2=direction})
if scnt == "00" or tonumber(scnt) == nil then
meta:set_string("infotext", info..mssg..'" Unsigned')
else
meta:set_string("infotext", info..mssg..sign..sgnd)
end
meta:set_string("text", mssg)
meta:set_string("signed", sgnd)
itemstack:take_item()
return itemstack
end
end,
})
minetest.register_node("memorandum:letter_written", {
drawtype = "nodebox",
tiles = {"memorandum_letter_empty.png^memorandum_letter_text.png"},
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = false,
node_box = {type = "fixed", fixed = sheet},
groups = {snappy=3,dig_immediate=3,not_in_creative_inventory=1},
sounds = default.node_sound_leaves_defaults(),
on_receive_fields = function(pos, formname, fields, sender)
local item = sender:get_wielded_item()
if item:get_name() == "memorandum:eraser" then
local meta = minetest.get_meta(pos)
fields.text = fields.text
fields.signed = fields.signed
--[[print((sender:get_player_name() or "").." wrote \""..fields.text..
"\" to paper at "..minetest.pos_to_string(pos))]]
local direction = minetest.get_node(pos).param2
if fields.text == "" then
minetest.add_node(pos, {name="memorandum:letter_empty", param2=direction})
end
meta:set_string("text", fields.text)
meta:set_string("signed", "")
if fields.text then
if fields.signed ~= "" then
meta:set_string("signed", fields.signed)
meta:set_string("infotext", info..fields.text..sign..fields.signed)
else
meta:set_string("infotext", info..fields.text..'" Unsigned')
end
else
meta:set_string("infotext", "" )
end
end
end,
on_dig = function(pos, node, digger)
if digger:is_player() and digger:get_inventory() then
local meta = minetest.get_meta(pos)
local text = meta:get_string("text")
local signed = meta:get_string("signed")
local signcount = string.len(signed)
local item = digger:get_wielded_item()
local inv = digger:get_inventory()
if string.len(signed) < 10 then
signcount = "0"..string.len(signed)
end
if signed == '" Unsigned' then
signcount = "00"
end
if item:get_name() == "vessels:glass_bottle" then
inv:remove_item("main", "vessels:glass_bottle")
inv:add_item("main", {name="memorandum:message", count=1, wear=0, metadata=text..signed..signcount})
else
inv:add_item("main", {name="memorandum:letter", count=1, wear=0, metadata=text..signed..signcount})
end
end
minetest.remove_node(pos)
end,
})
local function eraser_wear(itemstack, user, pointed_thing, uses)
itemstack:add_wear(65535/(uses-1))
return itemstack
end
minetest.register_tool("memorandum:eraser", {
description = "Eraser",
inventory_image = "memorandum_eraser.png",
wield_image = "memorandum_eraser.png^[transformR90",--^[transformFX",
wield_scale = {x = 0.5, y = 0.5, z = 1},
on_use = function(itemstack, user, pointed_thing)
local pt = pointed_thing
if pt and pt.under then
local node = minetest.get_node(pt.under)
local meta = minetest.get_meta(pt.under)
local player = user:get_player_name()
local signer = meta:get_string("signed")
if string.find(node.name, "memorandum:letter_written") then
if signer == player or signer == "" then
meta:set_string(
"formspec",
"size[10,7]"..
"field[1,1;8.5,1;text; Edit Text;${text}]"..
"field[1,3;4.25,1;signed; Edit Signature;${signed}]"..
"button_exit[0.75,5;4.25,1;text,signed;Done]"
)
if not minetest.setting_getbool("creative_mode") then
return eraser_wear(itemstack, user, pointed_thing, 30)
else
return {name="memorandum:eraser", count=1, wear=0, metadata=""}
end
end
end
end
end,
})
minetest.register_node("memorandum:message", {
description = "Message in a Bottle",
drawtype = "plantlike",
tiles = {"vessels_glass_bottle.png^memorandum_message.png"},
inventory_image = "vessels_glass_bottle_inv.png^memorandum_message.png",
wield_image = "vessels_glass_bottle.png^memorandum_message.png",
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-1/4, -1/2, -1/4, 1/4, 4/10, 1/4}
},
stack_max = 1,
groups = {vessel=1,dig_immediate=3,attached_node=1,not_in_creative_inventory=1},
--sounds = default.node_sound_glass_defaults(),
on_use = function(itemstack, user, pointed_thing)
local pt = pointed_thing
if pt.under then
local there = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
local meta = minetest.get_meta(there)
local text = itemstack:get_metadata()
local scnt = string.sub (text, -2, -1)
if scnt == "00" then
mssg = string.sub (text, 1, -3)
sgnd = ""
elseif tonumber(scnt) == nil then -- to support previous versions
mssg = string.sub (text, 37, -1)
sgnd = ""
else
mssg = string.sub (text, 1, -scnt -3)
sgnd = string.sub (text, -scnt-2, -3)
end
if minetest.get_node(there).name == "air" then
minetest.add_node(there, {name="memorandum:letter_written", param2=math.random(0,3)})
if scnt == "00" or tonumber(scnt) == nil then
meta:set_string("infotext", info..mssg..'" Unsigned')
else
meta:set_string("infotext", info..mssg..sign..sgnd)
end
meta:set_string("text", mssg)
meta:set_string("signed", sgnd)
itemstack:take_item()
user:get_inventory():add_item("main", {name="vessels:glass_bottle", count=1, wear=0, metadata=""})
return itemstack
end
end
end,
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
local there = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
local meta = minetest.get_meta(there)
local text = itemstack:get_metadata()
local scnt = string.sub (text, -2, -1)
if scnt == "00" then
mssg = string.sub (text, 1, -3)
sgnd = ""
elseif tonumber(scnt) == nil then -- to support previous versions
mssg = string.sub (text, 37, -1)
sgnd = ""
else
mssg = string.sub (text, 1, -scnt -3)
sgnd = string.sub (text, -scnt-2, -3)
end
if minetest.get_node(there).name == "air" then
minetest.add_node(there, {name="memorandum:message"})
meta:set_string("text", mssg)
meta:set_string("signed", sgnd)
itemstack:take_item()
return itemstack
end
end,
on_dig = function(pos, node, digger)
if digger:is_player() and digger:get_inventory() then
local meta = minetest.get_meta(pos)
local text = meta:get_string("text")
local signed = meta:get_string("signed")
local signcount = string.len(signed)
local item = digger:get_wielded_item()
if string.len(signed) < 10 then
signcount = "0"..string.len(signed)
end
if signed == '" Unsigned' then
signcount = "00"
end
digger:get_inventory():add_item("main", {name="memorandum:message", count=1, wear=0, metadata=text..signed..signcount})
end
minetest.remove_node(pos)
end,
})
if minetest.get_modpath("farming") ~= nil then
minetest.register_craft({
type = "shapeless",
output = "memorandum:eraser",
recipe = {"farming:bread"},
})
end
if minetest.get_modpath("candles") ~= nil then
minetest.register_craft({
type = "shapeless",
output = "memorandum:eraser",
recipe = {"candles:wax"},
})
end
if minetest.get_modpath("bees") ~= nil then
minetest.register_craft({
type = "shapeless",
output = "memorandum:eraser",
recipe = {"bees:honey_comb"},
})
end
if minetest.get_modpath("technic") ~= nil then
minetest.register_craft({
type = "shapeless",
output = "memorandum:eraser",
recipe = {"technic:raw_latex"},
})
end
--[[minetest.register_craft({
type = "shapeless",
output = "default:paper",
recipe = {"memorandum:letter","memorandum:eraser"},
replacements = {
{"memorandum:eraser", "memorandum:eraser"}
},
})]]
-----------------------------------------------------------------------------------------------
print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...")
-----------------------------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Some files were not shown because too many files have changed in this diff Show More