Updated several mods for Minetest 0.4.16
castles modpack, areas, biome_lib, blox, boost_cart, plantlife modpack caverealms, coloredwood, concrete, currency, farming redo, home decor, ilights, mesecons, moreores, pipeworks, signs_lib, technic, unified inventory unified bricks, unified dyes, worldedit, and xban2
@ -69,7 +69,7 @@ minetest.register_entity("anvil:item",{
|
||||
})
|
||||
|
||||
local remove_item = function(pos, node)
|
||||
local objs = minetest.env:get_objects_inside_radius({x = pos.x, y = pos.y + item_displacement, z = pos.z}, .5)
|
||||
local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y + item_displacement, z = pos.z}, .5)
|
||||
if objs then
|
||||
for _, obj in ipairs(objs) do
|
||||
if obj and obj:get_luaentity() and obj:get_luaentity().name == "anvil:item" then
|
||||
@ -80,13 +80,13 @@ local remove_item = function(pos, node)
|
||||
end
|
||||
|
||||
local update_item = function(pos, node)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if not inv:is_empty("input") then
|
||||
pos.y = pos.y + item_displacement
|
||||
tmp.nodename = node.name
|
||||
tmp.texture = inv:get_stack("input", 1):get_name()
|
||||
local e = minetest.env:add_entity(pos,"anvil:item")
|
||||
local e = minetest.add_entity(pos,"anvil:item")
|
||||
local yaw = math.pi*2 - node.param2 * math.pi/2
|
||||
e:setyaw(yaw)
|
||||
end
|
||||
@ -180,12 +180,13 @@ minetest.register_node("anvil:anvil", {
|
||||
|
||||
on_rightclick = function(pos, node, clicker, itemstack)
|
||||
if itemstack:get_count() == 0 then
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if not inv:is_empty("input") then
|
||||
local return_stack = inv:get_stack("input", 1)
|
||||
inv:set_stack("input", 1, nil)
|
||||
clicker:get_inventory():add_item("main", return_stack)
|
||||
local wield_index = clicker:get_wield_index()
|
||||
clicker:get_inventory():set_stack("main", wield_index, return_stack)
|
||||
remove_item(pos, node)
|
||||
return return_stack
|
||||
end
|
||||
@ -193,7 +194,7 @@ minetest.register_node("anvil:anvil", {
|
||||
local this_def = minetest.registered_nodes[node.name]
|
||||
if this_def.allow_metadata_inventory_put(pos, "input", 1, itemstack:peek_item(), clicker) > 0 then
|
||||
local s = itemstack:take_item()
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:add_item("input", s)
|
||||
update_item(pos,node)
|
||||
@ -214,7 +215,8 @@ minetest.register_node("anvil:anvil", {
|
||||
if not inv:is_empty("input") then
|
||||
local return_stack = inv:get_stack("input", 1)
|
||||
inv:set_stack("input", 1, nil)
|
||||
puncher:get_inventory():add_item("main", return_stack)
|
||||
local wield_index = puncher:get_wield_index()
|
||||
puncher:get_inventory():set_stack("main", wield_index, return_stack)
|
||||
remove_item(pos, node)
|
||||
end
|
||||
end
|
||||
|
65
anvil/locale/es.po
Normal file
@ -0,0 +1,65 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-03-07 22:17-0700\n"
|
||||
"PO-Revision-Date: 2017-04-20 19:05 -0500\n"
|
||||
"Last-Translator: Carlos Barraza <carlosbarrazaes@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: Español\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: init.lua:19
|
||||
msgid "Steel blacksmithing hammer"
|
||||
msgstr "Martillo de acero para la herrería"
|
||||
|
||||
#: init.lua:20
|
||||
msgid "A tool for repairing other tools at a blacksmith's anvil."
|
||||
msgstr "Es una herramienta para reparar otras herramientas en el yunque del herrero"
|
||||
|
||||
#: init.lua:21
|
||||
msgid ""
|
||||
"Use this hammer to strike blows upon an anvil bearing a damaged tool and you "
|
||||
"can repair it. It can also be used for smashing stone, but it is not well "
|
||||
"suited to this task."
|
||||
msgstr ""
|
||||
"Use este martillo para dar golpes sobre el yunque donde puso la herramienta dañada"
|
||||
"Tambien puede ser usado para romper piedra pero no es muy adecuado para esa tarea."
|
||||
|
||||
#: init.lua:98
|
||||
msgid "Anvil"
|
||||
msgstr "Yunque"
|
||||
|
||||
#: init.lua:99
|
||||
msgid ""
|
||||
"A tool for repairing other tools in conjunction with a blacksmith's hammer."
|
||||
msgstr "Es una herramienta para reparar de herramientas dañadas en conjunto con el martillo del herrero."
|
||||
|
||||
#: init.lua:100
|
||||
msgid ""
|
||||
"Right-click on this anvil with a damaged tool to place the damaged tool upon "
|
||||
"it. You can then repair the damaged tool by striking it with a blacksmith's "
|
||||
"hammer. Repeated blows may be necessary to fully repair a badly worn tool. "
|
||||
"To retrieve the tool either punch or right-click the anvil with an empty "
|
||||
"hand."
|
||||
msgstr ""
|
||||
"Haga clic derecho sobre este yunque con una herramienta dañada"
|
||||
"Puede reparar la herramienta dañada golpeándola con el martillo del herrero"
|
||||
"Para reparar completamente una herramienta puede dar varios golpes"
|
||||
"Para sacar la herramienta, golpeela con la mano vacia o tambien con un clic derecho"
|
||||
|
||||
#: init.lua:155
|
||||
msgid "This anvil is for damaged tools only."
|
||||
msgstr "Este yunque es sólo para herramientas dañadas"
|
||||
|
||||
#: init.lua:267
|
||||
msgid "Your @1 has been repaired successfully."
|
||||
msgstr "Su @1 ha sido reparado correctamente."
|
@ -7,7 +7,7 @@ Configuration
|
||||
|
||||
If you wish to specify configuration options, such as whether players are
|
||||
allowed to protect their own areas with the `protect` command (disabled by
|
||||
default), you should check config.lua and set the appropriate settings in your
|
||||
default), you should check settings.lua and set the appropriate settings in your
|
||||
server's configuration file (probably `minetest.conf`).
|
||||
|
||||
|
||||
|
@ -66,7 +66,7 @@ local humidity_persistence = 0.5
|
||||
local humidity_scale = 250
|
||||
|
||||
local time_scale = 1
|
||||
local time_speed = tonumber(minetest.setting_get("time_speed"))
|
||||
local time_speed = tonumber(minetest.settings:get("time_speed"))
|
||||
|
||||
if time_speed and time_speed > 0 then
|
||||
time_scale = 72 / time_speed
|
||||
@ -717,7 +717,7 @@ end
|
||||
|
||||
-- Check for infinite stacks
|
||||
|
||||
if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then
|
||||
if minetest.get_modpath("unified_inventory") or not minetest.settings:get_bool("creative_mode") then
|
||||
biome_lib.expect_infinite_stacks = false
|
||||
else
|
||||
biome_lib.expect_infinite_stacks = true
|
||||
|
@ -103,12 +103,12 @@ for _, nodeclass in ipairs(NodeClass) do
|
||||
|
||||
minetest.register_node("blox:stone_"..nodeclass, {
|
||||
description = "Blox stone "..nodeclass,
|
||||
drawtype = "mesh",
|
||||
tiles = {
|
||||
{ name = "default_stone.png", color = 0xffffffff },
|
||||
},
|
||||
overlay_tiles = {
|
||||
"blox_stone_"..nodeclass..".png"
|
||||
},
|
||||
mesh = "blox_block_with_overlay.obj",
|
||||
palette = "unifieddyes_palette_extended.png",
|
||||
place_param2 = 240,
|
||||
paramtype = "light",
|
||||
@ -123,12 +123,12 @@ for _, nodeclass in ipairs(NodeClass) do
|
||||
|
||||
minetest.register_node("blox:cobble_"..nodeclass, {
|
||||
description = "Blox cobble "..nodeclass,
|
||||
drawtype = "mesh",
|
||||
tiles = {
|
||||
{ name = "default_cobble.png", color = 0xffffffff },
|
||||
},
|
||||
overlay_tiles = {
|
||||
"blox_cobble_"..nodeclass..".png"
|
||||
},
|
||||
mesh = "blox_block_with_overlay.obj",
|
||||
palette = "unifieddyes_palette_extended.png",
|
||||
place_param2 = 240,
|
||||
paramtype = "light",
|
||||
@ -143,12 +143,12 @@ for _, nodeclass in ipairs(NodeClass) do
|
||||
|
||||
minetest.register_node("blox:wood_"..nodeclass, {
|
||||
description = "Blox wood "..nodeclass,
|
||||
drawtype = "mesh",
|
||||
tiles = {
|
||||
{ name = "default_wood.png", color = 0xffffffff },
|
||||
},
|
||||
overlay_tiles = {
|
||||
"blox_wood_"..nodeclass..".png"
|
||||
},
|
||||
mesh = "blox_block_with_overlay.obj",
|
||||
palette = "unifieddyes_palette_extended.png",
|
||||
place_param2 = 240,
|
||||
paramtype = "light",
|
||||
|
@ -231,7 +231,7 @@ function cart_entity:on_step(dtime)
|
||||
local acc = nil
|
||||
|
||||
local acc_meta = minetest.get_meta(pos):get_string("cart_acceleration")
|
||||
if acc_meta == "halt" then
|
||||
if acc_meta == "halt" and not self.punched then
|
||||
-- Stop rail
|
||||
vel = {x=0, y=0, z=0}
|
||||
acc = false
|
||||
|
@ -9,6 +9,7 @@ boost_cart.punch_speed_max = 7
|
||||
|
||||
|
||||
if not boost_cart.modpath then
|
||||
-- For Minetest 0.4.12 and older that don't look at the "mod.conf" file
|
||||
error("\nWrong mod directory name! Please change it to 'boost_cart'.\n" ..
|
||||
"See also: http://dev.minetest.net/Installing_Mods")
|
||||
end
|
||||
|
1
boost_cart/mod.conf
Normal file
@ -0,0 +1 @@
|
||||
name = boost_cart
|
@ -1,4 +1,12 @@
|
||||
boost_cart:register_rail(":default:rail", {
|
||||
-- Common rail registrations
|
||||
|
||||
local regular_rail_itemname = "default:rail"
|
||||
if minetest.registered_nodes["carts:rail"] then
|
||||
-- MTG Compatibility
|
||||
regular_rail_itemname = "carts:rail"
|
||||
end
|
||||
|
||||
boost_cart:register_rail(":"..regular_rail_itemname, {
|
||||
description = "Rail",
|
||||
tiles = {
|
||||
"carts_rail_straight.png", "carts_rail_curved.png",
|
||||
|
@ -1,4 +1,9 @@
|
||||
local S = biome_lib.intllib
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
S = function(s) return s end
|
||||
end
|
||||
|
||||
-- Basket
|
||||
|
||||
@ -71,7 +76,7 @@ for i, berry in ipairs(bushes_classic.bushes) do
|
||||
|
||||
else
|
||||
minetest.register_craftitem(":bushes:"..berry, {
|
||||
description = desc,
|
||||
description = S(desc),
|
||||
inventory_image = "bushes_"..berry..".png",
|
||||
groups = {berry = 1, [berry] = 1},
|
||||
on_use = minetest.item_eat(1),
|
||||
|
@ -3,7 +3,12 @@
|
||||
--
|
||||
-- License: WTFPL
|
||||
|
||||
local S = biome_lib.intllib
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
S = function(s) return s end
|
||||
end
|
||||
|
||||
bushes_classic = {}
|
||||
|
||||
@ -17,7 +22,7 @@ bushes_classic.bushes = {
|
||||
}
|
||||
|
||||
bushes_classic.bushes_descriptions = {
|
||||
"Strawberry",
|
||||
"Strawberry",
|
||||
"Blackberry",
|
||||
"Blueberry",
|
||||
"Raspberry",
|
||||
|
43
bushes_classic/locale/es.txt
Normal file
@ -0,0 +1,43 @@
|
||||
# Traducido por Carlos Barraza
|
||||
|
||||
Strawberry = Frutilla
|
||||
Blackberry = Mora
|
||||
Blueberry = Arándano
|
||||
Raspberry = Frambuesa
|
||||
Gooseberry = Grosella
|
||||
Mixed Berry = Mezcla de Baya
|
||||
Basket with Strawberry Pies = Cesta con Pasteles de Frutilla
|
||||
Basket with Blackberry Pies = Cesta con Pasteles de Mora
|
||||
Basket with Blueberry Pies = Cesta con Pasteles de Arándano
|
||||
Basket with Raspberry Pies = Cesta con Pasteles de Frambuesa
|
||||
Basket with Gooseberry Pies = Cesta con Pasteles de Grosella
|
||||
Basket with Mixed Berry Pies = Cesta con Pasteles de Mezcla de Baya
|
||||
currently fruitless = Actualmente infructuoso
|
||||
Strawberry Bush = Arbusto de Frutilla
|
||||
Blackberry Bush = Arbusto de Mora
|
||||
Blueberry Bush = Arbusto de Arándano
|
||||
Raspberry Bush = Arbusto de Frambuesa
|
||||
Gooseberry Bush = Arbusto de Grosella
|
||||
Mixed Berry Bush = Arbusto de Mezcla de Baya
|
||||
Basket = Cesta
|
||||
Sugar = Azúcar
|
||||
Raw Strawberry pie = Pastel de Frutilla Crudo
|
||||
Raw Blackberry pie = Pastel de Mora Crudo
|
||||
Raw Blueberry pie = Pastel de Arándano Crudo
|
||||
Raw Raspberry pie = Pastel de Frambuesa Crudo
|
||||
Raw Gooseberry pie = Pastel de Grosella Crudo
|
||||
Raw Mixed Berry pie = Pastel de Mezcla de Bayas Cruda
|
||||
Cooked Strawberry pie = Pastel de Frutilla Cocido
|
||||
Cooked Blackberry pie = Pastel de Mora Cocido
|
||||
Cooked Blueberry pie = Pastel de Arándano Cocido
|
||||
Cooked Raspberry pie = Pastel de Frambuesa Cocido
|
||||
Cooked Gooseberry pie = Pastel de Grosella Cocido
|
||||
Cooked Mixed Berry pie = Pastel de Mezcla de Bayas Cocido
|
||||
Slice of Strawberry pie = Rebanada de Pastel de Frutilla
|
||||
Slice of Blackberry pie = Rebanada de Pastel de Mora
|
||||
Slice of Blueberry pie = Rebanada de Pastel de Arándano
|
||||
Slice of Raspberry pie = Rebanada de Pastel de Frambuesa
|
||||
Slice of Gooseberry pie = Rebanada de Pastel de Grosella
|
||||
Slice of Mixed Berry pie = Rebanada de Pastel de Mezcla de Bayas
|
||||
|
||||
[Bushes] Loaded. = [Arbustos] Cargado.
|
@ -1,4 +1,9 @@
|
||||
local S = biome_lib.intllib
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
S = function(s) return s end
|
||||
end
|
||||
|
||||
plantlife_bushes = {}
|
||||
|
||||
|
30
castle_farming/locale/es.po
Normal file
@ -0,0 +1,30 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-27 00:59-0700\n"
|
||||
"PO-Revision-Date: 2017-04-21 19:47-0500\n"
|
||||
"Last-Translator: Carlos Barraza <carlosbarrazaes@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: Español\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: hides.lua:9
|
||||
msgid "Hides"
|
||||
msgstr "Escondite"
|
||||
|
||||
#: straw.lua:13
|
||||
msgid "Bound Straw"
|
||||
msgstr "Paja amarrada"
|
||||
|
||||
#: straw.lua:22
|
||||
msgid "Training Dummy"
|
||||
msgstr "Maniqui de Entrenamiento"
|
261
castle_gates/locale/es.po
Normal file
@ -0,0 +1,261 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-03-01 23:41-0700\n"
|
||||
"PO-Revision-Date: 2017-04-28 11:56-0400\n"
|
||||
"Last-Translator: Carlos Barraza\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: Español\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: doc.lua:11
|
||||
msgid "Heavy wooden bars designed to prevent entry even to siege equipment."
|
||||
msgstr ""
|
||||
"Barras de madera pesadas diseñadas para evitar la entrada incluso a equipo de "
|
||||
"asedio"
|
||||
|
||||
#: doc.lua:12
|
||||
msgid ""
|
||||
"Place these bars in a structure together and they will slide as a unified "
|
||||
"gate when clicked on."
|
||||
msgstr ""
|
||||
"Coloque estas barras en una estructura juntas y se deslizarán como si "
|
||||
"estuvieran unidas cuando se le hace clic"
|
||||
|
||||
#: doc.lua:14
|
||||
msgid ""
|
||||
"The bottom edge of a portcullis gate, with knobs to lock securely into the "
|
||||
"floor."
|
||||
msgstr ""
|
||||
"Es el borde inferior de una puerta rastrillo, con perillas para bloquearla con "
|
||||
"seguridad en el piso"
|
||||
|
||||
#: doc.lua:15
|
||||
msgid ""
|
||||
"This block can be used to define the edge of a portcullius that meets up "
|
||||
"with another gate, should you have an arrangement like that. Otherwise it's "
|
||||
"just decorative."
|
||||
msgstr ""
|
||||
"Este bloque puede ser usado para definir el borde de una puerta rastrillo "
|
||||
"que esta cerca de otra puerta, si tiene varias puertas independientes, "
|
||||
"de lo contrario es simplemente decorativo"
|
||||
|
||||
#: doc.lua:17
|
||||
msgid "A basic gate panel."
|
||||
msgstr "Un panel básico de puerta"
|
||||
|
||||
#: doc.lua:18
|
||||
msgid ""
|
||||
"This gate segment will move in unison with adjoining gate segments when "
|
||||
"right-clicked."
|
||||
msgstr ""
|
||||
"Este segmento de puerta se moverá junto con los demas segmentos de puerta "
|
||||
"adyacente cuando se haga clic con el botón derecho del ratón"
|
||||
|
||||
#: doc.lua:20
|
||||
msgid "A gate panel with a defined edge."
|
||||
msgstr "Un panel de puerta con un borde."
|
||||
|
||||
#: doc.lua:21
|
||||
msgid ""
|
||||
"The darkened edge of this panel marks the edge of the gate it's a part of. "
|
||||
"You can use these when building double doors to ensure the two parts swing "
|
||||
"separately, for example. Note that edges aren't strictly necessary for gates "
|
||||
"that stand alone."
|
||||
msgstr ""
|
||||
"El borde oscurecido de este panel marca el limite de la puerta."
|
||||
"Usted puede utilizar estos bloques para construir puertas dobles para asegurar "
|
||||
"que las dos puertas funcionen por separado, por ejemplo. Tenga en cuenta que "
|
||||
"los bordes no son estrictamente necesarios para las puertas individuales"
|
||||
|
||||
#: doc.lua:23
|
||||
msgid "A gate edge with a handle."
|
||||
msgstr "Un panel de puerta con pestillo"
|
||||
|
||||
#: doc.lua:24
|
||||
msgid ""
|
||||
"The handle is basically decorative, a door this size can be swung by "
|
||||
"clicking anywhere on it. But the darkened edge of this panel is useful for "
|
||||
"defining the edge of a gate when it abuts a partner to the side."
|
||||
msgstr ""
|
||||
"El pestillo es básicamente decorativo, una puerta de este tamaño se puede "
|
||||
"abrir haciendo clic en cualquier parte de ella. Pero el borde oscuro de este "
|
||||
"panel es útil para definir el borde de la puerta cuando hay otra puerta al "
|
||||
"lado."
|
||||
|
||||
#: doc.lua:26
|
||||
msgid "A hinged gate segment that allows a gate to swing."
|
||||
msgstr "Un segmento de puerta con bisagra permite que la puerta se abra."
|
||||
|
||||
#: doc.lua:27
|
||||
msgid ""
|
||||
"If you have more than one hinge in your gate, make sure the hinges line up "
|
||||
"correctly otherwise the gate will not be able to swing. The hinge is the "
|
||||
"protruding block along the edge of the gate panel."
|
||||
msgstr ""
|
||||
"Si tiene más de una bisagra en su puerta, asegúrese de que las bisagras se "
|
||||
"alineen correctamente, de lo contrario la puerta no será capaz de abrirse. "
|
||||
"la bisagra es el bloque sobresaliente a lo largo del borde del panel de la "
|
||||
"puerta."
|
||||
|
||||
#: doc.lua:29
|
||||
msgid "A block with a slot to allow an adjacent sliding gate through."
|
||||
msgstr ""
|
||||
"Un bloque con una ranura en el medio para que una puerta deslizante pueda "
|
||||
"pasar a través de ella."
|
||||
|
||||
#: doc.lua:30
|
||||
msgid ""
|
||||
"This block is designed to extend into a neighboring node that a sliding gate "
|
||||
"passes through, to provide a tight seal for the gate to move through without "
|
||||
"allowing anything else to squeeze in."
|
||||
msgstr ""
|
||||
"Este bloque está diseñado para un nodo pueda deslizarse a travéz de este, para "
|
||||
"proporcionar un cierre hermético que solo deja pasar la puerta sin permitir "
|
||||
"entrar nada mas."
|
||||
|
||||
#: doc.lua:32
|
||||
msgid ""
|
||||
"A block that extends into an adjacent node to provide a tight seal for a "
|
||||
"large gate."
|
||||
msgstr ""
|
||||
"Un bloque con una ranura en el lado para que una puerta deslizante pueda "
|
||||
"pasar a través de ella."
|
||||
|
||||
#: doc.lua:33
|
||||
msgid ""
|
||||
"Two nodes cannot occupy the same space, but this block extends into a "
|
||||
"neighboring node's space to allow for gates to form a tight seal. It can be "
|
||||
"used with sliding gates or swinging gates."
|
||||
msgstr ""
|
||||
"Dos nodos no pueden utilizar el mismo espacio, pero este nodo se extiende al "
|
||||
"espacio de un nodo vecino para permitir que las puertas formen un cierre "
|
||||
"hermético. Puede utilizarse con puertas deslizantes y con las puertas que se "
|
||||
"abren rotando."
|
||||
|
||||
#: doc.lua:37
|
||||
msgid "Gates"
|
||||
msgstr "Puertas"
|
||||
|
||||
#: doc.lua:38
|
||||
msgid ""
|
||||
"Gates are large multi-node constructions that swing on hinges or slide out "
|
||||
"of the way when triggered."
|
||||
msgstr ""
|
||||
"Las puertas grandes son construcciones multi nodo que se abren usando bisagras "
|
||||
"o se deslizan hacia arriba cuando se activan"
|
||||
|
||||
#: doc.lua:43
|
||||
msgid "Gate construction"
|
||||
msgstr "Construcción de Puertas"
|
||||
|
||||
#: doc.lua:45
|
||||
msgid ""
|
||||
"Gates are multi-node constructions, usually (though not always) consisting "
|
||||
"of multiple node types that fit together into a unified whole. The "
|
||||
"orientation of gate nodes is significant, so a screwdriver will be a helpful "
|
||||
"tool when constructing gates.\n"
|
||||
"\n"
|
||||
"A gate's extent is determined by a \"flood fill\" operation. When you "
|
||||
"trigger a gate block, all compatible neighboring blocks will be considered "
|
||||
"part of the same structure and will move in unison. Only gate blocks that "
|
||||
"are aligned with each other will be considered part of the same gate. If you "
|
||||
"wish to build adjoining gates (for example, a large pair of double doors "
|
||||
"that meet in the center) you'll need to make use of gate edge blocks to "
|
||||
"prevent it all from being considered one big door. Note that if your gate "
|
||||
"does not abut any other gates you don't actually need to define its edges "
|
||||
"this way - you don't have to use edge blocks in this case.\n"
|
||||
"\n"
|
||||
"If a gate has no hinge nodes it will be considered a sliding gate. When "
|
||||
"triggered, the gate code will search for a direction that the gate can slide "
|
||||
"in and will move it in that direction at a rate of one block-length per "
|
||||
"second. Once it reaches an obstruction it will stop, and when triggered "
|
||||
"again it will try sliding in the opposite direction.\n"
|
||||
"\n"
|
||||
"If a gate has hinge nodes then triggering it will cause the gate to try "
|
||||
"swinging around the hinge. If the gate has multiple hinges and they don't "
|
||||
"line up properly the gate will be unable to move. Note that the gate can "
|
||||
"only exist in 90-degree increments of orientation, but the gate still looks "
|
||||
"for obstructions in the region it is swinging through and will not swing if "
|
||||
"there's something in the way."
|
||||
msgstr ""
|
||||
"Las puertas son generalmente construcciones multi nodo (aunque no siempre), "
|
||||
"que consisten de múltiples tipos de nodos que se acomodan en un todo "
|
||||
"unificado. La orientación de los nodos de la puerta es importante, por lo que "
|
||||
"un destornillador será útil para construir las puertas.\n"
|
||||
"\n"
|
||||
"La extención de una puerta se determina mediante una operación de \"Llenado de "
|
||||
"Inundación\". Al activar un bloque de la puerta, todos los bloques vecinos "
|
||||
"compatibles se considerán parte de la misma estructura y se moveran al unísono. "
|
||||
"Sólo los bloques de compuerta que estén alineados entre sí se considerarán "
|
||||
"parte de la misma puerta. Si desea construir puertas adyacentes (por ejemplo, "
|
||||
"un gran par de puertas dobles que se abran en el centro) tendrá que hacer uso "
|
||||
"de bloques de borde de puerta para evitar que todo sea considerado solo una "
|
||||
"gran puerta. Tenga en cuenta que si su puerta no se apoya en ninguna otra "
|
||||
"puerta, no necesita usar los bordes de puerta en este caso.\n"
|
||||
"\n"
|
||||
"Si una puerta no tiene nodos de bisagra se considerará una puerta deslizante. "
|
||||
"Cuando se ejecuta el codigo de la puerta buscará una dirección en la que la "
|
||||
"puerta pueda deslizarse y se moverá en esa dirección a una velocidad de un "
|
||||
"bloque por segundo. Una vez que llega a una obstrucción se detendrá, y cuando "
|
||||
"se ejecute de nuevo tratará de deslizarse en la dirección opuesta.\n"
|
||||
"\n"
|
||||
"Si una puerta tiene nodos de bisagra, entonces al activar la puerta tratara de "
|
||||
"girar al rededor de la bisagra. Si la puerta tiene bisagras múltiples y no "
|
||||
"estan bien alineadas, la puerta no podrá moverse. Tenga en cuenta que la "
|
||||
"puerta sólo puede existir en incrementos de 90 grados de orientación, pero la "
|
||||
"puerta todavía busca obstrucciones en la región que está moviéndose y no "
|
||||
"girara si hay algo en el camino."
|
||||
|
||||
|
||||
#: doors.lua:8
|
||||
msgid "Oak Door"
|
||||
msgstr "Puerta de Roble"
|
||||
|
||||
#: doors.lua:22
|
||||
msgid "Jail Door"
|
||||
msgstr "Puerta de Cárcel"
|
||||
|
||||
#: doors.lua:43
|
||||
msgid "Jail Bars"
|
||||
msgstr ""
|
||||
|
||||
#: gate_slots.lua:36
|
||||
msgid "Stonebrick"
|
||||
msgstr "Ladrillo de Piedra"
|
||||
|
||||
#: gate_slots.lua:45
|
||||
msgid "@1 Gate Slot"
|
||||
msgstr "Espacio para Puerta de @1"
|
||||
|
||||
#: gate_slots.lua:70
|
||||
msgid "@1 Gate Slot Reverse"
|
||||
msgstr "Espacio para Puerta Invertido de @1"
|
||||
|
||||
#: gates.lua:7
|
||||
msgid "Portcullis Bars"
|
||||
msgstr "Barras de la Puerta Rastrillo"
|
||||
|
||||
#: gates.lua:37
|
||||
msgid "Portcullis Bottom"
|
||||
msgstr "Terminación de la Puerta Rastrillo"
|
||||
|
||||
#: gates.lua:104
|
||||
msgid "Gate Door"
|
||||
msgstr "Porción de la Puerta"
|
||||
|
||||
#: gates.lua:136
|
||||
msgid "Gate Door Edge"
|
||||
msgstr "Borde de la Puerta"
|
||||
|
||||
#: gates.lua:175
|
||||
msgid "Gate Door With Handle"
|
||||
msgstr "Pestillo de la Puerta"
|
||||
|
||||
#: gates.lua:218
|
||||
msgid "Gate Door With Hinge"
|
||||
msgstr "Bisagra de la Puerta"
|
54
castle_lighting/locale/es.po
Normal file
@ -0,0 +1,54 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-03-01 23:52-0700\n"
|
||||
"PO-Revision-Date: 2017-04-28 12:40-0400\n"
|
||||
"Last-Translator: Carlos Barraza\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: Español\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: brasier.lua:7
|
||||
msgid "A brasier for producing copious amounts of light and heat."
|
||||
msgstr "Un brasero para producir grandes cantidades de luz y calor."
|
||||
|
||||
#: brasier.lua:8
|
||||
msgid ""
|
||||
"To ignite the brasier place a flammable fuel in its inventory slot. A lump "
|
||||
"of coal will burn for about half an hour."
|
||||
msgstr ""
|
||||
"Para encender el brasero coloque un combustible inflamable en su ranura de "
|
||||
"inventario. Un trozo de carbón arderá durante media hora."
|
||||
|
||||
#: brasier.lua:107
|
||||
msgid "Floor Brasier"
|
||||
msgstr "Brasero con Patas"
|
||||
|
||||
#: brasier.lua:156
|
||||
msgid "Stonebrick"
|
||||
msgstr "Ladrillo de piedra"
|
||||
|
||||
#: brasier.lua:228
|
||||
msgid "@1 Brasier"
|
||||
msgstr "Brasero de @1"
|
||||
|
||||
#: init.lua:17
|
||||
msgid "Light Block"
|
||||
msgstr "Bloque de luz"
|
||||
|
||||
#: init.lua:37
|
||||
msgid "Chandelier"
|
||||
msgstr "Candelero"
|
||||
|
||||
#: init.lua:76
|
||||
msgid "Chandelier Chain"
|
||||
msgstr "Colgante de Candelero"
|
@ -186,7 +186,7 @@ function caverealms:nodeupdate_single(p, delay)
|
||||
end
|
||||
|
||||
if minetest.get_item_group(n.name, "attached_node") ~= 0 then
|
||||
if not check_attached_node(p, n) then
|
||||
if not caverealms:check_attached_node(p, n) then
|
||||
caverealms:drop_attached_node(p)
|
||||
caverealms:nodeupdate(p)
|
||||
end
|
||||
|
@ -86,10 +86,10 @@ minetest.register_node("caverealms:thin_ice", {
|
||||
|
||||
--alternate version for stalactites
|
||||
minetest.register_node("caverealms:hanging_thin_ice", {
|
||||
description = "Thin Ice",
|
||||
description = "Thin Ice (hanging)",
|
||||
tiles = {"caverealms_thin_ice.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky=3},
|
||||
groups = {cracky=3, not_in_creative_inventory = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
use_texture_alpha = true,
|
||||
drawtype = "glasslike",
|
||||
|
@ -18,7 +18,7 @@
|
||||
coloredwood = {}
|
||||
|
||||
coloredwood.enable_stairsplus = true
|
||||
if minetest.setting_getbool("coloredwood_enable_stairsplus") == false or not minetest.get_modpath("moreblocks") then
|
||||
if minetest.settings:get_bool("coloredwood_enable_stairsplus") == false or not minetest.get_modpath("moreblocks") then
|
||||
coloredwood.enable_stairsplus = false
|
||||
end
|
||||
|
||||
|
8
concrete/locale/es.txt
Normal file
@ -0,0 +1,8 @@
|
||||
# technic_concrete traducido por Carlos Barraza
|
||||
|
||||
Rebar = Barra de refuerzo
|
||||
Concrete Block = Bloque de concreto
|
||||
Blast-resistant Concrete Block = Bloque de concreto resistente a explosiones
|
||||
Concrete Post Platform = Plataforma de concreto
|
||||
Concrete Post = Postes de concreto
|
||||
|
@ -1,5 +1,9 @@
|
||||
barter = {}
|
||||
|
||||
-- internationalization boilerplate
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
barter.chest = {}
|
||||
barter.chest.formspec = {
|
||||
main = "size[8,9]"..
|
||||
@ -7,20 +11,20 @@ barter.chest.formspec = {
|
||||
"list[current_name;pl2;5,0;3,4;]"..
|
||||
"list[current_player;main;0,5;8,4;]",
|
||||
pl1 = {
|
||||
start = "button[3,1;1,1;pl1_start;Start]",
|
||||
start = "button[3,1;1,1;pl1_start;" .. S("Start") .. "]",
|
||||
player = function(name) return "label[3,0;"..name.."]" end,
|
||||
accept1 = "button[3,1;1,1;pl1_accept1;Confirm]"..
|
||||
"button[3,2;1,1;pl1_cancel;Cancel]",
|
||||
accept2 = "button[3,1;1,1;pl1_accept2;Exchange]"..
|
||||
"button[3,2;1,1;pl1_cancel;Cancel]",
|
||||
accept1 = "button[3,1;1,1;pl1_accept1;" .. S("Confirm") .. "]"..
|
||||
"button[3,2;1,1;pl1_cancel;" .. S("Cancel") .. "]",
|
||||
accept2 = "button[3,1;1,1;pl1_accept2;" .. S("Exchange") .. "]"..
|
||||
"button[3,2;1,1;pl1_cancel;" .. S("Cancel") .. "]",
|
||||
},
|
||||
pl2 = {
|
||||
start = "button[4,1;1,1;pl2_start;Start]",
|
||||
start = "button[4,1;1,1;pl2_start;" .. S("Start") .. "]",
|
||||
player = function(name) return "label[4,0;"..name.."]" end,
|
||||
accept1 = "button[4,1;1,1;pl2_accept1;Confirm]"..
|
||||
"button[4,2;1,1;pl2_cancel;Cancel]",
|
||||
accept2 = "button[4,1;1,1;pl2_accept2;Exchange]"..
|
||||
"button[4,2;1,1;pl2_cancel;Cancel]",
|
||||
accept1 = "button[4,1;1,1;pl2_accept1;" .. S("Confirm") .. "]"..
|
||||
"button[4,2;1,1;pl2_cancel;" .. S("Cancel") .. "]",
|
||||
accept2 = "button[4,1;1,1;pl2_accept2;" .. S("Exchange") .. "]"..
|
||||
"button[4,2;1,1;pl2_cancel;" .. S("Cancel") .. "]",
|
||||
},
|
||||
}
|
||||
|
||||
@ -90,7 +94,7 @@ end
|
||||
|
||||
minetest.register_node("currency:barter", {
|
||||
drawtype = "nodebox",
|
||||
description = "Barter Table",
|
||||
description = S("Barter Table"),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"barter_top.png",
|
||||
@ -111,7 +115,7 @@ minetest.register_node("currency:barter", {
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("infotext", "Barter Table")
|
||||
meta:set_string("infotext", S("Barter Table"))
|
||||
meta:set_string("pl1","")
|
||||
meta:set_string("pl2","")
|
||||
barter.chest.update_formspec(meta)
|
||||
|
@ -1,26 +1,30 @@
|
||||
-- internationalization boilerplate
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
minetest.register_craftitem("currency:minegeld", {
|
||||
description = "1 MineGeld Note",
|
||||
description = S("1 MineGeld Note"),
|
||||
inventory_image = "minegeld.png",
|
||||
stack_max = 30000,
|
||||
groups = {minegeld = 1}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("currency:minegeld_5", {
|
||||
description = "5 MineGeld Note",
|
||||
description = S("5 MineGeld Note"),
|
||||
inventory_image = "minegeld_5.png",
|
||||
stack_max = 30000,
|
||||
groups = {minegeld = 1}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("currency:minegeld_10", {
|
||||
description = "10 MineGeld Note",
|
||||
description = S("10 MineGeld Note"),
|
||||
inventory_image = "minegeld_10.png",
|
||||
stack_max = 30000,
|
||||
groups = {minegeld = 1}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("currency:minegeld_bundle", {
|
||||
description = "Bundle of random Minegeld notes",
|
||||
description = S("Bundle of random Minegeld notes"),
|
||||
inventory_image = "minegeld_bundle.png",
|
||||
stack_max = 30000,
|
||||
})
|
||||
|
@ -1,2 +1,4 @@
|
||||
default
|
||||
pipeworks?
|
||||
intllib?
|
||||
loot?
|
||||
pipeworks?
|
@ -1,5 +1,9 @@
|
||||
players_income = {}
|
||||
|
||||
-- internationalization boilerplate
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
local timer = 0
|
||||
minetest.register_globalstep(function(dtime)
|
||||
timer = timer + dtime;
|
||||
@ -11,7 +15,7 @@ minetest.register_globalstep(function(dtime)
|
||||
players_income[name] = 0
|
||||
end
|
||||
players_income[name] = 1
|
||||
minetest.log("info", "[Currency] basic income for "..name.."")
|
||||
minetest.log("info", "[Currency] "..S("basic income for @1", name))
|
||||
end
|
||||
end
|
||||
end)
|
||||
@ -27,7 +31,7 @@ earn_income = function(player)
|
||||
local inv = player:get_inventory()
|
||||
inv:add_item("main", {name="currency:minegeld_5", count=count})
|
||||
players_income[name] = 0
|
||||
minetest.log("info", "[Currency] added basic income for "..name.." to inventory")
|
||||
minetest.log("info", "[Currency] "..S("added basic income for @1 to inventory", name))
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,20 +1,24 @@
|
||||
minetest.log("info", " Currency mod loading... ")
|
||||
local modpath = minetest.get_modpath("currency")
|
||||
|
||||
-- internationalization boilerplate
|
||||
local S, NS = dofile(modpath.."/intllib.lua")
|
||||
|
||||
minetest.log("info", S("Currency mod loading..."))
|
||||
|
||||
dofile(modpath.."/craftitems.lua")
|
||||
minetest.log("info", "[Currency] Craft_items Loaded!")
|
||||
minetest.log("info", "[Currency] "..S("Craft_items Loaded!"))
|
||||
dofile(modpath.."/shop.lua")
|
||||
minetest.log("info", "[Currency] Shop Loaded!")
|
||||
minetest.log("info", "[Currency] "..S("Shop Loaded!"))
|
||||
dofile(modpath.."/barter.lua")
|
||||
minetest.log("info", "[Currency] Barter Loaded!")
|
||||
minetest.log("info", "[Currency] "..S("Barter Loaded!"))
|
||||
dofile(modpath.."/safe.lua")
|
||||
minetest.log("info", "[Currency] Safe Loaded!")
|
||||
minetest.log("info", "[Currency] "..S("Safe Loaded!"))
|
||||
dofile(modpath.."/crafting.lua")
|
||||
minetest.log("info", "[Currency] Crafting Loaded!")
|
||||
minetest.log("info", "[Currency] "..S("Crafting Loaded!"))
|
||||
|
||||
if minetest.setting_getbool("creative_mode") then
|
||||
minetest.log("info", "[Currency] Creative mode in use, skipping basic income.")
|
||||
minetest.log("info", "[Currency] "..S("Creative mode in use, skipping basic income."))
|
||||
else
|
||||
dofile(modpath.."/income.lua")
|
||||
minetest.log("info", "[Currency] Income Loaded!")
|
||||
minetest.log("info", "[Currency] "..S("Income Loaded!"))
|
||||
end
|
||||
|
45
currency/intllib.lua
Normal file
@ -0,0 +1,45 @@
|
||||
|
||||
-- Fallback functions for when `intllib` is not installed.
|
||||
-- Code released under Unlicense <http://unlicense.org>.
|
||||
|
||||
-- Get the latest version of this file at:
|
||||
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
|
||||
|
||||
local function format(str, ...)
|
||||
local args = { ... }
|
||||
local function repl(escape, open, num, close)
|
||||
if escape == "" then
|
||||
local replacement = tostring(args[tonumber(num)])
|
||||
if open == "" then
|
||||
replacement = replacement..close
|
||||
end
|
||||
return replacement
|
||||
else
|
||||
return "@"..open..num..close
|
||||
end
|
||||
end
|
||||
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
|
||||
end
|
||||
|
||||
local gettext, ngettext
|
||||
if minetest.get_modpath("intllib") then
|
||||
if intllib.make_gettext_pair then
|
||||
-- New method using gettext.
|
||||
gettext, ngettext = intllib.make_gettext_pair()
|
||||
else
|
||||
-- Old method using text files.
|
||||
gettext = intllib.Getter()
|
||||
end
|
||||
end
|
||||
|
||||
-- Fill in missing functions.
|
||||
|
||||
gettext = gettext or function(msgid, ...)
|
||||
return format(msgid, ...)
|
||||
end
|
||||
|
||||
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
|
||||
return format(n==1 and msgid or msgid_plural, ...)
|
||||
end
|
||||
|
||||
return gettext, ngettext
|
177
currency/locale/template.pot
Normal file
@ -0,0 +1,177 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-02-20 13:58-0700\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: barter.lua:14 barter.lua:22
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: barter.lua:16 barter.lua:24
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: barter.lua:17 barter.lua:19 barter.lua:25 barter.lua:27
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: barter.lua:18 barter.lua:26 shop.lua:20
|
||||
msgid "Exchange"
|
||||
msgstr ""
|
||||
|
||||
#: barter.lua:97 barter.lua:118
|
||||
msgid "Barter Table"
|
||||
msgstr ""
|
||||
|
||||
#: craftitems.lua:6
|
||||
msgid "1 MineGeld Note"
|
||||
msgstr ""
|
||||
|
||||
#: craftitems.lua:13
|
||||
msgid "5 MineGeld Note"
|
||||
msgstr ""
|
||||
|
||||
#: craftitems.lua:20
|
||||
msgid "10 MineGeld Note"
|
||||
msgstr ""
|
||||
|
||||
#: craftitems.lua:27
|
||||
msgid "Bundle of random Minegeld notes"
|
||||
msgstr ""
|
||||
|
||||
#: income.lua:18
|
||||
msgid "basic income for @1"
|
||||
msgstr ""
|
||||
|
||||
#: income.lua:34
|
||||
msgid "added basic income for @1 to inventory"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:6
|
||||
msgid "Currency mod loading..."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:9
|
||||
msgid "Craft_items Loaded!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:11
|
||||
msgid "Shop Loaded!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:13
|
||||
msgid "Barter Loaded!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:15
|
||||
msgid "Safe Loaded!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:17
|
||||
msgid "Crafting Loaded!"
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:20
|
||||
msgid "Creative mode in use, skipping basic income."
|
||||
msgstr ""
|
||||
|
||||
#: init.lua:23
|
||||
msgid "Income Loaded!"
|
||||
msgstr ""
|
||||
|
||||
#: safe.lua:29
|
||||
msgid "Safe"
|
||||
msgstr ""
|
||||
|
||||
#: safe.lua:44
|
||||
msgid "Safe (owned by @1)"
|
||||
msgstr ""
|
||||
|
||||
#: safe.lua:61 safe.lua:70 safe.lua:79
|
||||
msgid "@1 tried to access a safe belonging to @2 at @3"
|
||||
msgstr ""
|
||||
|
||||
#: safe.lua:86
|
||||
msgid "@1 moves stuff in safe at @2"
|
||||
msgstr ""
|
||||
|
||||
#: safe.lua:89
|
||||
msgid "@1 moves stuff to safe at @2"
|
||||
msgstr ""
|
||||
|
||||
#: safe.lua:92
|
||||
msgid "@1 takes stuff from safe at @2"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:11
|
||||
msgid "Customer gives (pay here!)"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:13
|
||||
msgid "Customer gets:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:15
|
||||
msgid "Owner wants:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:17
|
||||
msgid "Owner gives:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:26
|
||||
msgid "Customers gave:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:28
|
||||
msgid "Your stock:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:30
|
||||
msgid "You want:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:32
|
||||
msgid "In exchange, you give:"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:34
|
||||
msgid "Owner, Use (E)+Place (right mouse button) for customer interface"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:88
|
||||
msgid "Shop"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:102
|
||||
msgid "Exchange shop (owned by @1)"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:151
|
||||
msgid "This is your own shop, you can't exchange to yourself!"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:188
|
||||
msgid "Exchanged!"
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:191
|
||||
msgid "Exchange can not be done, contact the shop owner."
|
||||
msgstr ""
|
||||
|
||||
#: shop.lua:193
|
||||
msgid "Exchange can not be done, check if you put all items!"
|
||||
msgstr ""
|
30
currency/loot.lua
Normal file
@ -0,0 +1,30 @@
|
||||
if not minetest.get_modpath("loot") then
|
||||
return
|
||||
end
|
||||
|
||||
loot.register_loot({
|
||||
weights = { generic = 50 },
|
||||
payload = {
|
||||
stack = ItemStack("currency:minegeld"),
|
||||
min_size = 1,
|
||||
max_size = 250,
|
||||
},
|
||||
})
|
||||
|
||||
loot.register_loot({
|
||||
weights = { generic = 50 },
|
||||
payload = {
|
||||
stack = ItemStack("currency:minegeld_5"),
|
||||
min_size = 1,
|
||||
max_size = 50,
|
||||
},
|
||||
})
|
||||
|
||||
loot.register_loot({
|
||||
weights = { generic = 50 },
|
||||
payload = {
|
||||
stack = ItemStack("currency:minegeld_10"),
|
||||
min_size = 1,
|
||||
max_size = 10,
|
||||
},
|
||||
})
|
@ -1,3 +1,7 @@
|
||||
-- internationalization boilerplate
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
function default.get_safe_formspec(pos)
|
||||
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
|
||||
local formspec =
|
||||
@ -22,12 +26,12 @@ local function has_safe_privilege(meta, player)
|
||||
end
|
||||
|
||||
minetest.register_node("currency:safe", {
|
||||
description = "Safe",
|
||||
description = S("Safe"),
|
||||
inventory_image = "safe_front.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
"safe_side.png",
|
||||
@ -37,8 +41,7 @@ minetest.register_node("currency:safe", {
|
||||
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", "Safe (owned by "..
|
||||
meta:get_string("owner")..")")
|
||||
meta:set_string("infotext", S("Safe (owned by @1)", meta:get_string("owner")))
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
@ -55,10 +58,8 @@ minetest.register_node("currency:safe", {
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not has_safe_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a safe belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
minetest.log("action", S("@1 tried to access a safe belonging to @2 at @3",
|
||||
player:get_player_name(), meta:get_string("owner"), minetest.pos_to_string(pos)))
|
||||
return 0
|
||||
end
|
||||
return count
|
||||
@ -66,10 +67,8 @@ minetest.register_node("currency:safe", {
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not has_safe_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a safe belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
minetest.log("action", S("@1 tried to access a safe belonging to @2 at @3",
|
||||
player:get_player_name(), meta:get_string("owner"), minetest.pos_to_string(pos)))
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
@ -77,25 +76,20 @@ minetest.register_node("currency:safe", {
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not has_safe_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a safe belonging to "..
|
||||
meta:get_string("owner").." at "..
|
||||
minetest.pos_to_string(pos))
|
||||
minetest.log("action", S("@1 tried to access a safe belonging to @2 at @3",
|
||||
player:get_player_name(), meta:get_string("owner"), minetest.pos_to_string(pos)))
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff in safe at "..minetest.pos_to_string(pos))
|
||||
minetest.log("action", S("@1 moves stuff in safe at @2", player:get_player_name(), minetest.pos_to_string(pos)))
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" moves stuff to safe at "..minetest.pos_to_string(pos))
|
||||
minetest.log("action", S("@1 moves stuff to safe at @2", player:get_player_name(), minetest.pos_to_string(pos)))
|
||||
end,
|
||||
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" takes stuff from safe at "..minetest.pos_to_string(pos))
|
||||
minetest.log("action", S("@1 takes stuff from safe at @2", player:get_player_name(), minetest.pos_to_string(pos)))
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
@ -1,38 +1,44 @@
|
||||
-- internationalization boilerplate
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
default.shop = {}
|
||||
default.shop.current_shop = {}
|
||||
default.shop.formspec = {
|
||||
customer = function(pos)
|
||||
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
|
||||
local formspec = "size[8,9.5]"..
|
||||
"label[0,0;Customer gives (pay here !)]"..
|
||||
"label[0,0;" .. S("Customer gives (pay here!)") .. "]"..
|
||||
"list[current_player;customer_gives;0,0.5;3,2;]"..
|
||||
"label[0,2.5;Customer gets]"..
|
||||
"label[0,2.5;" .. S("Customer gets:") .. "]"..
|
||||
"list[current_player;customer_gets;0,3;3,2;]"..
|
||||
"label[5,0;Owner wants]"..
|
||||
"label[5,0;" .. S("Owner wants:") .. "]"..
|
||||
"list["..list_name..";owner_wants;5,0.5;3,2;]"..
|
||||
"label[5,2.5;Owner gives]"..
|
||||
"label[5,2.5;" .. S("Owner gives:") .. "]"..
|
||||
"list["..list_name..";owner_gives;5,3;3,2;]"..
|
||||
"list[current_player;main;0,5.5;8,4;]"..
|
||||
"button[3,2;2,1;exchange;Exchange]"
|
||||
"button[3,2;2,1;exchange;" .. S("Exchange") .. "]"
|
||||
return formspec
|
||||
end,
|
||||
owner = function(pos)
|
||||
local list_name = "nodemeta:"..pos.x..','..pos.y..','..pos.z
|
||||
local formspec = "size[8,9.5]"..
|
||||
"label[0,0;Customers gave:]"..
|
||||
"label[0,0;" .. S("Customers gave:") .. "]"..
|
||||
"list["..list_name..";customers_gave;0,0.5;3,2;]"..
|
||||
"label[0,2.5;Your stock:]"..
|
||||
"label[0,2.5;" .. S("Your stock:") .. "]"..
|
||||
"list["..list_name..";stock;0,3;3,2;]"..
|
||||
"label[5,0;You want:]"..
|
||||
"label[5,0;" .. S("You want:") .. "]"..
|
||||
"list["..list_name..";owner_wants;5,0.5;3,2;]"..
|
||||
"label[5,2.5;In exchange, you give:]"..
|
||||
"label[5,2.5;" .. S("In exchange, you give:") .. "]"..
|
||||
"list["..list_name..";owner_gives;5,3;3,2;]"..
|
||||
"label[0,5;Owner, Use(E)+Place(RMB) for customer interface]"..
|
||||
"label[0,5;" .. S("Owner, Use (E)+Place (right mouse button) for customer interface") .. "]"..
|
||||
"list[current_player;main;0,5.5;8,4;]"
|
||||
return formspec
|
||||
end,
|
||||
}
|
||||
|
||||
local have_pipeworks = minetest.global_exists("pipeworks")
|
||||
|
||||
default.shop.check_privilege = function(listname,playername,meta)
|
||||
--[[if listname == "pl1" then
|
||||
if playername ~= meta:get_string("pl1") then
|
||||
@ -81,10 +87,10 @@ default.shop.exchange = function(meta)
|
||||
end
|
||||
|
||||
minetest.register_node("currency:shop", {
|
||||
description = "Shop",
|
||||
description = S("Shop"),
|
||||
paramtype2 = "facedir",
|
||||
tiles = {"shop_top.png",
|
||||
"shop_top.png",
|
||||
"shop_top.png",
|
||||
"shop_side.png",
|
||||
"shop_side.png",
|
||||
"shop_side.png",
|
||||
@ -95,7 +101,7 @@ minetest.register_node("currency:shop", {
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local owner = placer:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("infotext", "Exchange shop (owned by "..owner..")")
|
||||
meta:set_string("infotext", S("Exchange shop (owned by @1)", owner))
|
||||
meta:set_string("owner",owner)
|
||||
--[[meta:set_string("pl1","")
|
||||
meta:set_string("pl2","")]]
|
||||
@ -104,9 +110,9 @@ minetest.register_node("currency:shop", {
|
||||
inv:set_size("stock", 3*2)
|
||||
inv:set_size("owner_wants", 3*2)
|
||||
inv:set_size("owner_gives", 3*2)
|
||||
if minetest.get_modpath("pipeworks") then pipeworks.after_place(pos) end
|
||||
if have_pipeworks then pipeworks.after_place(pos) end
|
||||
end,
|
||||
after_dig_node = (pipeworks and pipeworks.after_dig),
|
||||
after_dig_node = (have_pipeworks and pipeworks and pipeworks.after_dig),
|
||||
tube = {
|
||||
insert_object = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
@ -160,7 +166,7 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
||||
local pos = default.shop.current_shop[name]
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("owner") == name then
|
||||
minetest.chat_send_player(name,"This is your own shop, you can't exchange to yourself !")
|
||||
minetest.chat_send_player(name,S("This is your own shop, you can't exchange to yourself!"))
|
||||
else
|
||||
local minv = meta:get_inventory()
|
||||
local pinv = sender:get_inventory()
|
||||
@ -197,12 +203,12 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
||||
minv:remove_item("stock",item)
|
||||
pinv:add_item("customer_gets",item)
|
||||
end
|
||||
minetest.chat_send_player(name,"Exchanged!")
|
||||
minetest.chat_send_player(name,S("Exchanged!"))
|
||||
else
|
||||
if owners_fault then
|
||||
minetest.chat_send_player(name,"Exchange can not be done, contact the shop owner.")
|
||||
minetest.chat_send_player(name,S("Exchange can not be done, contact the shop owner."))
|
||||
else
|
||||
minetest.chat_send_player(name,"Exchange can not be done, check if you put all items !")
|
||||
minetest.chat_send_player(name,S("Exchange can not be done, check if you put all items!"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -25,7 +25,7 @@ end
|
||||
minetest.register_node("dryplants:juncus", {
|
||||
description = "Juncus",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_juncus_03.png"},
|
||||
inventory_image = "dryplants_juncus_inv.png",
|
||||
@ -67,7 +67,7 @@ minetest.register_node("dryplants:juncus", {
|
||||
minetest.register_node("dryplants:juncus_02", {
|
||||
description = "Juncus",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_juncus_02.png"},
|
||||
walkable = false,
|
||||
|
@ -125,7 +125,7 @@ minetest.register_node("dryplants:reedmace_top", {
|
||||
minetest.register_node("dryplants:reedmace_height_2", {
|
||||
description = "Reedmace, height: 2",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_reedmace_height_2.png"},
|
||||
inventory_image = "dryplants_reedmace_top.png",
|
||||
@ -148,7 +148,7 @@ minetest.register_node("dryplants:reedmace_height_2", {
|
||||
minetest.register_node("dryplants:reedmace_height_3", {
|
||||
description = "Reedmace, height: 3",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_reedmace_height_3.png"},
|
||||
inventory_image = "dryplants_reedmace_top.png",
|
||||
@ -171,7 +171,7 @@ minetest.register_node("dryplants:reedmace_height_3", {
|
||||
minetest.register_node("dryplants:reedmace_height_3_spikes", {
|
||||
description = "Reedmace, height: 3 & Spikes",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_reedmace_height_3_spikes.png"},
|
||||
inventory_image = "dryplants_reedmace_top.png",
|
||||
|
7
extranodes/locale/es.txt
Normal file
@ -0,0 +1,7 @@
|
||||
# technic_extranodes traducido por Carlos Barraza
|
||||
|
||||
Marble = Mármol
|
||||
Marble Bricks = Ladrillos de mármol
|
||||
Granite = Granito
|
||||
Concrete = Concreto
|
||||
|
@ -13,6 +13,8 @@ This mod works by adding your new plant to the {growing=1} group and numbering t
|
||||
|
||||
Changelog:
|
||||
|
||||
1.25 - Added check for farming.conf setting file to disable specific crops globally (inside mod folder) or world specific (inside world folder)
|
||||
1.24 - Added Hemp which can be crafted into fibre, paper, string, rope and oil.
|
||||
1.23 - Huge code tweak and tidy done and added barley seeds to be found in dry grass, barley can make flour for bread also.
|
||||
1.22 - Added grape bushes at high climates which can be cultivated into grape vines using trellis (9 sticks).
|
||||
1.21 - Added auto-refill code for planting crops (thanks crabman77), also fixed a few bugs
|
||||
@ -45,7 +47,7 @@ Changelog:
|
||||
0.1 - Fixed growing bug
|
||||
0.0 - Initial release
|
||||
|
||||
Lucky Blocks: 10 (plus 3 for default farming items)
|
||||
Lucky Blocks: 11 (plus 3 for default farming items)
|
||||
|
||||
|
||||
License of media (textures):
|
||||
@ -150,4 +152,5 @@ Created by TenPlus1
|
||||
farming_rhubarb_2.png
|
||||
farming_rhubarb_3.png
|
||||
farming_rhubarb.png
|
||||
farming_rhubarb_pie.png
|
||||
farming_rhubarb_pie.png
|
||||
farming_hemp*.png
|
||||
|
@ -6,6 +6,60 @@
|
||||
|
||||
local S = farming.intllib
|
||||
|
||||
-- place beans
|
||||
function place_beans(itemstack, placer, pointed_thing, plantname)
|
||||
|
||||
local pt = pointed_thing
|
||||
|
||||
-- check if pointing at a node
|
||||
if not pt or pt.type ~= "node" then
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local under = minetest.get_node(pt.under)
|
||||
|
||||
-- return if any of the nodes are not registered
|
||||
if not minetest.registered_nodes[under.name] then
|
||||
return
|
||||
end
|
||||
|
||||
-- am I right-clicking on something that has a custom on_place set?
|
||||
-- thanks to Krock for helping with this issue :)
|
||||
local def = minetest.registered_nodes[under.name]
|
||||
if def and def.on_rightclick then
|
||||
return def.on_rightclick(pt.under, under, placer, itemstack)
|
||||
end
|
||||
|
||||
-- check if pointing at bean pole
|
||||
if under.name ~= "farming:beanpole" then
|
||||
return
|
||||
end
|
||||
|
||||
-- add the node and remove 1 item from the itemstack
|
||||
minetest.set_node(pt.under, {name = plantname})
|
||||
|
||||
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0})
|
||||
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
|
||||
itemstack:take_item()
|
||||
|
||||
-- check for refill
|
||||
if itemstack:get_count() == 0 then
|
||||
|
||||
minetest.after(0.20,
|
||||
farming.refill_plant,
|
||||
placer,
|
||||
"farming:beans",
|
||||
placer:get_wield_index()
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- beans
|
||||
minetest.register_craftitem("farming:beans", {
|
||||
description = S("Green Beans"),
|
||||
@ -13,39 +67,8 @@ minetest.register_craftitem("farming:beans", {
|
||||
on_use = minetest.item_eat(1),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
|
||||
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
|
||||
return
|
||||
end
|
||||
|
||||
local nodename = minetest.get_node(pointed_thing.under).name
|
||||
|
||||
if nodename == "farming:beanpole" then
|
||||
minetest.set_node(pointed_thing.under, {name = "farming:beanpole_1"})
|
||||
|
||||
minetest.sound_play("default_place_node", {pos = pointed_thing.above, gain = 1.0})
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
|
||||
itemstack:take_item()
|
||||
|
||||
-- check for refill
|
||||
if itemstack:get_count() == 0 then
|
||||
|
||||
minetest.after(0.20,
|
||||
farming.refill_plant,
|
||||
placer,
|
||||
"farming:beans",
|
||||
placer:get_wield_index()
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
return place_beans(itemstack, placer, pointed_thing, "farming:beanpole_1")
|
||||
end,
|
||||
})
|
||||
|
||||
-- beans can be used for green dye
|
||||
|
@ -140,3 +140,17 @@ minetest.register_alias("farming_plus:tomato", "farming:tomato_8")
|
||||
|
||||
-- Weed
|
||||
minetest.register_alias("farming:weed", "default:grass_2")
|
||||
|
||||
-- Classic Bushes compatibility
|
||||
if minetest.get_modpath("bushes_classic") then
|
||||
|
||||
if eth then
|
||||
minetest.register_alias("bushes:strawberry", "farming:strawberry")
|
||||
else
|
||||
minetest.register_alias("bushes:strawberry", "farming:raspberries")
|
||||
end
|
||||
|
||||
minetest.register_alias("bushes:blueberry", "farming:blueberries")
|
||||
minetest.register_alias("bushes:raspberry", "farming:raspberries")
|
||||
|
||||
end
|
@ -31,9 +31,21 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
-- ethanol (thanks to JKMurray for this idea)
|
||||
minetest.register_craftitem("farming:bottle_ethanol", {
|
||||
minetest.register_node("farming:bottle_ethanol", {
|
||||
description = S("Bottle of Ethanol"),
|
||||
drawtype = "plantlike",
|
||||
tiles = {"farming_bottle_ethanol.png"},
|
||||
inventory_image = "farming_bottle_ethanol.png",
|
||||
wield_image = "farming_bottle_ethanol.png",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
|
||||
},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
|
@ -48,7 +48,7 @@ crop_def.tiles = {"farming_cucumber_4.png"}
|
||||
crop_def.groups.growing = 0
|
||||
crop_def.drop = {
|
||||
items = {
|
||||
{items = {'farming:cucumber'}, rarity = 1},
|
||||
{items = {'farming:cucumber 2'}, rarity = 1},
|
||||
{items = {'farming:cucumber 2'}, rarity = 2},
|
||||
}
|
||||
}
|
||||
|
27
farming/farming.conf_example
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
--[[
|
||||
Farming settings can be changed here and kept inside mod folder
|
||||
even after the mod has been updated, or you can place inside
|
||||
world folder for map specific settings.
|
||||
--]]
|
||||
|
||||
-- true to enable crop/food in-game and on mapgen
|
||||
farming.carrot = true
|
||||
farming.potato = true
|
||||
farming.tomato = true
|
||||
farming.cucumber = true
|
||||
farming.corn = true
|
||||
farming.coffee = true
|
||||
farming.coffee = true
|
||||
farming.melon = true
|
||||
farming.sugar = true
|
||||
farming.pumpkin = true
|
||||
farming.cocoa = true
|
||||
farming.raspberry = true
|
||||
farming.blueberry = true
|
||||
farming.rhubarb = true
|
||||
farming.beans = true
|
||||
farming.grapes = true
|
||||
farming.barley = true
|
||||
farming.hemp = true
|
||||
farming.donuts = true
|
213
farming/hemp.lua
Normal file
@ -0,0 +1,213 @@
|
||||
|
||||
local S = farming.intllib
|
||||
|
||||
-- hemp seeds
|
||||
minetest.register_node("farming:seed_hemp", {
|
||||
description = S("Hemp Seed"),
|
||||
tiles = {"farming_hemp_seed.png"},
|
||||
inventory_image = "farming_hemp_seed.png",
|
||||
wield_image = "farming_hemp_seed.png",
|
||||
drawtype = "signlike",
|
||||
groups = {seed = 1, snappy = 3, attached_node = 1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
walkable = false,
|
||||
sunlight_propagates = true,
|
||||
selection_box = farming.select,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1")
|
||||
end,
|
||||
})
|
||||
|
||||
-- harvested hemp
|
||||
minetest.register_craftitem("farming:hemp_leaf", {
|
||||
description = S("Hemp Leaf"),
|
||||
inventory_image = "farming_hemp_leaf.png",
|
||||
})
|
||||
|
||||
-- hemp oil
|
||||
minetest.register_node("farming:hemp_oil", {
|
||||
description = S("Bottle of Hemp Oil"),
|
||||
drawtype = "plantlike",
|
||||
tiles = {"farming_hemp_oil.png"},
|
||||
inventory_image = "farming_hemp_oil.png",
|
||||
wield_image = "farming_hemp_oil.png",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
|
||||
},
|
||||
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "farming:hemp_oil",
|
||||
recipe = {
|
||||
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
|
||||
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
|
||||
{"", "vessels:glass_bottle", ""}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "farming:hemp_oil",
|
||||
recipe = {
|
||||
{"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"},
|
||||
{"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"},
|
||||
{"farming:seed_hemp", "vessels:glass_bottle", "farming:seed_hemp"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "farming:hemp_oil",
|
||||
burntime = 20,
|
||||
replacements = {{ "farming:hemp_oil", "vessels:glass_bottle"}}
|
||||
})
|
||||
|
||||
-- hemp fibre
|
||||
minetest.register_craftitem("farming:hemp_fibre", {
|
||||
description = S("Hemp Fibre"),
|
||||
inventory_image = "farming_hemp_fibre.png",
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "farming:hemp_fibre 8",
|
||||
recipe = {
|
||||
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
|
||||
{"farming:hemp_leaf", "bucket:bucket_water", "farming:hemp_leaf"},
|
||||
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}
|
||||
},
|
||||
replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "farming:hemp_fibre 8",
|
||||
recipe = {
|
||||
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
|
||||
{"farming:hemp_leaf", "bucket:bucket_river_water", "farming:hemp_leaf"},
|
||||
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}
|
||||
},
|
||||
replacements = {{ "bucket:bucket_river_water", "bucket:bucket_empty"}}
|
||||
})
|
||||
|
||||
-- paper
|
||||
minetest.register_craft( {
|
||||
output = "default:paper",
|
||||
recipe = {
|
||||
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
|
||||
}
|
||||
})
|
||||
|
||||
-- string
|
||||
minetest.register_craft( {
|
||||
output = "farming:cotton",
|
||||
recipe = {
|
||||
{"farming:hemp_fibre"},
|
||||
{"farming:hemp_fibre"},
|
||||
{"farming:hemp_fibre"},
|
||||
}
|
||||
})
|
||||
|
||||
-- hemp rope
|
||||
minetest.register_node("farming:hemp_rope", {
|
||||
description = S("Hemp Rope"),
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
tiles = {"farming_hemp_rope.png"},
|
||||
wield_image = "farming_hemp_rope.png",
|
||||
inventory_image = "farming_hemp_rope.png",
|
||||
drawtype = "plantlike",
|
||||
groups = {flammable = 2, choppy = 3, oddly_breakable_by_hand = 3},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
|
||||
},
|
||||
})
|
||||
|
||||
-- string
|
||||
minetest.register_craft( {
|
||||
output = "farming:hemp_rope 6",
|
||||
recipe = {
|
||||
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
|
||||
{"farming:cotton", "farming:cotton", "farming:cotton"},
|
||||
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
|
||||
}
|
||||
})
|
||||
|
||||
-- hemp definition
|
||||
local crop_def = {
|
||||
drawtype = "plantlike",
|
||||
tiles = {"farming_hemp_1.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
drop = "",
|
||||
selection_box = farming.select,
|
||||
groups = {
|
||||
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
|
||||
not_in_creative_inventory = 1, growing = 1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults()
|
||||
}
|
||||
|
||||
-- stage 1
|
||||
minetest.register_node("farming:hemp_1", table.copy(crop_def))
|
||||
|
||||
-- stage 2
|
||||
crop_def.tiles = {"farming_hemp_2.png"}
|
||||
minetest.register_node("farming:hemp_2", table.copy(crop_def))
|
||||
|
||||
-- stage 3
|
||||
crop_def.tiles = {"farming_hemp_3.png"}
|
||||
minetest.register_node("farming:hemp_3", table.copy(crop_def))
|
||||
|
||||
-- stage 4
|
||||
crop_def.tiles = {"farming_hemp_4.png"}
|
||||
minetest.register_node("farming:hemp_4", table.copy(crop_def))
|
||||
|
||||
-- stage 5
|
||||
crop_def.tiles = {"farming_hemp_5.png"}
|
||||
minetest.register_node("farming:hemp_5", table.copy(crop_def))
|
||||
|
||||
-- stage 6
|
||||
crop_def.tiles = {"farming_hemp_6.png"}
|
||||
crop_def.drop = {
|
||||
items = {
|
||||
{items = {'farming:hemp_leaf'}, rarity = 2},
|
||||
{items = {'farming:seed_hemp'}, rarity = 1},
|
||||
}
|
||||
}
|
||||
minetest.register_node("farming:hemp_6", table.copy(crop_def))
|
||||
|
||||
-- stage 7
|
||||
crop_def.tiles = {"farming_hemp_7.png"}
|
||||
crop_def.drop = {
|
||||
items = {
|
||||
{items = {'farming:hemp_leaf'}, rarity = 1},
|
||||
{items = {'farming:hemp_leaf'}, rarity = 3},
|
||||
{items = {'farming:seed_hemp'}, rarity = 1},
|
||||
{items = {'farming:seed_hemp'}, rarity = 3},
|
||||
}
|
||||
}
|
||||
minetest.register_node("farming:hemp_7", table.copy(crop_def))
|
||||
|
||||
-- stage 8 (final)
|
||||
crop_def.tiles = {"farming_hemp_8.png"}
|
||||
crop_def.groups.growing = 0
|
||||
crop_def.drop = {
|
||||
items = {
|
||||
{items = {'farming:hemp_leaf 2'}, rarity = 1},
|
||||
{items = {'farming:hemp_leaf'}, rarity = 2},
|
||||
{items = {'farming:seed_hemp'}, rarity = 1},
|
||||
{items = {'farming:seed_hemp'}, rarity = 2},
|
||||
}
|
||||
}
|
||||
minetest.register_node("farming:hemp_8", table.copy(crop_def))
|
153
farming/init.lua
@ -1,5 +1,5 @@
|
||||
--[[
|
||||
Minetest Farming Redo Mod 1.23 (12th November 2016)
|
||||
Farming Redo Mod 1.25 (6th May 2017)
|
||||
by TenPlus1
|
||||
NEW growing routine by prestidigitator
|
||||
auto-refill by crabman77
|
||||
@ -14,38 +14,6 @@ farming.select = {
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
|
||||
}
|
||||
|
||||
farming.DEBUG = false
|
||||
-- farming.DEBUG = {} -- Uncomment to turn on profiling code/functions
|
||||
|
||||
local DEBUG_abm_runs = 0
|
||||
local DEBUG_abm_time = 0
|
||||
local DEBUG_timer_runs = 0
|
||||
local DEBUG_timer_time = 0
|
||||
|
||||
if farming.DEBUG then
|
||||
|
||||
function farming.DEBUG.reset_times()
|
||||
DEBUG_abm_runs = 0
|
||||
DEBUG_abm_time = 0
|
||||
DEBUG_timer_runs = 0
|
||||
DEBUG_timer_time = 0
|
||||
end
|
||||
|
||||
function farming.DEBUG.report_times()
|
||||
|
||||
local abm_n = DEBUG_abm_runs
|
||||
local abm_dt = DEBUG_abm_time
|
||||
local abm_avg = (abm_n > 0 and abm_dt / abm_n) or 0
|
||||
local timer_n = DEBUG_timer_runs
|
||||
local timer_dt = DEBUG_timer_time
|
||||
local timer_avg = (timer_n > 0 and timer_dt / timer_n) or 0
|
||||
local dt = abm_dt + timer_dt
|
||||
|
||||
print("ABM ran for "..abm_dt.."µs over "..abm_n.." runs: "..abm_avg.."µs/run")
|
||||
print("Timer ran for "..timer_dt.."µs over "..timer_n.." runs: "..timer_avg.."µs/run")
|
||||
print("Total farming time: "..dt.."µs")
|
||||
end
|
||||
end
|
||||
|
||||
local statistics = dofile(farming.path.."/statistics.lua")
|
||||
|
||||
@ -353,23 +321,6 @@ end)
|
||||
|
||||
local abm_func = farming.handle_growth
|
||||
|
||||
if farming.DEBUG then
|
||||
|
||||
local normal_abm_func = abm_func
|
||||
|
||||
abm_func = function(...)
|
||||
|
||||
local t0 = minetest.get_us_time()
|
||||
local r = { normal_abm_func(...) }
|
||||
local t1 = minetest.get_us_time()
|
||||
|
||||
DEBUG_abm_runs = DEBUG_abm_runs + 1
|
||||
DEBUG_abm_time = DEBUG_abm_time + (t1 - t0)
|
||||
|
||||
return unpack(r)
|
||||
end
|
||||
end
|
||||
|
||||
-- Just in case a growing type or added node is missed (also catches existing
|
||||
-- nodes added to map before timers were incorporated).
|
||||
|
||||
@ -399,8 +350,7 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
|
||||
|
||||
if stages.plant_name == "farming:cocoa" then
|
||||
|
||||
if not minetest.find_node_near(pos, 1,
|
||||
{"default:jungletree", "moretrees:jungletree_leaves_green"}) then
|
||||
if not minetest.find_node_near(pos, 1, {"default:jungletree"}) then
|
||||
|
||||
return true
|
||||
end
|
||||
@ -465,23 +415,6 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
|
||||
return growth ~= max_growth
|
||||
end
|
||||
|
||||
if farming.DEBUG then
|
||||
|
||||
local timer_func = farming.plant_growth_timer;
|
||||
|
||||
farming.plant_growth_timer = function(pos, elapsed, node_name)
|
||||
|
||||
local t0 = minetest.get_us_time()
|
||||
local r = { timer_func(pos, elapsed, node_name) }
|
||||
local t1 = minetest.get_us_time()
|
||||
|
||||
DEBUG_timer_runs = DEBUG_timer_runs + 1
|
||||
DEBUG_timer_time = DEBUG_timer_time + (t1 - t0)
|
||||
|
||||
return unpack(r)
|
||||
end
|
||||
end
|
||||
|
||||
-- refill placed plant by crabman (26/08/2015)
|
||||
local can_refill_plant = {
|
||||
["farming:blueberry_1"] = "farming:blueberries",
|
||||
@ -502,6 +435,7 @@ local can_refill_plant = {
|
||||
["farming:rhubarb_1"] = "farming:rhubarb",
|
||||
["farming:cocoa_1"] = "farming:cocoa_beans",
|
||||
["farming:barley_1"] = "farming:seed_barley",
|
||||
["farming:hemp_1"] = "farming:seed_hemp",
|
||||
}
|
||||
|
||||
function farming.refill_plant(player, plantname, index)
|
||||
@ -595,7 +529,7 @@ function farming.place_seed(itemstack, placer, pointed_thing, plantname)
|
||||
end
|
||||
end
|
||||
|
||||
-- Function to register plants (for compatibility)
|
||||
-- Function to register plants (default farming compatibility)
|
||||
|
||||
farming.register_plant = function(name, def)
|
||||
|
||||
@ -680,7 +614,7 @@ farming.register_plant = function(name, def)
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
|
||||
-- register_plant_node(node_name)
|
||||
register_plant_node(node_name)
|
||||
end
|
||||
|
||||
-- Return info
|
||||
@ -688,30 +622,71 @@ farming.register_plant = function(name, def)
|
||||
return r
|
||||
end
|
||||
|
||||
-- load crops
|
||||
|
||||
-- default settings
|
||||
farming.carrot = true
|
||||
farming.potato = true
|
||||
farming.tomato = true
|
||||
farming.cucumber = true
|
||||
farming.corn = true
|
||||
farming.coffee = true
|
||||
farming.coffee = true
|
||||
farming.melon = true
|
||||
farming.sugar = true
|
||||
farming.pumpkin = true
|
||||
farming.cocoa = true
|
||||
farming.raspberry = true
|
||||
farming.blueberry = true
|
||||
farming.rhubarb = true
|
||||
farming.beans = true
|
||||
farming.grapes = true
|
||||
farming.barley = true
|
||||
farming.hemp = true
|
||||
farming.donuts = true
|
||||
|
||||
|
||||
-- Load new global settings if found inside mod folder
|
||||
local input = io.open(farming.path.."/farming.conf", "r")
|
||||
if input then
|
||||
dofile(farming.path .. "/farming.conf")
|
||||
input:close()
|
||||
input = nil
|
||||
end
|
||||
|
||||
-- load new world-specific settings if found inside world folder
|
||||
local worldpath = minetest.get_worldpath()
|
||||
local input = io.open(worldpath.."/farming.conf", "r")
|
||||
if input then
|
||||
dofile(worldpath .. "/farming.conf")
|
||||
input:close()
|
||||
input = nil
|
||||
end
|
||||
|
||||
|
||||
-- load crops
|
||||
dofile(farming.path.."/soil.lua")
|
||||
dofile(farming.path.."/hoes.lua")
|
||||
dofile(farming.path.."/grass.lua")
|
||||
dofile(farming.path.."/wheat.lua")
|
||||
dofile(farming.path.."/cotton.lua")
|
||||
dofile(farming.path.."/carrot.lua")
|
||||
dofile(farming.path.."/potato.lua")
|
||||
dofile(farming.path.."/tomato.lua")
|
||||
dofile(farming.path.."/cucumber.lua")
|
||||
dofile(farming.path.."/corn.lua")
|
||||
dofile(farming.path.."/coffee.lua")
|
||||
dofile(farming.path.."/melon.lua")
|
||||
dofile(farming.path.."/sugar.lua")
|
||||
dofile(farming.path.."/pumpkin.lua")
|
||||
dofile(farming.path.."/cocoa.lua")
|
||||
dofile(farming.path.."/raspberry.lua")
|
||||
dofile(farming.path.."/blueberry.lua")
|
||||
dofile(farming.path.."/rhubarb.lua")
|
||||
dofile(farming.path.."/beanpole.lua")
|
||||
dofile(farming.path.."/grapes.lua")
|
||||
dofile(farming.path.."/barley.lua")
|
||||
dofile(farming.path.."/donut.lua")
|
||||
if farming.carrot then dofile(farming.path.."/carrot.lua") end
|
||||
if farming.potato then dofile(farming.path.."/potato.lua") end
|
||||
if farming.tomato then dofile(farming.path.."/tomato.lua") end
|
||||
if farming.cucumber then dofile(farming.path.."/cucumber.lua") end
|
||||
if farming.corn then dofile(farming.path.."/corn.lua") end
|
||||
if farming.coffee then dofile(farming.path.."/coffee.lua") end
|
||||
if farming.melon then dofile(farming.path.."/melon.lua") end
|
||||
if farming.sugar then dofile(farming.path.."/sugar.lua") end
|
||||
if farming.pumpkin then dofile(farming.path.."/pumpkin.lua") end
|
||||
if farming.cocoa then dofile(farming.path.."/cocoa.lua") end
|
||||
if farming.raspberry then dofile(farming.path.."/raspberry.lua") end
|
||||
if farming.blueberry then dofile(farming.path.."/blueberry.lua") end
|
||||
if farming.rhubarb then dofile(farming.path.."/rhubarb.lua") end
|
||||
if farming.beans then dofile(farming.path.."/beanpole.lua") end
|
||||
if farming.grapes then dofile(farming.path.."/grapes.lua") end
|
||||
if farming.barley then dofile(farming.path.."/barley.lua") end
|
||||
if farming.hemp then dofile(farming.path.."/hemp.lua") end
|
||||
if farming.donuts then dofile(farming.path.."/donut.lua") end
|
||||
dofile(farming.path.."/mapgen.lua")
|
||||
dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility
|
||||
dofile(farming.path.."/lucky_block.lua")
|
||||
|
@ -74,7 +74,7 @@ Baked Potato = Ofenkartoffel
|
||||
#pumpkin.lua
|
||||
Pumpkin = Kürbis
|
||||
Pumpkin Slice = Kürbisscheibe
|
||||
Jack 'O Lantern = Kürbislaterne
|
||||
Jack 'O Lantern (punch to turn on and off) = Kürbislaterne (Punch zum Ein- und Ausschalten)
|
||||
Pumpkin Bread = Kürbisbrot
|
||||
Pumpkin Dough = Kürbisteig
|
||||
|
||||
|
@ -72,7 +72,7 @@ Baked Potato =
|
||||
#pumpkin.lua
|
||||
Pumpkin =
|
||||
Pumpkin Slice =
|
||||
Jack 'O Lantern =
|
||||
Jack 'O Lantern (punch to turn on and off) =
|
||||
Pumpkin Bread =
|
||||
Pumpkin Dough =
|
||||
|
||||
|
@ -14,5 +14,6 @@ if minetest.get_modpath("lucky_block") then
|
||||
{"dro", {"farming:bottle_ethanol"}, 1},
|
||||
{"nod", "farming:melon", 0},
|
||||
{"dro", {"farming:donut", "farming:donut_chocolate", "farming:donut_apple"}, 5},
|
||||
{"dro", {"farming:hemp_leaf", "farming:hemp_fibre", "farming:seed_hemp"}, 5},
|
||||
})
|
||||
end
|
||||
|
@ -1,5 +1,11 @@
|
||||
|
||||
-- decoration function
|
||||
local function register_plant(name, min, max, spawnby, num)
|
||||
local function register_plant(name, min, max, spawnby, num, enabled)
|
||||
|
||||
if enabled ~= true then
|
||||
return
|
||||
end
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = {"default:dirt_with_grass"},
|
||||
@ -20,46 +26,50 @@ local function register_plant(name, min, max, spawnby, num)
|
||||
})
|
||||
end
|
||||
|
||||
function farming.register_mgv6_decorations()
|
||||
register_plant("potato_3", 15, 40, "", -1)
|
||||
register_plant("tomato_7", 5, 20, "", -1)
|
||||
register_plant("carrot_8", 1, 30, "group:water", 1)
|
||||
register_plant("cucumber_4", 1, 20, "group:water", 1)
|
||||
register_plant("corn_7", 12, 22, "", -1)
|
||||
register_plant("corn_8", 10, 20, "", -1)
|
||||
register_plant("coffee_5", 20, 45, "", -1)
|
||||
register_plant("melon_8", 1, 20, "group:water", 1)
|
||||
register_plant("pumpkin_8", 1, 20, "group:water", 1)
|
||||
register_plant("raspberry_4", 3, 10, "", -1)
|
||||
register_plant("rhubarb_3", 3, 15, "", -1)
|
||||
register_plant("blueberry_4", 3, 10, "", -1)
|
||||
register_plant("beanbush", 18, 35, "", -1)
|
||||
register_plant("grapebush", 25, 45, "", -1)
|
||||
end
|
||||
|
||||
-- v7 maps have a beach so plants growing near water is limited to 6 high
|
||||
function farming.register_mgv7_decorations()
|
||||
register_plant("potato_3", 15, 40, "", -1)
|
||||
register_plant("tomato_7", 5, 20, "", -1)
|
||||
register_plant("carrot_8", 1, 6, "", -1)
|
||||
register_plant("cucumber_4", 1, 6, "", -1)
|
||||
register_plant("corn_7", 12, 22, "", -1)
|
||||
register_plant("corn_8", 10, 20, "", -1)
|
||||
register_plant("coffee_5", 20, 45, "", -1)
|
||||
register_plant("melon_8", 1, 6, "", -1)
|
||||
register_plant("pumpkin_8", 1, 6, "", -1)
|
||||
register_plant("raspberry_4", 3, 10, "", -1)
|
||||
register_plant("rhubarb_3", 3, 15, "", -1)
|
||||
register_plant("blueberry_4", 3, 10, "", -1)
|
||||
register_plant("beanbush", 18, 35, "", -1)
|
||||
register_plant("grapebush", 25, 45, "", -1)
|
||||
end
|
||||
-- add crops to mapgen
|
||||
register_plant("potato_3", 15, 40, "", -1, farming.potato)
|
||||
register_plant("tomato_7", 5, 20, "", -1, farming.tomato)
|
||||
register_plant("corn_7", 12, 22, "", -1, farming.corn)
|
||||
register_plant("coffee_5", 20, 45, "", -1, farming.coffee)
|
||||
register_plant("raspberry_4", 3, 10, "", -1, farming.raspberry)
|
||||
register_plant("rhubarb_3", 3, 15, "", -1, farming.rhubarb)
|
||||
register_plant("blueberry_4", 3, 10, "", -1, farming.blueberry)
|
||||
register_plant("beanbush", 18, 35, "", -1, farming.beans)
|
||||
register_plant("grapebush", 25, 45, "", -1, farming.grapes)
|
||||
|
||||
-- detect mapgen
|
||||
local mg_name = minetest.get_mapgen_params().mgname
|
||||
|
||||
if mg_name == "v6" then
|
||||
farming.register_mgv6_decorations()
|
||||
if minetest.get_mapgen_params().mgname == "v6" then
|
||||
|
||||
register_plant("carrot_8", 1, 30, "group:water", 1, farming.carrot)
|
||||
register_plant("cucumber_4", 1, 20, "group:water", 1, farming.cucumber)
|
||||
register_plant("melon_8", 1, 20, "group:water", 1, farming.melon)
|
||||
register_plant("pumpkin_8", 1, 20, "group:water", 1, farming.pumpkin)
|
||||
else
|
||||
farming.register_mgv7_decorations()
|
||||
-- v7 maps have a beach so plants growing near water is limited to 6 high
|
||||
register_plant("carrot_8", 1, 6, "", -1, farming.carrot)
|
||||
register_plant("cucumber_4", 1, 6, "", -1, farming.cucumber)
|
||||
register_plant("melon_8", 1, 6, "", -1, farming.melon)
|
||||
register_plant("pumpkin_8", 1, 6, "", -1, farming.pumpkin)
|
||||
end
|
||||
|
||||
if farming.hemp then
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.06,
|
||||
spread = {x = 100, y = 100, z = 100},
|
||||
seed = 420,
|
||||
octaves = 3,
|
||||
persist = 0.6
|
||||
},
|
||||
y_min = 5,
|
||||
y_max = 35,
|
||||
decoration = "farming:hemp_7",
|
||||
spawn_by = "group:tree",
|
||||
num_spawn_by = 1,
|
||||
})
|
||||
end
|
||||
|
@ -53,7 +53,7 @@ minetest.register_craft({
|
||||
|
||||
-- jack 'o lantern
|
||||
minetest.register_node("farming:jackolantern", {
|
||||
description = S("Jack 'O Lantern"),
|
||||
description = S("Jack 'O Lantern (punch to turn on and off)"),
|
||||
tiles = {
|
||||
"farming_pumpkin_top.png",
|
||||
"farming_pumpkin_top.png",
|
||||
|
BIN
farming/textures/farming_hemp_1.png
Normal file
After Width: | Height: | Size: 115 B |
BIN
farming/textures/farming_hemp_2.png
Normal file
After Width: | Height: | Size: 122 B |
BIN
farming/textures/farming_hemp_3.png
Normal file
After Width: | Height: | Size: 129 B |
BIN
farming/textures/farming_hemp_4.png
Normal file
After Width: | Height: | Size: 132 B |
BIN
farming/textures/farming_hemp_5.png
Normal file
After Width: | Height: | Size: 142 B |
BIN
farming/textures/farming_hemp_6.png
Normal file
After Width: | Height: | Size: 148 B |
BIN
farming/textures/farming_hemp_7.png
Normal file
After Width: | Height: | Size: 169 B |
BIN
farming/textures/farming_hemp_8.png
Normal file
After Width: | Height: | Size: 174 B |
BIN
farming/textures/farming_hemp_fibre.png
Normal file
After Width: | Height: | Size: 144 B |
BIN
farming/textures/farming_hemp_leaf.png
Normal file
After Width: | Height: | Size: 172 B |
BIN
farming/textures/farming_hemp_oil.png
Normal file
After Width: | Height: | Size: 164 B |
BIN
farming/textures/farming_hemp_rope.png
Normal file
After Width: | Height: | Size: 122 B |
BIN
farming/textures/farming_hemp_seed.png
Normal file
After Width: | Height: | Size: 147 B |
@ -25,7 +25,7 @@ local nodenames = {}
|
||||
|
||||
local function create_nodes()
|
||||
local images = { "ferns_fern.png", "ferns_fern_mid.png", "ferns_fern_big.png" }
|
||||
local vscales = { 1, 2, 2.2 }
|
||||
local vscales = { 1, math.sqrt(8), math.sqrt(11) }
|
||||
local descs = { "Lady-fern (Athyrium)", nil, nil }
|
||||
|
||||
for i = 1, 3 do
|
||||
|
@ -104,7 +104,7 @@ end
|
||||
minetest.register_node("ferns:tree_fern_leaves_giant", {
|
||||
description = "Tree Fern Crown (Dicksonia)",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = math.sqrt(8),
|
||||
visual_scale = math.sqrt(11),
|
||||
wield_scale = {x=0.175, y=0.175, z=0.175},
|
||||
paramtype = "light",
|
||||
tiles = {"ferns_fern_tree_giant.png"},
|
||||
|
@ -55,7 +55,7 @@ end
|
||||
minetest.register_node("ferns:tree_fern_leaves", {
|
||||
description = "Tree Fern Crown (Dicksonia)",
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
--tiles = {"[combine:32x32:0,0=top_left.png:0,16=bottom_left.png:16,0=top_right.png:16,16=bottom_right.png"},
|
||||
@ -89,7 +89,7 @@ minetest.register_node("ferns:tree_fern_leaves", {
|
||||
})
|
||||
minetest.register_node("ferns:tree_fern_leaves_02", {
|
||||
drawtype = "plantlike",
|
||||
visual_scale = 2,
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"ferns_fern_big.png"},
|
||||
walkable = false,
|
||||
|
@ -1,4 +1,9 @@
|
||||
local S = biome_lib.intllib
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
else
|
||||
S = function(s) return s end
|
||||
end
|
||||
|
||||
-- This file supplies a few additional plants and some related crafts
|
||||
-- for the plantlife modpack. Last revision: 2013-04-24
|
||||
|
13
flowers_plus/locale/es.txt
Normal file
@ -0,0 +1,13 @@
|
||||
# Traducido por Carlos Barraza
|
||||
|
||||
Waterlily = Lirio de agua
|
||||
Seaweed = Algas marinas
|
||||
Potted Rose = Rosa en maceta
|
||||
Potted Tulip = Tulipán en maceta
|
||||
Potted Yellow Dandelion = Diente de león amarillo en maceta
|
||||
Potted White Dandelion = Diente de león blanco en maceta
|
||||
Potted Blue Geranium = Geranio azul en maceta
|
||||
Potted Viola = Viola en maceta
|
||||
Flower Pot = Florero
|
||||
|
||||
[Flowers] Loaded. = [Flores] Cargado.
|
@ -4,11 +4,11 @@ local S = homedecor_i18n.gettext
|
||||
minetest.register_node("homedecor:bathroom_tiles_dark", {
|
||||
description = S("Bathroom/kitchen tiles (dark)"),
|
||||
tiles = {
|
||||
{ name = "homedecor_bathroom_tiles_bg.png", color = 0xff606060 },
|
||||
"homedecor_bathroom_tiles_fg.png"
|
||||
"homedecor_bathroom_tiles_bg.png"
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xff606060 },
|
||||
},
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_block_with_overlay.obj",
|
||||
paramtype = "light",
|
||||
paramtype2 = "color",
|
||||
palette = "unifieddyes_palette_extended.png",
|
||||
@ -23,11 +23,11 @@ minetest.register_node("homedecor:bathroom_tiles_dark", {
|
||||
minetest.register_node("homedecor:bathroom_tiles_medium", {
|
||||
description = S("Bathroom/kitchen tiles (medium)"),
|
||||
tiles = {
|
||||
{ name = "homedecor_bathroom_tiles_bg.png", color = 0xffc0c0c0 },
|
||||
"homedecor_bathroom_tiles_fg.png"
|
||||
"homedecor_bathroom_tiles_bg.png"
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffc0c0c0 },
|
||||
},
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_block_with_overlay.obj",
|
||||
paramtype = "light",
|
||||
paramtype2 = "color",
|
||||
palette = "unifieddyes_palette_extended.png",
|
||||
@ -42,11 +42,11 @@ minetest.register_node("homedecor:bathroom_tiles_medium", {
|
||||
minetest.register_node("homedecor:bathroom_tiles_light", {
|
||||
description = S("Bathroom/kitchen tiles (light)"),
|
||||
tiles = {
|
||||
{ name = "homedecor_bathroom_tiles_bg.png", color = 0xffffffff },
|
||||
"homedecor_bathroom_tiles_fg.png"
|
||||
"homedecor_bathroom_tiles_bg.png"
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffffffff },
|
||||
},
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_block_with_overlay.obj",
|
||||
paramtype = "light",
|
||||
paramtype2 = "color",
|
||||
palette = "unifieddyes_palette_extended.png",
|
||||
|
@ -67,11 +67,12 @@ homedecor.register("bed_regular", {
|
||||
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
|
||||
return itemstack
|
||||
else
|
||||
-- if minetest.get_modpath("beds") then
|
||||
-- beds.on_rightclick(pos, clicker)
|
||||
-- end
|
||||
if minetest.get_modpath("beds") then
|
||||
beds.on_rightclick(pos, clicker)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
@ -98,13 +99,13 @@ homedecor.register("bed_extended", {
|
||||
unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger)
|
||||
homedecor.unextend_bed(pos)
|
||||
end,
|
||||
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
-- local itemname = itemstack:get_name()
|
||||
-- if minetest.get_modpath("beds") then
|
||||
-- beds.on_rightclick(pos, clicker)
|
||||
-- end
|
||||
-- return itemstack
|
||||
-- end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local itemname = itemstack:get_name()
|
||||
if minetest.get_modpath("beds") then
|
||||
beds.on_rightclick(pos, clicker)
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
drop = "homedecor:bed_regular"
|
||||
})
|
||||
|
||||
@ -139,13 +140,13 @@ homedecor.register("bed_kingsize", {
|
||||
inv:add_item("main", "homedecor:bed_regular 2")
|
||||
end
|
||||
end,
|
||||
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
-- local itemname = itemstack:get_name()
|
||||
-- if minetest.get_modpath("beds") then
|
||||
-- beds.on_rightclick(pos, clicker)
|
||||
-- end
|
||||
-- return itemstack
|
||||
-- end
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local itemname = itemstack:get_name()
|
||||
if minetest.get_modpath("beds") then
|
||||
beds.on_rightclick(pos, clicker)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
for _, w in pairs({ N_("mahogany"), N_("oak") }) do
|
||||
|
@ -1,155 +1,159 @@
|
||||
|
||||
local S = homedecor_i18n.gettext
|
||||
|
||||
local function N_(x) return x end
|
||||
|
||||
local bookcolors = {
|
||||
{ N_("red"), 0xffd26466 },
|
||||
{ N_("green"), 0xff62aa66 },
|
||||
{ N_("blue"), 0xff8686d7 },
|
||||
{ N_("violet"), 0xff9c65a7 },
|
||||
{ N_("grey"), 0xff757579 },
|
||||
{ N_("brown"), 0xff896958 }
|
||||
}
|
||||
|
||||
local BOOK_FORMNAME = "homedecor:book_form"
|
||||
|
||||
local player_current_book = { }
|
||||
|
||||
local function book_dig(pos, node, digger)
|
||||
if minetest.is_protected(pos, digger:get_player_name()) then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local data = minetest.serialize({
|
||||
title = meta:get_string("title") or "",
|
||||
text = meta:get_string("text") or "",
|
||||
owner = meta:get_string("owner") or "",
|
||||
_recover = meta:get_string("_recover") or "",
|
||||
})
|
||||
local stack = ItemStack({
|
||||
name = "homedecor:book",
|
||||
metadata = data,
|
||||
})
|
||||
stack = digger:get_inventory():add_item("main", stack)
|
||||
if not stack:is_empty() then
|
||||
minetest.item_drop(stack, digger, pos)
|
||||
end
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
for _, c in ipairs(bookcolors) do
|
||||
local color, hue = unpack(c)
|
||||
|
||||
local inv_img = "homedecor_book_inv.png^homedecor_book_trim_inv.png"
|
||||
|
||||
homedecor.register("book", {
|
||||
description = S("Writable Book"),
|
||||
mesh = "homedecor_book.obj",
|
||||
tiles = {
|
||||
"homedecor_book_cover.png",
|
||||
{ name = "homedecor_book_edges.png", color = 0xffffffff },
|
||||
{ name = "homedecor_book_cover_trim.png", color = 0xffffffff }
|
||||
},
|
||||
inventory_image = inv_img,
|
||||
wield_image = inv_img,
|
||||
groups = { snappy=3, oddly_breakable_by_hand=3, book=1, ud_param2_colorable = 1 },
|
||||
walkable = false,
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
after_dig_node = unifieddyes.after_dig_node,
|
||||
stack_max = 1,
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.swap_node(pos, { name = "homedecor:book_open", param2 = fdir })
|
||||
end,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local plname = placer:get_player_name()
|
||||
local pos = pointed_thing.under
|
||||
local node = minetest.get_node_or_nil(pos)
|
||||
local def = node and minetest.registered_nodes[node.name]
|
||||
if not def or not def.buildable_to then
|
||||
pos = pointed_thing.above
|
||||
node = minetest.get_node_or_nil(pos)
|
||||
def = node and minetest.registered_nodes[node.name]
|
||||
if not def or not def.buildable_to then return itemstack end
|
||||
end
|
||||
if minetest.is_protected(pos, plname) then return itemstack end
|
||||
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
|
||||
minetest.set_node(pos, {
|
||||
name = "homedecor:book",
|
||||
param2 = fdir,
|
||||
local function book_dig(pos, node, digger)
|
||||
if minetest.is_protected(pos, digger:get_player_name()) then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local data = minetest.serialize({
|
||||
title = meta:get_string("title") or "",
|
||||
text = meta:get_string("text") or "",
|
||||
owner = meta:get_string("owner") or "",
|
||||
_recover = meta:get_string("_recover") or "",
|
||||
})
|
||||
local text = itemstack:get_metadata() or ""
|
||||
local meta = minetest.get_meta(pos)
|
||||
local data = minetest.deserialize(text) or {}
|
||||
if type(data) ~= "table" then
|
||||
data = {}
|
||||
-- Store raw metadata in case some data is lost by the
|
||||
-- transition to the new meta format, so it is not lost
|
||||
-- and can be recovered if needed.
|
||||
meta:set_string("_recover", text)
|
||||
local stack = ItemStack({
|
||||
name = "homedecor:book_"..color,
|
||||
metadata = data,
|
||||
})
|
||||
stack = digger:get_inventory():add_item("main", stack)
|
||||
if not stack:is_empty() then
|
||||
minetest.item_drop(stack, digger, pos)
|
||||
end
|
||||
meta:set_string("title", data.title or "")
|
||||
meta:set_string("text", data.text or "")
|
||||
meta:set_string("owner", data.owner or "")
|
||||
if data.title and data.title ~= "" then
|
||||
meta:set_string("infotext", data.title)
|
||||
end
|
||||
if not homedecor.expect_infinite_stacks then
|
||||
itemstack:take_item()
|
||||
end
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
return itemstack
|
||||
end,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
on_dig = book_dig,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25}
|
||||
}
|
||||
})
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
|
||||
homedecor.register("book_open", {
|
||||
mesh = "homedecor_book_open.obj",
|
||||
tiles = {
|
||||
"homedecor_book_cover.png",
|
||||
{ name = "homedecor_book_edges.png", color = 0xffffffff },
|
||||
{ name = "homedecor_book_pages.png", color = 0xffffffff }
|
||||
},
|
||||
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1, ud_param2_colorable = 1 },
|
||||
drop = "homedecor:book",
|
||||
walkable = false,
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
after_place_node = unifieddyes.fix_rotation_nsew,
|
||||
after_dig_node = unifieddyes.after_dig_node,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
on_dig = book_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local player_name = clicker:get_player_name()
|
||||
local title = meta:get_string("title") or ""
|
||||
local text = meta:get_string("text") or ""
|
||||
local owner = meta:get_string("owner") or ""
|
||||
local formspec
|
||||
if owner == "" or owner == player_name then
|
||||
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
|
||||
"field[0.5,1;7.5,0;title;Book title :;"..
|
||||
minetest.formspec_escape(title).."]"..
|
||||
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
|
||||
minetest.formspec_escape(text).."]"..
|
||||
"button_exit[2.5,7.5;3,1;save;Save]"
|
||||
else
|
||||
formspec = "size[8,8]"..default.gui_bg..
|
||||
"button_exit[7,0.25;1,0.5;close;X]"..
|
||||
default.gui_bg_img..
|
||||
"label[0.5,0.5;by "..owner.."]"..
|
||||
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
|
||||
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
|
||||
end
|
||||
player_current_book[player_name] = pos
|
||||
minetest.show_formspec(player_name, BOOK_FORMNAME, formspec)
|
||||
return itemstack
|
||||
end,
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.swap_node(pos, { name = "homedecor:book", param2 = fdir })
|
||||
minetest.sound_play("homedecor_book_close", {
|
||||
pos=pos,
|
||||
max_hear_distance = 3,
|
||||
gain = 2,
|
||||
homedecor.register("book_"..color, {
|
||||
description = S("Writable Book (@1)", S(color)),
|
||||
mesh = "homedecor_book.obj",
|
||||
tiles = {
|
||||
{ name = "homedecor_book_cover.png", color = hue },
|
||||
{ name = "homedecor_book_edges.png", color = "white" }
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_book_cover_trim.png", color = "white" },
|
||||
""
|
||||
},
|
||||
groups = { snappy=3, oddly_breakable_by_hand=3, book=1 },
|
||||
walkable = false,
|
||||
stack_max = 1,
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.swap_node(pos, { name = "homedecor:book_open_"..color, param2 = fdir })
|
||||
end,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local plname = placer:get_player_name()
|
||||
local pos = pointed_thing.under
|
||||
local node = minetest.get_node_or_nil(pos)
|
||||
local def = node and minetest.registered_nodes[node.name]
|
||||
if not def or not def.buildable_to then
|
||||
pos = pointed_thing.above
|
||||
node = minetest.get_node_or_nil(pos)
|
||||
def = node and minetest.registered_nodes[node.name]
|
||||
if not def or not def.buildable_to then return itemstack end
|
||||
end
|
||||
if minetest.is_protected(pos, plname) then return itemstack end
|
||||
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
|
||||
minetest.set_node(pos, {
|
||||
name = "homedecor:book_"..color,
|
||||
param2 = fdir,
|
||||
})
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25}
|
||||
}
|
||||
})
|
||||
local text = itemstack:get_metadata() or ""
|
||||
local meta = minetest.get_meta(pos)
|
||||
local data = minetest.deserialize(text) or {}
|
||||
if type(data) ~= "table" then
|
||||
data = {}
|
||||
-- Store raw metadata in case some data is lost by the
|
||||
-- transition to the new meta format, so it is not lost
|
||||
-- and can be recovered if needed.
|
||||
meta:set_string("_recover", text)
|
||||
end
|
||||
meta:set_string("title", data.title or "")
|
||||
meta:set_string("text", data.text or "")
|
||||
meta:set_string("owner", data.owner or "")
|
||||
if data.title and data.title ~= "" then
|
||||
meta:set_string("infotext", data.title)
|
||||
end
|
||||
if not homedecor.expect_infinite_stacks then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_dig = book_dig,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.2, -0.5, -0.25, 0.2, -0.35, 0.25}
|
||||
}
|
||||
})
|
||||
|
||||
homedecor.register("book_open_"..color, {
|
||||
mesh = "homedecor_book_open.obj",
|
||||
tiles = {
|
||||
{ name = "homedecor_book_cover.png", color = hue },
|
||||
{ name = "homedecor_book_edges.png", color = "white" },
|
||||
{ name = "homedecor_book_pages.png", color = "white" }
|
||||
},
|
||||
groups = { snappy=3, oddly_breakable_by_hand=3, not_in_creative_inventory=1 },
|
||||
drop = "homedecor:book_"..color,
|
||||
walkable = false,
|
||||
on_dig = book_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local player_name = clicker:get_player_name()
|
||||
local title = meta:get_string("title") or ""
|
||||
local text = meta:get_string("text") or ""
|
||||
local owner = meta:get_string("owner") or ""
|
||||
local formspec
|
||||
if owner == "" or owner == player_name then
|
||||
formspec = "size[8,8]"..default.gui_bg..default.gui_bg_img..
|
||||
"field[0.5,1;7.5,0;title;Book title :;"..
|
||||
minetest.formspec_escape(title).."]"..
|
||||
"textarea[0.5,1.5;7.5,7;text;Book content :;"..
|
||||
minetest.formspec_escape(text).."]"..
|
||||
"button_exit[2.5,7.5;3,1;save;Save]"
|
||||
else
|
||||
formspec = "size[8,8]"..default.gui_bg..
|
||||
"button_exit[7,0.25;1,0.5;close;X]"..
|
||||
default.gui_bg_img..
|
||||
"label[0.5,0.5;by "..owner.."]"..
|
||||
"label[0.5,0;"..minetest.formspec_escape(title).."]"..
|
||||
"textarea[0.5,1.5;7.5,7;;"..minetest.formspec_escape(text)..";]"
|
||||
end
|
||||
player_current_book[player_name] = pos
|
||||
minetest.show_formspec(player_name, BOOK_FORMNAME, formspec)
|
||||
return itemstack
|
||||
end,
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.swap_node(pos, { name = "homedecor:book_"..color, param2 = fdir })
|
||||
minetest.sound_play("homedecor_book_close", {
|
||||
pos=pos,
|
||||
max_hear_distance = 3,
|
||||
gain = 2,
|
||||
})
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.35, -0.5, -0.25, 0.35, -0.4, 0.25}
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, form_name, fields)
|
||||
if form_name ~= BOOK_FORMNAME or not fields.save then
|
||||
@ -169,67 +173,5 @@ minetest.register_on_player_receive_fields(function(player, form_name, fields)
|
||||
player:get_player_name(), fields.title, fields.text, minetest.pos_to_string(player:getpos())))
|
||||
end)
|
||||
|
||||
-- convert old static nodes to param2
|
||||
|
||||
local bookcolors = {
|
||||
"red",
|
||||
"green",
|
||||
"blue",
|
||||
"violet",
|
||||
"grey",
|
||||
"brown"
|
||||
}
|
||||
|
||||
homedecor.old_static_books = {}
|
||||
for _, color in ipairs(bookcolors) do
|
||||
table.insert(homedecor.old_static_books, "homedecor:book_"..color)
|
||||
table.insert(homedecor.old_static_books, "homedecor:book_open_"..color)
|
||||
end
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "homedecor:convert_books",
|
||||
label = "Convert homedecor books to use param2 color",
|
||||
run_at_every_load = false,
|
||||
nodenames = homedecor.old_static_books,
|
||||
action = function(pos, node)
|
||||
local name = node.name
|
||||
local color = string.sub(name, string.find(name, "_", -7)+1)
|
||||
local newname = "homedecor:book"
|
||||
if string.find(name, "open") then
|
||||
newname = "homedecor:book_open"
|
||||
end
|
||||
|
||||
local old_fdir = math.floor(node.param2 % 32)
|
||||
local new_fdir = 3
|
||||
|
||||
if old_fdir == 0 then
|
||||
new_fdir = 3
|
||||
elseif old_fdir == 1 then
|
||||
new_fdir = 4
|
||||
elseif old_fdir == 2 then
|
||||
new_fdir = 2
|
||||
elseif old_fdir == 3 then
|
||||
new_fdir = 5
|
||||
end
|
||||
|
||||
if color == "grey" then
|
||||
color = "dark_grey"
|
||||
elseif color == "violet" then
|
||||
color = "dark_magenta"
|
||||
elseif color == "brown" then
|
||||
color = "dark_orange"
|
||||
elseif color == "blue" then
|
||||
color = "light_blue"
|
||||
else
|
||||
color = "medium_"..color
|
||||
end
|
||||
|
||||
local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted")
|
||||
local param2 = paletteidx + new_fdir
|
||||
|
||||
minetest.swap_node(pos, { name = newname, param2 = param2 })
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("dye", "unifieddyes:"..color)
|
||||
|
||||
end
|
||||
})
|
||||
minetest.register_alias("homedecor:book", "homedecor:book_grey")
|
||||
minetest.register_alias("homedecor:book_open", "homedecor:book_open_grey")
|
||||
|
@ -15,7 +15,7 @@ homedecor = {
|
||||
modpath = modpath,
|
||||
|
||||
-- infinite stacks
|
||||
expect_infinite_stacks = minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory")
|
||||
expect_infinite_stacks = minetest.settings:get_bool("creative_mode") and not minetest.get_modpath("unified_inventory")
|
||||
}
|
||||
|
||||
-- Determine if the item being pointed at is the underside of a node (e.g a ceiling)
|
||||
|
@ -21,6 +21,15 @@ minetest.register_node("homedecor:glowlight_half", {
|
||||
"homedecor_glowlight_thick_sides.png",
|
||||
"homedecor_glowlight_thick_sides.png"
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_glowlight_top_overlay.png", color = "white"},
|
||||
"",
|
||||
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_thick_sides_overlay.png", color = "white"},
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "colorwallmounted",
|
||||
@ -52,6 +61,15 @@ minetest.register_node("homedecor:glowlight_quarter", {
|
||||
"homedecor_glowlight_thin_sides.png",
|
||||
"homedecor_glowlight_thin_sides.png"
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_glowlight_top_overlay.png", color = "white"},
|
||||
"",
|
||||
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_thin_sides_overlay.png", color = "white"},
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "colorwallmounted",
|
||||
@ -83,6 +101,15 @@ minetest.register_node("homedecor:glowlight_small_cube", {
|
||||
"homedecor_glowlight_cube_sides.png",
|
||||
"homedecor_glowlight_cube_sides.png"
|
||||
},
|
||||
overlay_tiles = {
|
||||
{ name = "homedecor_glowlight_cube_tb_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_cube_tb_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
|
||||
{ name = "homedecor_glowlight_cube_sides_overlay.png", color = "white"},
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "colorwallmounted",
|
||||
drawtype = "nodebox",
|
||||
@ -106,9 +133,10 @@ minetest.register_node("homedecor:glowlight_small_cube", {
|
||||
|
||||
homedecor.register("plasma_lamp", {
|
||||
description = S("Plasma Lamp"),
|
||||
drawtype = "glasslike_framed",
|
||||
tiles = {"default_gold_block.png","homedecor_glass_face_clean.png"},
|
||||
special_tiles = {
|
||||
drawtype = "mesh",
|
||||
mesh = "plasma_lamp.obj",
|
||||
tiles = {
|
||||
"default_gold_block.png",
|
||||
{
|
||||
name="homedecor_plasma_storm.png",
|
||||
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
|
||||
@ -119,16 +147,13 @@ homedecor.register("plasma_lamp", {
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
minetest.swap_node(pos, {name = "homedecor:plasma_lamp", param2 = 255})
|
||||
end
|
||||
})
|
||||
|
||||
homedecor.register("plasma_ball", {
|
||||
description = S("Plasma Ball"),
|
||||
mesh = "homedecor_plasma_ball.obj",
|
||||
tiles = {
|
||||
"homedecor_generic_plastic.png",
|
||||
{ name = "homedecor_generic_plastic.png", color = homedecor.color_black },
|
||||
{
|
||||
name = "homedecor_plasma_ball_streamers.png",
|
||||
animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0},
|
||||
|
@ -1,243 +1,206 @@
|
||||
# Blender v2.72 (sub 0) OBJ File: 'book.blend'
|
||||
# Blender v2.78 (sub 0) OBJ File: 'book.blend'
|
||||
# www.blender.org
|
||||
o Cube.002_Cube.001
|
||||
v -0.216625 -0.161995 -0.448008
|
||||
v -0.216625 -0.149566 -0.485966
|
||||
v -0.216625 -0.113157 -0.485966
|
||||
v -0.216625 -0.142021 -0.448008
|
||||
v -0.208120 -0.115781 -0.485966
|
||||
v -0.208120 -0.142021 -0.448008
|
||||
v 0.220555 -0.113157 -0.485966
|
||||
v 0.220555 0.159347 -0.485966
|
||||
v 0.212050 -0.115781 -0.485966
|
||||
v -0.208120 -0.161995 -0.448008
|
||||
v -0.208120 0.148926 -0.485966
|
||||
v -0.208120 0.155653 -0.448008
|
||||
v 0.212051 0.155653 -0.448008
|
||||
v 0.212051 0.148926 -0.485966
|
||||
v -0.208120 -0.152482 -0.485966
|
||||
v 0.212050 -0.152482 -0.485966
|
||||
v 0.220555 -0.161995 -0.448008
|
||||
v 0.212050 -0.161995 -0.448008
|
||||
v 0.212050 -0.145193 -0.500002
|
||||
v -0.208120 -0.145193 -0.500002
|
||||
v -0.208120 -0.115781 -0.500002
|
||||
v 0.212050 -0.115781 -0.500002
|
||||
v 0.212050 -0.115781 -0.396013
|
||||
v -0.208120 -0.115781 -0.396013
|
||||
v -0.208120 -0.145193 -0.396013
|
||||
v 0.212050 -0.145193 -0.396013
|
||||
v 0.212050 -0.152482 -0.410049
|
||||
v -0.208120 -0.152482 -0.410049
|
||||
v 0.212051 0.148926 -0.410049
|
||||
v -0.208120 0.148926 -0.410049
|
||||
v 0.212050 -0.115781 -0.410049
|
||||
v 0.220555 0.159347 -0.410049
|
||||
v 0.220555 -0.113157 -0.410049
|
||||
v -0.208120 -0.115781 -0.410049
|
||||
v -0.216625 -0.113157 -0.410049
|
||||
v -0.216625 -0.149566 -0.410049
|
||||
v -0.216625 -0.115781 -0.396013
|
||||
v -0.216625 -0.141549 -0.396013
|
||||
v 0.220555 -0.149566 -0.410049
|
||||
v 0.220555 -0.141549 -0.396013
|
||||
v 0.220555 0.159346 -0.396013
|
||||
v -0.216624 0.159347 -0.396013
|
||||
v 0.220555 -0.115781 -0.396013
|
||||
v -0.216624 0.159347 -0.410049
|
||||
v -0.216625 -0.115781 -0.500002
|
||||
v -0.216625 -0.141549 -0.500002
|
||||
v 0.212050 -0.142021 -0.448008
|
||||
v 0.220555 -0.149566 -0.485966
|
||||
v 0.220555 -0.141549 -0.500002
|
||||
v 0.220555 0.159346 -0.500002
|
||||
v -0.216624 0.159347 -0.500002
|
||||
v 0.220555 -0.142021 -0.448008
|
||||
v 0.220555 -0.115781 -0.500002
|
||||
v -0.216624 0.159347 -0.485966
|
||||
v -0.216625 -0.162729 -0.448008
|
||||
v -0.216625 -0.150269 -0.486432
|
||||
v -0.208120 -0.162729 -0.448008
|
||||
v -0.208120 -0.153192 -0.486432
|
||||
v 0.212050 -0.153192 -0.486432
|
||||
v 0.220555 -0.162729 -0.448008
|
||||
v 0.212050 -0.162729 -0.448008
|
||||
v 0.212050 -0.145885 -0.500640
|
||||
v -0.208120 -0.145885 -0.500640
|
||||
v -0.208120 -0.116399 -0.500640
|
||||
v 0.212050 -0.116399 -0.500640
|
||||
v 0.212050 -0.116399 -0.395375
|
||||
v -0.208120 -0.116399 -0.395375
|
||||
v -0.208120 -0.145885 -0.395375
|
||||
v 0.212050 -0.145885 -0.395375
|
||||
v 0.212050 -0.153192 -0.409583
|
||||
v -0.208120 -0.153192 -0.409583
|
||||
v -0.216625 -0.150269 -0.409583
|
||||
v -0.216625 -0.116399 -0.395375
|
||||
v -0.216625 -0.142232 -0.395375
|
||||
v 0.220555 -0.150269 -0.409583
|
||||
v 0.220555 -0.142232 -0.395375
|
||||
v 0.220555 0.159416 -0.395375
|
||||
v -0.216624 0.159417 -0.395375
|
||||
v 0.220555 -0.116399 -0.395375
|
||||
v -0.216625 -0.116399 -0.500640
|
||||
v -0.216625 -0.142232 -0.500640
|
||||
v 0.220555 -0.150269 -0.486432
|
||||
v 0.220555 -0.142232 -0.500640
|
||||
v 0.220555 0.159416 -0.500640
|
||||
v -0.216624 0.159417 -0.500640
|
||||
v 0.220555 -0.116399 -0.500640
|
||||
vt 0.921987 0.383861
|
||||
vt 0.921987 0.340448
|
||||
vt 0.931829 0.340448
|
||||
vt 0.931829 0.383861
|
||||
vt 0.931829 0.427274
|
||||
vt 0.921987 0.427274
|
||||
vt 0.768089 0.490273
|
||||
vt 0.722954 0.490273
|
||||
vt 0.722954 0.009727
|
||||
vt 0.768089 0.009727
|
||||
vt 0.768089 0.500000
|
||||
vt 0.722404 0.500000
|
||||
vt 0.809636 0.490273
|
||||
vt 0.809086 0.500000
|
||||
vt 0.352434 0.000000
|
||||
vt 0.670829 0.000000
|
||||
vt 0.670829 0.009727
|
||||
vt 0.670829 0.490273
|
||||
vt 0.670829 0.500000
|
||||
vt 0.352433 0.499999
|
||||
vt 0.809636 0.009727
|
||||
vt 0.809086 0.000000
|
||||
vt 0.823601 0.000000
|
||||
vt 0.824288 0.009727
|
||||
vt 0.012060 0.509727
|
||||
vt 0.000000 0.500001
|
||||
vt 0.315359 0.500000
|
||||
vt 0.318396 0.509727
|
||||
vt 0.700649 0.000000
|
||||
vt 0.704866 0.009727
|
||||
vt 0.731001 0.867517
|
||||
vt 0.731001 0.844673
|
||||
vt 0.774928 0.811661
|
||||
vt 0.774928 0.853302
|
||||
vt 0.687072 0.853302
|
||||
vt 0.687072 0.811661
|
||||
vt 0.774928 0.500000
|
||||
vt 0.791171 0.500000
|
||||
vt 0.791171 0.814662
|
||||
vt 0.791171 0.844133
|
||||
vt 0.851343 0.522844
|
||||
vt 0.851343 0.500000
|
||||
vt 0.895271 0.514215
|
||||
vt 0.895271 0.555856
|
||||
vt 0.912144 0.383862
|
||||
vt 0.912144 0.340448
|
||||
vt 0.334639 0.500000
|
||||
vt 0.334639 0.999999
|
||||
vt 0.318396 0.999999
|
||||
vt 0.318396 0.500000
|
||||
vt 0.895271 0.867517
|
||||
vt 0.911514 0.523384
|
||||
vt 0.911514 0.552855
|
||||
vt 0.911514 0.867516
|
||||
vt 0.824288 0.490273
|
||||
vt 0.823601 0.500000
|
||||
vt 0.807415 0.555856
|
||||
vt 0.807415 0.514215
|
||||
vt 0.768089 0.000000
|
||||
vt 0.722404 0.000000
|
||||
vt 0.912144 0.427274
|
||||
vt 0.318396 0.990273
|
||||
vt 0.315359 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.012060 0.990274
|
||||
vt 0.704866 0.490273
|
||||
vt 0.318396 0.490273
|
||||
vt 0.318396 0.009727
|
||||
vt 0.352433 0.009727
|
||||
vt 0.352433 0.490273
|
||||
vt 0.705553 0.490273
|
||||
vt 0.705553 0.009727
|
||||
vt 0.670829 0.509727
|
||||
vt 0.364493 0.509726
|
||||
vt 0.667792 0.500000
|
||||
vt 0.318396 0.000000
|
||||
vt 0.348216 0.000000
|
||||
vt 0.704866 0.500000
|
||||
vt 0.807415 0.867517
|
||||
vt 0.791172 0.867516
|
||||
vt 0.791171 0.552855
|
||||
vt 0.791171 0.523384
|
||||
vt 0.336190 0.500000
|
||||
vt 0.352433 0.999999
|
||||
vt 0.336190 0.999999
|
||||
vt 0.670829 0.844133
|
||||
vt 0.670829 0.814662
|
||||
vt 0.687072 0.500000
|
||||
vt 0.348216 0.500000
|
||||
vt 0.364493 0.990273
|
||||
vt 0.670829 0.990273
|
||||
vt 0.667792 1.000000
|
||||
vt 0.704866 0.000000
|
||||
vt 0.000000 0.000001
|
||||
vt 0.668539 0.639838
|
||||
vt 0.640677 0.639838
|
||||
vt 0.640677 0.630641
|
||||
vt 0.672479 0.630641
|
||||
vt 0.439305 1.000000
|
||||
vt 0.439305 0.319104
|
||||
vt 0.527160 0.379125
|
||||
vt 0.527160 0.984613
|
||||
vt 0.087857 1.000000
|
||||
vt 0.087857 0.319104
|
||||
vt 0.175712 0.334491
|
||||
vt 0.175712 0.939979
|
||||
vt 0.351448 0.984613
|
||||
vt 0.351448 0.379125
|
||||
vt 0.000000 0.939979
|
||||
vt 0.000000 0.334491
|
||||
vt 0.351448 0.000000
|
||||
vt 0.351448 0.961094
|
||||
vt 0.263593 0.961094
|
||||
vt 0.263593 0.000000
|
||||
vt 0.175736 0.000000
|
||||
vt 0.175736 0.961094
|
||||
vn -0.123900 0.803100 -0.582900
|
||||
vn -0.123900 0.803000 0.582900
|
||||
vn 0.000000 -0.970000 0.243100
|
||||
vn 0.162500 -0.947900 0.274000
|
||||
vn 0.162500 -0.947900 -0.274000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn -0.320700 -0.831600 -0.453400
|
||||
vn 0.000000 -0.000000 1.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.123900 0.803100 -0.582900
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 0.320700 -0.831600 -0.453400
|
||||
vn -0.162500 -0.947900 -0.274000
|
||||
vn 0.000000 -0.970000 -0.243100
|
||||
vn -0.162500 -0.947900 0.274000
|
||||
vn 0.123900 0.803000 0.582900
|
||||
vn 0.000000 -0.887500 -0.460900
|
||||
vn 0.000000 -0.887500 0.460900
|
||||
vn 0.320700 -0.831600 0.453400
|
||||
vn -0.320700 -0.831600 0.453400
|
||||
vn 0.000000 0.984700 -0.174500
|
||||
vn -0.000000 0.984700 0.174500
|
||||
vn 0.000000 -0.970600 0.240900
|
||||
vn 0.163000 -0.948500 0.271500
|
||||
vn 0.163000 -0.948500 -0.271500
|
||||
vn -0.322100 -0.833000 -0.449800
|
||||
vn 0.322100 -0.833000 -0.449800
|
||||
vn -0.163000 -0.948500 -0.271500
|
||||
vn 0.000000 -0.970600 -0.240900
|
||||
vn -0.163000 -0.948500 0.271500
|
||||
vn 0.000000 -0.889300 -0.457400
|
||||
vn 0.000000 -0.889300 0.457400
|
||||
vn 0.322100 -0.833000 0.449800
|
||||
vn -0.322100 -0.833000 0.449800
|
||||
v 0.161995 -0.448008 0.216625
|
||||
v 0.149566 -0.485966 0.216625
|
||||
v 0.113157 -0.485966 0.216625
|
||||
v 0.142021 -0.448008 0.216625
|
||||
v 0.115781 -0.485966 0.208120
|
||||
v 0.142021 -0.448008 0.208120
|
||||
v 0.113157 -0.485966 -0.220555
|
||||
v -0.159347 -0.485966 -0.220555
|
||||
v 0.115781 -0.485966 -0.212050
|
||||
v 0.161995 -0.448008 0.208120
|
||||
v -0.148926 -0.485966 0.208120
|
||||
v -0.155653 -0.448008 0.208120
|
||||
v -0.155653 -0.448008 -0.212051
|
||||
v -0.148926 -0.485966 -0.212051
|
||||
v 0.152482 -0.485966 0.208120
|
||||
v 0.152482 -0.485966 -0.212050
|
||||
v 0.161995 -0.448008 -0.220555
|
||||
v 0.161995 -0.448008 -0.212050
|
||||
v 0.145193 -0.500002 -0.212050
|
||||
v 0.145193 -0.500002 0.208120
|
||||
v 0.115781 -0.500002 0.208120
|
||||
v 0.115781 -0.500002 -0.212050
|
||||
v 0.115781 -0.396013 -0.212050
|
||||
v 0.115781 -0.396013 0.208120
|
||||
v 0.145193 -0.396013 0.208120
|
||||
v 0.145193 -0.396013 -0.212050
|
||||
v 0.152482 -0.410049 -0.212050
|
||||
v 0.152482 -0.410049 0.208120
|
||||
v -0.148926 -0.410049 -0.212051
|
||||
v -0.148926 -0.410049 0.208120
|
||||
v 0.115781 -0.410049 -0.212050
|
||||
v -0.159347 -0.410049 -0.220555
|
||||
v 0.113157 -0.410049 -0.220555
|
||||
v 0.115781 -0.410049 0.208120
|
||||
v 0.113157 -0.410049 0.216625
|
||||
v 0.149566 -0.410049 0.216625
|
||||
v 0.115781 -0.396013 0.216625
|
||||
v 0.141549 -0.396013 0.216625
|
||||
v 0.149566 -0.410049 -0.220555
|
||||
v 0.141549 -0.396013 -0.220555
|
||||
v -0.159346 -0.396013 -0.220555
|
||||
v -0.159347 -0.396013 0.216624
|
||||
v 0.115781 -0.396013 -0.220555
|
||||
v -0.159347 -0.410049 0.216624
|
||||
v 0.115781 -0.500002 0.216625
|
||||
v 0.141549 -0.500002 0.216625
|
||||
v 0.142021 -0.448008 -0.212050
|
||||
v 0.149566 -0.485966 -0.220555
|
||||
v 0.141549 -0.500002 -0.220555
|
||||
v -0.159346 -0.500002 -0.220555
|
||||
v -0.159347 -0.500002 0.216624
|
||||
v 0.142021 -0.448008 -0.220555
|
||||
v 0.115781 -0.500002 -0.220555
|
||||
v -0.159347 -0.485966 0.216624
|
||||
vt 0.9220 0.3839
|
||||
vt 0.9220 0.3404
|
||||
vt 0.9318 0.3404
|
||||
vt 0.9318 0.3839
|
||||
vt 0.9318 0.4273
|
||||
vt 0.9220 0.4273
|
||||
vt 0.7681 0.4903
|
||||
vt 0.7230 0.4903
|
||||
vt 0.7230 0.0097
|
||||
vt 0.7681 0.0097
|
||||
vt 0.7681 0.5000
|
||||
vt 0.7224 0.5000
|
||||
vt 0.8096 0.4903
|
||||
vt 0.8091 0.5000
|
||||
vt 0.3524 0.0000
|
||||
vt 0.6708 0.0000
|
||||
vt 0.6708 0.0097
|
||||
vt 0.6708 0.4903
|
||||
vt 0.6708 0.5000
|
||||
vt 0.3524 0.5000
|
||||
vt 0.8096 0.0097
|
||||
vt 0.8091 0.0000
|
||||
vt 0.8236 0.0000
|
||||
vt 0.8243 0.0097
|
||||
vt 0.0121 0.5097
|
||||
vt 0.0000 0.5000
|
||||
vt 0.3154 0.5000
|
||||
vt 0.3184 0.5097
|
||||
vt 0.7006 0.0000
|
||||
vt 0.7049 0.0097
|
||||
vt 0.7310 0.8675
|
||||
vt 0.7310 0.8447
|
||||
vt 0.7749 0.8117
|
||||
vt 0.7749 0.8533
|
||||
vt 0.6871 0.8533
|
||||
vt 0.6871 0.8117
|
||||
vt 0.7749 0.5000
|
||||
vt 0.7912 0.5000
|
||||
vt 0.7912 0.8147
|
||||
vt 0.7912 0.8441
|
||||
vt 0.8513 0.5228
|
||||
vt 0.8513 0.5000
|
||||
vt 0.8953 0.5142
|
||||
vt 0.8953 0.5559
|
||||
vt 0.9220 0.3404
|
||||
vt 0.9220 0.3839
|
||||
vt 0.9121 0.3839
|
||||
vt 0.9121 0.3404
|
||||
vt 0.3346 0.5000
|
||||
vt 0.3346 1.0000
|
||||
vt 0.3184 1.0000
|
||||
vt 0.3184 0.5000
|
||||
vt 0.8953 0.8675
|
||||
vt 0.9115 0.5234
|
||||
vt 0.9115 0.5529
|
||||
vt 0.9115 0.8675
|
||||
vt 0.8243 0.4903
|
||||
vt 0.8236 0.5000
|
||||
vt 0.8074 0.5559
|
||||
vt 0.8074 0.5142
|
||||
vt 0.7681 0.0000
|
||||
vt 0.7224 0.0000
|
||||
vt 0.9220 0.4273
|
||||
vt 0.9121 0.4273
|
||||
vt 0.3184 0.9903
|
||||
vt 0.3154 1.0000
|
||||
vt 0.0000 1.0000
|
||||
vt 0.0121 0.9903
|
||||
vt 0.7049 0.4903
|
||||
vt 0.3184 0.4903
|
||||
vt 0.3184 0.0097
|
||||
vt 0.3524 0.0097
|
||||
vt 0.3524 0.4903
|
||||
vt 0.7056 0.4903
|
||||
vt 0.7056 0.0097
|
||||
vt 0.6708 0.5097
|
||||
vt 0.3645 0.5097
|
||||
vt 0.3524 0.5000
|
||||
vt 0.6678 0.5000
|
||||
vt 0.3184 0.0000
|
||||
vt 0.3482 0.0000
|
||||
vt 0.7049 0.5000
|
||||
vt 0.8074 0.8675
|
||||
vt 0.7912 0.8675
|
||||
vt 0.7912 0.5529
|
||||
vt 0.7912 0.5234
|
||||
vt 0.3362 0.5000
|
||||
vt 0.3524 1.0000
|
||||
vt 0.3362 1.0000
|
||||
vt 0.6708 0.8441
|
||||
vt 0.6708 0.8147
|
||||
vt 0.6708 0.5000
|
||||
vt 0.6871 0.5000
|
||||
vt 0.3482 0.5000
|
||||
vt 0.3184 0.5000
|
||||
vt 0.3645 0.9903
|
||||
vt 0.6708 0.9903
|
||||
vt 0.6678 1.0000
|
||||
vt 0.7049 0.0000
|
||||
vt 0.0000 0.5000
|
||||
vt 0.0000 0.0000
|
||||
vt 0.6685 0.6398
|
||||
vt 0.6407 0.6398
|
||||
vt 0.6407 0.6306
|
||||
vt 0.6725 0.6306
|
||||
vt 0.4393 1.0000
|
||||
vt 0.4393 0.3191
|
||||
vt 0.5272 0.3791
|
||||
vt 0.5272 0.9846
|
||||
vt 0.0879 1.0000
|
||||
vt 0.0879 0.3191
|
||||
vt 0.1757 0.3345
|
||||
vt 0.1757 0.9400
|
||||
vt 0.3514 0.9846
|
||||
vt 0.3514 0.3791
|
||||
vt 0.0000 0.9400
|
||||
vt 0.0000 0.3345
|
||||
vt 0.3514 0.0000
|
||||
vt 0.3514 0.9611
|
||||
vt 0.2636 0.9611
|
||||
vt 0.2636 0.0000
|
||||
vt 0.1757 0.0000
|
||||
vt 0.1757 0.9611
|
||||
vn -0.8031 -0.5829 0.1239
|
||||
vn -0.8030 0.5829 0.1239
|
||||
vn 0.9700 0.2431 -0.0000
|
||||
vn 0.9479 0.2740 -0.1625
|
||||
vn 0.9479 -0.2740 -0.1625
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn 0.8316 -0.4534 0.3207
|
||||
vn 0.0000 1.0000 -0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -0.8031 -0.5829 -0.1239
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn 0.8316 -0.4534 -0.3207
|
||||
vn 0.9479 -0.2740 0.1625
|
||||
vn 0.9700 -0.2431 -0.0000
|
||||
vn 0.9479 0.2740 0.1625
|
||||
vn -0.8030 0.5829 -0.1239
|
||||
vn 0.8875 -0.4609 -0.0000
|
||||
vn 0.8875 0.4609 -0.0000
|
||||
vn 0.8316 0.4534 -0.3207
|
||||
vn 0.8316 0.4534 0.3207
|
||||
vn -0.9847 -0.1745 0.0000
|
||||
vn -0.9847 0.1745 0.0000
|
||||
g Cube.002_Cube.001_Cube.002_Cube.001_cover
|
||||
s off
|
||||
f 47/1/1 31/2/1 33/3/1 52/4/1
|
||||
@ -253,58 +216,37 @@ f 1/31/9 4/32/9 3/33/9 2/34/9
|
||||
f 1/31/9 36/35/9 35/36/9 4/32/9
|
||||
f 2/34/9 3/33/9 54/37/9 51/38/9 45/39/9 46/40/9
|
||||
f 52/41/10 17/42/10 48/43/10 7/44/10
|
||||
f 34/2/11 6/1/11 4/45/11 35/46/11
|
||||
f 50/47/12 51/48/12 54/49/12 8/50/12
|
||||
f 8/51/10 7/44/10 48/43/10 49/52/10 53/53/10 50/54/10
|
||||
f 19/55/13 49/56/13 48/14/13 16/13/13
|
||||
f 52/41/10 33/57/10 39/58/10 17/42/10
|
||||
f 10/10/14 1/59/14 2/22/14 15/21/14
|
||||
f 34/45/11 6/46/11 4/47/11 35/48/11
|
||||
f 50/49/12 51/50/12 54/51/12 8/52/12
|
||||
f 8/53/10 7/44/10 48/43/10 49/54/10 53/55/10 50/56/10
|
||||
f 19/57/13 49/58/13 48/14/13 16/13/13
|
||||
f 52/41/10 33/59/10 39/60/10 17/42/10
|
||||
f 10/10/14 1/61/14 2/22/14 15/21/14
|
||||
f 18/7/15 10/10/15 15/21/15 16/13/15
|
||||
f 10/10/16 28/9/16 36/60/16 1/59/16
|
||||
f 5/6/17 3/61/17 4/45/17 6/1/17
|
||||
f 9/62/8 7/63/8 8/64/8 14/65/8
|
||||
f 16/13/18 15/21/18 20/24/18 19/55/18
|
||||
f 22/17/6 19/30/6 20/66/6 21/18/6
|
||||
f 23/67/8 24/68/8 25/69/8 26/70/8
|
||||
f 27/8/19 26/71/19 25/72/19 28/9/19
|
||||
f 31/73/6 29/74/6 32/20/6 33/75/6
|
||||
f 25/69/8 24/68/8 37/76/8 38/77/8
|
||||
f 26/71/20 27/8/20 39/12/20 40/78/20
|
||||
f 32/79/10 41/80/10 43/81/10 40/82/10 39/58/10 33/57/10
|
||||
f 41/83/12 32/20/12 44/84/12 42/85/12
|
||||
f 36/35/9 38/86/9 37/87/9 42/19/9 44/88/9 35/36/9
|
||||
f 23/67/8 26/70/8 40/89/8 43/50/8
|
||||
f 30/90/6 34/91/6 35/92/6 44/84/6
|
||||
f 28/9/21 25/72/21 38/93/21 36/60/21
|
||||
f 29/74/6 30/90/6 44/84/6 32/20/6
|
||||
f 41/26/8 42/94/8 37/76/8 24/68/8 23/67/8 43/50/8
|
||||
f 54/26/8 11/25/8 14/65/8 8/64/8
|
||||
f 46/95/6 45/96/6 21/97/6 20/98/6
|
||||
f 10/10/16 28/9/16 36/62/16 1/61/16
|
||||
f 5/63/17 3/64/17 4/47/17 6/46/17
|
||||
f 9/65/8 7/66/8 8/67/8 14/68/8
|
||||
f 16/13/18 15/21/18 20/24/18 19/57/18
|
||||
f 22/17/6 19/30/6 20/69/6 21/18/6
|
||||
f 23/70/8 24/71/8 25/72/8 26/73/8
|
||||
f 27/8/19 26/74/19 25/75/19 28/9/19
|
||||
f 31/76/6 29/77/6 32/78/6 33/79/6
|
||||
f 25/72/8 24/71/8 37/80/8 38/81/8
|
||||
f 26/74/20 27/8/20 39/12/20 40/82/20
|
||||
f 32/83/10 41/84/10 43/85/10 40/86/10 39/60/10 33/59/10
|
||||
f 41/87/12 32/78/12 44/88/12 42/89/12
|
||||
f 36/35/9 38/90/9 37/91/9 42/92/9 44/93/9 35/36/9
|
||||
f 23/70/8 26/73/8 40/94/8 43/95/8
|
||||
f 30/96/6 34/97/6 35/98/6 44/88/6
|
||||
f 28/9/21 25/75/21 38/99/21 36/62/21
|
||||
f 29/77/6 30/96/6 44/88/6 32/78/6
|
||||
f 41/100/8 42/101/8 37/80/8 24/71/8 23/70/8 43/95/8
|
||||
f 54/26/8 11/25/8 14/68/8 8/67/8
|
||||
f 46/102/6 45/103/6 21/104/6 20/105/6
|
||||
g Cube.002_Cube.001_Cube.002_Cube.001_edges
|
||||
f 13/99/10 47/100/10 9/101/10 14/102/10
|
||||
f 6/103/9 12/104/9 11/105/9 5/106/9
|
||||
f 13/99/10 29/107/10 31/108/10 47/100/10
|
||||
f 6/103/9 34/109/9 30/110/9 12/104/9
|
||||
f 14/111/22 11/112/22 12/113/22 13/114/22
|
||||
f 29/115/23 13/114/23 12/113/23 30/116/23
|
||||
g Cube.002_Cube.001_Cube.002_Cube.001_trim
|
||||
f 61/7/24 70/8/24 71/9/24 57/10/24
|
||||
f 70/8/25 61/7/25 60/11/25 75/12/25
|
||||
f 59/13/26 82/14/26 60/11/26 61/7/26
|
||||
f 84/15/6 86/16/6 65/17/6 64/18/6 80/19/6 85/20/6
|
||||
f 58/21/27 56/22/27 81/23/27 63/24/27
|
||||
f 65/17/6 86/16/6 83/29/6 62/30/6
|
||||
f 62/55/28 83/56/28 82/14/28 59/13/28
|
||||
f 57/10/29 55/59/29 56/22/29 58/21/29
|
||||
f 61/7/30 57/10/30 58/21/30 59/13/30
|
||||
f 57/10/31 71/9/31 72/60/31 55/59/31
|
||||
f 59/13/32 58/21/32 63/24/32 62/55/32
|
||||
f 65/17/6 62/30/6 63/66/6 64/18/6
|
||||
f 66/67/8 67/68/8 68/69/8 69/70/8
|
||||
f 70/8/33 69/71/33 68/72/33 71/9/33
|
||||
f 68/69/8 67/68/8 73/76/8 74/77/8
|
||||
f 69/71/34 70/8/34 75/12/34 76/78/34
|
||||
f 66/67/8 69/70/8 76/89/8 79/50/8
|
||||
f 71/9/35 68/72/35 74/93/35 72/60/35
|
||||
f 77/26/8 78/94/8 73/76/8 67/68/8 66/67/8 79/50/8
|
||||
f 81/95/6 80/96/6 64/97/6 63/98/6
|
||||
f 13/106/10 47/107/10 9/108/10 14/109/10
|
||||
f 6/110/9 12/111/9 11/112/9 5/113/9
|
||||
f 13/106/10 29/114/10 31/115/10 47/107/10
|
||||
f 6/110/9 34/116/9 30/117/9 12/111/9
|
||||
f 14/118/22 11/119/22 12/120/22 13/121/22
|
||||
f 29/122/23 13/121/23 12/120/23 30/123/23
|
||||
|
@ -1,327 +1,335 @@
|
||||
# Blender v2.72 (sub 0) OBJ File: 'book-open.blend'
|
||||
# Blender v2.78 (sub 0) OBJ File: 'book-open.blend'
|
||||
# www.blender.org
|
||||
o Cube.002_Cube.001
|
||||
v -0.216625 0.012428 -0.485966
|
||||
v 0.220555 -0.000000 -0.486750
|
||||
v 0.220555 0.321341 -0.485966
|
||||
v -0.208120 -0.000001 -0.462863
|
||||
v -0.208120 0.310920 -0.485966
|
||||
v -0.208120 0.306022 -0.464409
|
||||
v 0.212051 0.306022 -0.464409
|
||||
v 0.212051 0.310921 -0.485966
|
||||
v 0.212050 -0.000000 -0.462862
|
||||
v 0.212050 0.016802 -0.500002
|
||||
v -0.208120 0.016801 -0.500002
|
||||
v -0.208120 0.046213 -0.500002
|
||||
v 0.212050 0.046214 -0.500002
|
||||
v -0.216625 0.046213 -0.500002
|
||||
v -0.216625 0.020445 -0.500002
|
||||
v 0.220555 0.012429 -0.485966
|
||||
v 0.220555 0.020446 -0.500002
|
||||
v 0.220555 0.321340 -0.500002
|
||||
v -0.216624 0.321341 -0.500002
|
||||
v 0.220555 0.046214 -0.500002
|
||||
v -0.216624 0.321341 -0.485966
|
||||
v -0.208120 0.238235 -0.450057
|
||||
v -0.216625 -0.000001 -0.486750
|
||||
v 0.212051 0.238236 -0.450057
|
||||
v -0.208120 -0.306023 -0.464409
|
||||
v 0.212051 -0.306023 -0.464409
|
||||
v -0.208120 -0.238237 -0.450057
|
||||
v 0.212051 -0.238237 -0.450057
|
||||
v 0.212050 -0.046214 -0.500003
|
||||
v -0.208120 -0.046215 -0.500003
|
||||
v -0.208120 -0.016803 -0.500003
|
||||
v 0.212050 -0.016803 -0.500003
|
||||
v -0.216625 -0.000001 -0.481442
|
||||
v 0.220555 -0.000000 -0.481442
|
||||
v 0.212051 -0.310922 -0.485967
|
||||
v -0.208120 -0.310922 -0.485967
|
||||
v 0.220555 -0.321342 -0.485967
|
||||
v -0.216625 -0.012430 -0.485967
|
||||
v -0.216625 -0.046215 -0.500003
|
||||
v -0.216625 -0.020447 -0.500003
|
||||
v 0.220555 -0.012429 -0.485967
|
||||
v 0.220555 -0.020446 -0.500003
|
||||
v 0.220555 -0.321341 -0.500003
|
||||
v -0.216624 -0.321343 -0.500003
|
||||
v 0.220555 -0.046214 -0.500003
|
||||
v -0.216624 -0.321343 -0.485967
|
||||
v -0.208120 -0.000001 -0.486750
|
||||
v 0.212050 -0.000000 -0.486750
|
||||
v 0.212051 -0.086920 -0.442244
|
||||
v -0.208120 -0.086920 -0.442244
|
||||
v 0.212051 0.086847 -0.442244
|
||||
v -0.208120 0.086847 -0.442244
|
||||
v 0.212050 0.043405 -0.447755
|
||||
v -0.208120 0.043405 -0.447755
|
||||
v 0.212050 -0.043478 -0.447755
|
||||
v -0.208120 -0.043478 -0.447755
|
||||
v -0.216625 -0.010224 -0.490836
|
||||
v -0.216625 0.006214 -0.482857
|
||||
v 0.220555 0.006214 -0.482857
|
||||
v -0.208120 0.008400 -0.490836
|
||||
v 0.212050 0.008401 -0.490836
|
||||
v 0.220555 0.010223 -0.490836
|
||||
v -0.216625 0.010222 -0.490836
|
||||
v 0.220555 -0.010223 -0.490836
|
||||
v 0.212050 -0.008401 -0.490836
|
||||
v -0.208120 -0.008402 -0.490836
|
||||
v 0.220555 -0.006215 -0.482858
|
||||
v -0.216625 -0.006215 -0.482858
|
||||
v 0.212050 0.012429 -0.485966
|
||||
v 0.212050 -0.000000 -0.481442
|
||||
v 0.212050 -0.012429 -0.485967
|
||||
v 0.212050 0.006214 -0.482857
|
||||
v 0.212050 -0.006215 -0.482858
|
||||
v -0.208120 0.012428 -0.485966
|
||||
v -0.208120 -0.000001 -0.481442
|
||||
v -0.208120 -0.012430 -0.485967
|
||||
v -0.208120 0.006214 -0.482857
|
||||
v -0.208120 -0.006215 -0.482858
|
||||
vt 0.965735 0.839196
|
||||
vt 0.711783 0.839196
|
||||
vt 0.711783 0.832541
|
||||
vt 0.711783 0.503765
|
||||
vt 0.711783 0.497110
|
||||
vt 0.965736 0.497110
|
||||
vt 0.395683 0.494736
|
||||
vt 0.395683 0.261171
|
||||
vt 0.403533 0.261171
|
||||
vt 0.403532 0.502890
|
||||
vt 0.687998 0.839196
|
||||
vt 0.684635 0.832541
|
||||
vt 0.987044 0.738829
|
||||
vt 0.987044 0.497110
|
||||
vt 1.000000 0.497110
|
||||
vt 0.999999 0.712393
|
||||
vt 0.999999 0.732556
|
||||
vt 0.992051 0.000000
|
||||
vt 0.992051 0.342086
|
||||
vt 0.979145 0.342086
|
||||
vt 0.979145 0.000000
|
||||
vt 0.969912 1.000000
|
||||
vt 0.969911 0.758280
|
||||
vt 0.982867 0.764553
|
||||
vt 0.982867 0.784716
|
||||
vt 0.982868 0.999999
|
||||
vt 0.403533 0.241720
|
||||
vt 0.395683 0.241720
|
||||
vt 0.395683 0.008154
|
||||
vt 0.403532 0.000000
|
||||
vt 0.684634 0.503765
|
||||
vt 0.007850 0.008154
|
||||
vt 0.000000 0.000000
|
||||
vt 0.657486 0.832541
|
||||
vt 0.657486 0.503765
|
||||
vt 0.657486 0.497110
|
||||
vt 0.681271 0.497110
|
||||
vt 0.969911 0.497110
|
||||
vt 0.982867 0.497110
|
||||
vt 0.982868 0.712393
|
||||
vt 0.982868 0.732556
|
||||
vt 0.969912 0.738829
|
||||
vt 0.966239 0.000000
|
||||
vt 0.966239 0.342086
|
||||
vt 0.987044 0.758280
|
||||
vt 1.000000 0.764553
|
||||
vt 1.000000 0.784716
|
||||
vt 0.999999 1.000000
|
||||
vt 0.987043 1.000000
|
||||
vt 0.681271 0.839196
|
||||
vt 0.657486 0.839196
|
||||
vt 0.000000 0.261171
|
||||
vt 0.007850 0.261171
|
||||
vt 0.007850 0.494736
|
||||
vt 0.000000 0.502891
|
||||
vt 0.403534 0.839196
|
||||
vt 0.403533 0.497110
|
||||
vt 0.687998 0.497110
|
||||
vt 0.974407 0.740555
|
||||
vt 0.970635 0.748555
|
||||
vt 0.967042 0.743692
|
||||
vt 0.965736 0.748555
|
||||
vt 0.967042 0.753417
|
||||
vt 0.974406 0.756554
|
||||
vt 0.991539 0.740555
|
||||
vt 0.987768 0.748555
|
||||
vt 0.984174 0.743692
|
||||
vt 0.982868 0.748555
|
||||
vt 0.984174 0.753417
|
||||
vt 0.991539 0.756554
|
||||
vt 0.044849 0.844977
|
||||
vt 0.035593 0.844977
|
||||
vt 0.035446 0.838322
|
||||
vt 0.044554 0.838322
|
||||
vt 0.956803 0.342087
|
||||
vt 0.956803 0.335432
|
||||
vt 0.964557 0.335432
|
||||
vt 0.947366 0.342087
|
||||
vt 0.949048 0.335432
|
||||
vt 0.045143 0.838322
|
||||
vt 0.054251 0.838322
|
||||
vt 0.054104 0.844977
|
||||
vt 0.044554 0.509546
|
||||
vt 0.035446 0.509546
|
||||
vt 0.035593 0.502890
|
||||
vt 0.044849 0.502891
|
||||
vt 0.964557 0.006655
|
||||
vt 0.956803 0.006655
|
||||
vt 0.956803 0.000000
|
||||
vt 0.949048 0.006655
|
||||
vt 0.947366 0.000000
|
||||
vt 0.054104 0.502891
|
||||
vt 0.054251 0.509546
|
||||
vt 0.045143 0.509546
|
||||
vt 0.000000 0.256308
|
||||
vt 0.000000 0.251445
|
||||
vt 0.007850 0.251445
|
||||
vt 0.007850 0.256308
|
||||
vt 0.000000 0.246582
|
||||
vt 0.000000 0.241720
|
||||
vt 0.007850 0.241720
|
||||
vt 0.007850 0.246582
|
||||
vt 0.403533 0.251445
|
||||
vt 0.403533 0.256308
|
||||
vt 0.395683 0.256308
|
||||
vt 0.395683 0.251445
|
||||
vt 0.403533 0.246582
|
||||
vt 0.395683 0.246582
|
||||
vt 0.779948 0.000000
|
||||
vt 0.779948 1.000000
|
||||
vt 0.724984 1.000000
|
||||
vt 0.724983 0.000000
|
||||
vt 0.717416 1.000000
|
||||
vt 0.662450 1.000000
|
||||
vt 0.662449 0.000000
|
||||
vt 0.717416 0.000000
|
||||
vt 0.184400 1.000000
|
||||
vt 0.126957 0.970419
|
||||
vt 0.221962 0.896695
|
||||
vt 0.485666 0.793134
|
||||
vt 0.471964 0.896524
|
||||
vt 0.376957 0.970419
|
||||
vt 0.216239 0.433002
|
||||
vt 0.126957 0.260013
|
||||
vt 0.059402 0.000000
|
||||
vt 0.001957 0.029581
|
||||
vt 0.009688 0.014790
|
||||
vt 0.235664 0.793305
|
||||
vt 0.013207 0.000000
|
||||
vt 0.091241 0.566998
|
||||
vt 0.055557 0.728328
|
||||
vt 0.001957 0.739987
|
||||
vt 0.110666 0.206866
|
||||
vt 0.134686 0.985210
|
||||
vt 0.096964 0.103476
|
||||
vt 0.180555 0.271672
|
||||
vt 0.138205 1.000000
|
||||
vt 0.341239 0.566998
|
||||
vt 0.305555 0.728328
|
||||
vt 0.251957 0.739987
|
||||
vt 0.251957 0.029581
|
||||
vt 0.360664 0.206695
|
||||
vt 0.388207 1.000000
|
||||
vt 0.384688 0.985210
|
||||
vt 0.434402 1.000000
|
||||
vt 0.346962 0.103305
|
||||
vt 0.466241 0.433002
|
||||
vt 0.376957 0.260013
|
||||
vt 0.309400 0.000000
|
||||
vt 0.259687 0.014790
|
||||
vt 0.263205 0.000000
|
||||
vt 0.430558 0.271672
|
||||
vt 0.636817 0.156314
|
||||
vt 0.875000 0.156314
|
||||
vt 0.875000 0.984312
|
||||
vt 0.636817 0.984312
|
||||
vt 0.000000 0.156314
|
||||
vt 0.125000 0.156314
|
||||
vt 0.125000 0.984312
|
||||
vt 0.000000 0.984313
|
||||
vt 1.000000 0.156314
|
||||
vt 1.000000 0.984313
|
||||
vt 0.363296 0.156314
|
||||
vt 0.431676 0.156314
|
||||
vt 0.431676 0.984311
|
||||
vt 0.363296 0.984312
|
||||
vt 0.500000 0.156314
|
||||
vt 0.568437 0.156314
|
||||
vt 0.568437 0.984311
|
||||
vt 0.500000 0.984311
|
||||
vn 0.577300 0.577300 -0.577300
|
||||
vn 0.707100 0.000000 -0.707100
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn -0.707100 0.000000 -0.707100
|
||||
vn -0.577300 0.577300 -0.577300
|
||||
vn -0.246900 -0.280700 0.927500
|
||||
vn -0.658800 -0.172900 0.732100
|
||||
vn -0.762700 -0.148700 0.629400
|
||||
vn -0.577300 -0.577300 0.577300
|
||||
vn 0.668800 -0.216600 -0.711100
|
||||
vn 0.071700 -0.428700 -0.900500
|
||||
vn -0.762700 0.148700 0.629400
|
||||
vn -0.577300 0.577300 0.577300
|
||||
vn -0.668800 -0.216600 -0.711100
|
||||
vn 0.577300 0.577300 0.577300
|
||||
vn 0.762700 0.148700 0.629400
|
||||
vn -0.658800 0.172900 0.732100
|
||||
vn -0.246900 0.280700 0.927500
|
||||
vn -0.071700 -0.428700 -0.900500
|
||||
vn 0.246900 0.280700 0.927500
|
||||
vn -0.071700 0.428800 -0.900500
|
||||
vn 0.071700 0.428800 -0.900500
|
||||
vn -0.668800 0.216600 -0.711100
|
||||
vn 0.577300 -0.577300 0.577300
|
||||
vn 0.577300 -0.577300 -0.577300
|
||||
vn 0.668800 0.216600 -0.711100
|
||||
vn 0.762700 -0.148700 0.629400
|
||||
vn -0.577300 -0.577300 -0.577300
|
||||
vn 0.658800 -0.172900 0.732100
|
||||
vn 0.246900 -0.280700 0.927500
|
||||
vn 0.794100 0.350300 -0.496700
|
||||
vn 0.814600 0.000000 -0.580000
|
||||
vn 0.681100 -0.246900 0.689300
|
||||
vn 0.660400 0.000000 0.750900
|
||||
vn 0.681100 0.246800 0.689300
|
||||
vn 0.794100 -0.350300 -0.496700
|
||||
vn -0.794100 -0.350300 -0.496700
|
||||
vn -0.814600 0.000000 -0.580000
|
||||
vn -0.681100 0.246800 0.689300
|
||||
vn -0.660400 0.000000 0.750900
|
||||
vn -0.681100 -0.246900 0.689300
|
||||
vn -0.794100 0.350300 -0.496700
|
||||
vn -0.062900 0.569600 -0.819500
|
||||
vn -0.023700 0.000000 -0.999700
|
||||
vn -0.062900 -0.569600 -0.819500
|
||||
vn 0.062900 0.569600 -0.819500
|
||||
vn 0.023700 0.000000 -0.999700
|
||||
vn 0.062900 -0.569600 -0.819500
|
||||
vn 0.760600 0.000000 0.649100
|
||||
vn 0.735000 -0.228600 0.638300
|
||||
vn 0.658800 0.172900 0.732100
|
||||
vn 0.735000 0.228600 0.638300
|
||||
vn -0.735000 -0.228600 0.638300
|
||||
vn -0.760600 0.000000 0.649100
|
||||
vn -0.735000 0.228600 0.638300
|
||||
vn -0.603500 0.559600 0.567900
|
||||
vn 0.603500 0.559600 0.567900
|
||||
vn 0.603500 -0.559600 0.567900
|
||||
vn -0.603500 -0.559600 0.567900
|
||||
vn 0.789000 -0.000200 0.614300
|
||||
vn 0.684400 -0.166600 0.709800
|
||||
vn -0.687600 0.027100 0.725500
|
||||
vn -0.684400 0.166400 0.709800
|
||||
vn 0.689800 0.093900 0.717800
|
||||
vn 0.687600 -0.027100 0.725500
|
||||
vn 0.689800 -0.093900 0.717800
|
||||
vn 0.687600 0.027100 0.725500
|
||||
vn 0.684400 0.166400 0.709800
|
||||
vn -0.689800 0.093900 0.717800
|
||||
vn -0.687600 -0.027100 0.725500
|
||||
vn -0.789000 -0.000200 0.614300
|
||||
vn -0.684400 -0.166600 0.709800
|
||||
vn -0.689800 -0.093900 0.717800
|
||||
v -0.012428 -0.485966 0.216625
|
||||
v 0.000000 -0.486750 -0.220555
|
||||
v -0.321341 -0.485966 -0.220555
|
||||
v 0.000001 -0.462863 0.208120
|
||||
v -0.310920 -0.485966 0.208120
|
||||
v -0.306022 -0.464409 0.208120
|
||||
v -0.306022 -0.464409 -0.212051
|
||||
v -0.310921 -0.485966 -0.212051
|
||||
v 0.000000 -0.462862 -0.212050
|
||||
v -0.016802 -0.500002 -0.212050
|
||||
v -0.016801 -0.500002 0.208120
|
||||
v -0.046213 -0.500002 0.208120
|
||||
v -0.046214 -0.500002 -0.212050
|
||||
v -0.046213 -0.500002 0.216625
|
||||
v -0.020445 -0.500002 0.216625
|
||||
v -0.012429 -0.485966 -0.220555
|
||||
v -0.020446 -0.500002 -0.220555
|
||||
v -0.321340 -0.500002 -0.220555
|
||||
v -0.321341 -0.500002 0.216624
|
||||
v -0.046214 -0.500002 -0.220555
|
||||
v -0.321341 -0.485966 0.216624
|
||||
v -0.238235 -0.450057 0.208120
|
||||
v 0.000001 -0.486750 0.216625
|
||||
v -0.238236 -0.450057 -0.212051
|
||||
v 0.306023 -0.464409 0.208120
|
||||
v 0.306023 -0.464409 -0.212051
|
||||
v 0.238237 -0.450057 0.208120
|
||||
v 0.238236 -0.450057 -0.212051
|
||||
v 0.046214 -0.500003 -0.212050
|
||||
v 0.046215 -0.500003 0.208120
|
||||
v 0.016803 -0.500003 0.208120
|
||||
v 0.016802 -0.500003 -0.212050
|
||||
v 0.000001 -0.481442 0.216625
|
||||
v 0.000000 -0.481442 -0.220555
|
||||
v 0.310922 -0.485967 -0.212051
|
||||
v 0.310922 -0.485967 0.208120
|
||||
v 0.321342 -0.485967 -0.220555
|
||||
v 0.012430 -0.485967 0.216625
|
||||
v 0.046215 -0.500003 0.216625
|
||||
v 0.020447 -0.500003 0.216625
|
||||
v 0.012429 -0.485967 -0.220555
|
||||
v 0.020446 -0.500003 -0.220555
|
||||
v 0.321341 -0.500003 -0.220555
|
||||
v 0.321343 -0.500003 0.216624
|
||||
v 0.046214 -0.500003 -0.220555
|
||||
v 0.321343 -0.485967 0.216624
|
||||
v 0.000001 -0.486750 0.208120
|
||||
v 0.000000 -0.486750 -0.212050
|
||||
v 0.086920 -0.442244 -0.212051
|
||||
v 0.086920 -0.442244 0.208120
|
||||
v -0.086847 -0.442244 -0.212050
|
||||
v -0.086847 -0.442244 0.208120
|
||||
v -0.043405 -0.447755 -0.212050
|
||||
v -0.043405 -0.447755 0.208120
|
||||
v 0.043478 -0.447755 -0.212050
|
||||
v 0.043478 -0.447755 0.208120
|
||||
v 0.010224 -0.490836 0.216625
|
||||
v -0.006214 -0.482857 0.216625
|
||||
v -0.006214 -0.482857 -0.220555
|
||||
v -0.008400 -0.490836 0.208120
|
||||
v -0.008401 -0.490836 -0.212050
|
||||
v -0.010223 -0.490836 -0.220555
|
||||
v -0.010222 -0.490836 0.216625
|
||||
v 0.010223 -0.490836 -0.220555
|
||||
v 0.008401 -0.490836 -0.212050
|
||||
v 0.008402 -0.490836 0.208120
|
||||
v 0.006215 -0.482858 -0.220555
|
||||
v 0.006215 -0.482858 0.216625
|
||||
v -0.012429 -0.485966 -0.212050
|
||||
v 0.000000 -0.481442 -0.212050
|
||||
v 0.012429 -0.485967 -0.212050
|
||||
v -0.006214 -0.482857 -0.212050
|
||||
v 0.006215 -0.482858 -0.212050
|
||||
v -0.012428 -0.485966 0.208120
|
||||
v 0.000001 -0.481442 0.208120
|
||||
v 0.012430 -0.485967 0.208120
|
||||
v -0.006214 -0.482857 0.208120
|
||||
v 0.006215 -0.482858 0.208120
|
||||
vt 0.9657 0.8392
|
||||
vt 0.7118 0.8392
|
||||
vt 0.7118 0.8325
|
||||
vt 0.7118 0.5038
|
||||
vt 0.7118 0.4971
|
||||
vt 0.9657 0.4971
|
||||
vt 0.3957 0.4947
|
||||
vt 0.3957 0.2612
|
||||
vt 0.4035 0.2612
|
||||
vt 0.4035 0.5029
|
||||
vt 0.6880 0.8392
|
||||
vt 0.6846 0.8325
|
||||
vt 0.9870 0.7388
|
||||
vt 0.9870 0.4971
|
||||
vt 1.0000 0.4971
|
||||
vt 1.0000 0.7124
|
||||
vt 1.0000 0.7326
|
||||
vt 0.9921 0.0000
|
||||
vt 0.9921 0.3421
|
||||
vt 0.9791 0.3421
|
||||
vt 0.9791 0.0000
|
||||
vt 0.9699 1.0000
|
||||
vt 0.9699 0.7583
|
||||
vt 0.9829 0.7646
|
||||
vt 0.9829 0.7847
|
||||
vt 0.9829 1.0000
|
||||
vt 0.4035 0.2417
|
||||
vt 0.3957 0.2417
|
||||
vt 0.3957 0.0082
|
||||
vt 0.4035 0.0000
|
||||
vt 0.6846 0.5038
|
||||
vt 0.0078 0.0082
|
||||
vt 0.0000 0.0000
|
||||
vt 0.6575 0.8325
|
||||
vt 0.6575 0.5038
|
||||
vt 0.6846 0.5038
|
||||
vt 0.6846 0.8325
|
||||
vt 0.6575 0.4971
|
||||
vt 0.6813 0.4971
|
||||
vt 0.9699 0.4971
|
||||
vt 0.9829 0.4971
|
||||
vt 0.9829 0.7124
|
||||
vt 0.9829 0.7326
|
||||
vt 0.9699 0.7388
|
||||
vt 0.9662 0.0000
|
||||
vt 0.9791 0.0000
|
||||
vt 0.9791 0.3421
|
||||
vt 0.9662 0.3421
|
||||
vt 0.9870 0.7583
|
||||
vt 1.0000 0.7646
|
||||
vt 1.0000 0.7847
|
||||
vt 1.0000 1.0000
|
||||
vt 0.9870 1.0000
|
||||
vt 0.6813 0.8392
|
||||
vt 0.6575 0.8392
|
||||
vt 0.0000 0.2612
|
||||
vt 0.0079 0.2612
|
||||
vt 0.0078 0.4947
|
||||
vt 0.0000 0.5029
|
||||
vt 0.4035 0.8392
|
||||
vt 0.4035 0.4971
|
||||
vt 0.6880 0.4971
|
||||
vt 0.9744 0.7406
|
||||
vt 0.9706 0.7486
|
||||
vt 0.9670 0.7437
|
||||
vt 0.9657 0.7486
|
||||
vt 0.9670 0.7534
|
||||
vt 0.9744 0.7566
|
||||
vt 0.9915 0.7406
|
||||
vt 0.9878 0.7486
|
||||
vt 0.9842 0.7437
|
||||
vt 0.9829 0.7486
|
||||
vt 0.9842 0.7534
|
||||
vt 0.9915 0.7566
|
||||
vt 0.0448 0.8450
|
||||
vt 0.0356 0.8450
|
||||
vt 0.0354 0.8383
|
||||
vt 0.0446 0.8383
|
||||
vt 0.9662 0.3421
|
||||
vt 0.9568 0.3421
|
||||
vt 0.9568 0.3354
|
||||
vt 0.9646 0.3354
|
||||
vt 0.9474 0.3421
|
||||
vt 0.9490 0.3354
|
||||
vt 0.0448 0.8450
|
||||
vt 0.0451 0.8383
|
||||
vt 0.0543 0.8383
|
||||
vt 0.0541 0.8450
|
||||
vt 0.0446 0.5095
|
||||
vt 0.0354 0.5095
|
||||
vt 0.0356 0.5029
|
||||
vt 0.0448 0.5029
|
||||
vt 0.9662 0.0000
|
||||
vt 0.9646 0.0067
|
||||
vt 0.9568 0.0067
|
||||
vt 0.9568 0.0000
|
||||
vt 0.9490 0.0067
|
||||
vt 0.9474 0.0000
|
||||
vt 0.0448 0.5029
|
||||
vt 0.0541 0.5029
|
||||
vt 0.0543 0.5095
|
||||
vt 0.0451 0.5095
|
||||
vt 0.0000 0.2563
|
||||
vt 0.0000 0.2514
|
||||
vt 0.0079 0.2514
|
||||
vt 0.0079 0.2563
|
||||
vt 0.0000 0.2466
|
||||
vt 0.0000 0.2417
|
||||
vt 0.0079 0.2417
|
||||
vt 0.0079 0.2466
|
||||
vt 0.4035 0.2514
|
||||
vt 0.4035 0.2563
|
||||
vt 0.3957 0.2563
|
||||
vt 0.3957 0.2514
|
||||
vt 0.4035 0.2466
|
||||
vt 0.3957 0.2466
|
||||
vt 0.7799 0.0000
|
||||
vt 0.7799 1.0000
|
||||
vt 0.7250 1.0000
|
||||
vt 0.7250 0.0000
|
||||
vt 0.7174 1.0000
|
||||
vt 0.6624 1.0000
|
||||
vt 0.6624 0.0000
|
||||
vt 0.7174 0.0000
|
||||
vt 0.1844 1.0000
|
||||
vt 0.1270 0.9704
|
||||
vt 0.2220 0.8967
|
||||
vt 0.4857 0.7931
|
||||
vt 0.4720 0.8965
|
||||
vt 0.3770 0.9704
|
||||
vt 0.2162 0.4330
|
||||
vt 0.1270 0.2600
|
||||
vt 0.0594 0.0000
|
||||
vt 0.0020 0.0296
|
||||
vt 0.0097 0.0148
|
||||
vt 0.2357 0.7933
|
||||
vt 0.0132 0.0000
|
||||
vt 0.0912 0.5670
|
||||
vt 0.0556 0.7283
|
||||
vt 0.0020 0.7400
|
||||
vt 0.1107 0.2069
|
||||
vt 0.1347 0.9852
|
||||
vt 0.0970 0.1035
|
||||
vt 0.1806 0.2717
|
||||
vt 0.1382 1.0000
|
||||
vt 0.3412 0.5670
|
||||
vt 0.3056 0.7283
|
||||
vt 0.2520 0.7400
|
||||
vt 0.2520 0.0296
|
||||
vt 0.3607 0.2067
|
||||
vt 0.3882 1.0000
|
||||
vt 0.3847 0.9852
|
||||
vt 0.4344 1.0000
|
||||
vt 0.3470 0.1033
|
||||
vt 0.4662 0.4330
|
||||
vt 0.3770 0.2600
|
||||
vt 0.3094 0.0000
|
||||
vt 0.2597 0.0148
|
||||
vt 0.2632 0.0000
|
||||
vt 0.4306 0.2717
|
||||
vt 0.6368 0.1563
|
||||
vt 0.8750 0.1563
|
||||
vt 0.8750 0.9843
|
||||
vt 0.6368 0.9843
|
||||
vt 0.0000 0.1563
|
||||
vt 0.1250 0.1563
|
||||
vt 0.1250 0.9843
|
||||
vt 0.0000 0.9843
|
||||
vt 1.0000 0.1563
|
||||
vt 1.0000 0.9843
|
||||
vt 0.3633 0.1563
|
||||
vt 0.4317 0.1563
|
||||
vt 0.4317 0.9843
|
||||
vt 0.3633 0.9843
|
||||
vt 0.5000 0.1563
|
||||
vt 0.5684 0.1563
|
||||
vt 0.5684 0.9843
|
||||
vt 0.5000 0.9843
|
||||
vn -0.5773 -0.5773 -0.5773
|
||||
vn 0.0000 -0.7071 -0.7071
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 -0.7071 0.7071
|
||||
vn -0.5773 -0.5773 0.5773
|
||||
vn 0.2807 0.9275 0.2469
|
||||
vn 0.1729 0.7321 0.6588
|
||||
vn 0.1487 0.6294 0.7627
|
||||
vn 0.5773 0.5773 0.5773
|
||||
vn 0.2166 -0.7111 -0.6688
|
||||
vn 0.4287 -0.9005 -0.0717
|
||||
vn -0.1487 0.6294 0.7627
|
||||
vn -0.5773 0.5773 0.5773
|
||||
vn 0.2166 -0.7111 0.6688
|
||||
vn -0.5773 0.5773 -0.5773
|
||||
vn -0.1487 0.6294 -0.7627
|
||||
vn -0.1729 0.7321 0.6588
|
||||
vn -0.2807 0.9275 0.2469
|
||||
vn 0.4287 -0.9005 0.0717
|
||||
vn -0.2807 0.9275 -0.2469
|
||||
vn -0.4288 -0.9005 0.0717
|
||||
vn -0.4288 -0.9005 -0.0717
|
||||
vn -0.2166 -0.7111 0.6688
|
||||
vn 0.5773 0.5773 -0.5773
|
||||
vn 0.5773 -0.5773 -0.5773
|
||||
vn -0.2166 -0.7111 -0.6688
|
||||
vn 0.1487 0.6294 -0.7627
|
||||
vn 0.5773 -0.5773 0.5773
|
||||
vn 0.1729 0.7321 -0.6588
|
||||
vn 0.2807 0.9275 -0.2469
|
||||
vn -0.3503 -0.4967 -0.7941
|
||||
vn 0.0000 -0.5800 -0.8146
|
||||
vn 0.2469 0.6893 -0.6811
|
||||
vn 0.0000 0.7509 -0.6604
|
||||
vn -0.2468 0.6893 -0.6811
|
||||
vn 0.3503 -0.4967 -0.7941
|
||||
vn 0.3503 -0.4967 0.7941
|
||||
vn 0.0000 -0.5800 0.8146
|
||||
vn -0.2468 0.6893 0.6811
|
||||
vn 0.0000 0.7509 0.6604
|
||||
vn 0.2469 0.6893 0.6811
|
||||
vn -0.3503 -0.4967 0.7941
|
||||
vn -0.5696 -0.8195 0.0629
|
||||
vn 0.0000 -0.9997 0.0237
|
||||
vn 0.5696 -0.8195 0.0629
|
||||
vn -0.5696 -0.8195 -0.0629
|
||||
vn 0.0000 -0.9997 -0.0237
|
||||
vn 0.5696 -0.8195 -0.0629
|
||||
vn 0.0000 0.6491 -0.7606
|
||||
vn 0.2286 0.6383 -0.7350
|
||||
vn -0.1729 0.7321 -0.6588
|
||||
vn -0.2286 0.6383 -0.7350
|
||||
vn 0.2286 0.6383 0.7350
|
||||
vn 0.0000 0.6491 0.7606
|
||||
vn -0.2286 0.6383 0.7350
|
||||
vn -0.5596 0.5679 0.6035
|
||||
vn -0.5596 0.5679 -0.6035
|
||||
vn 0.5596 0.5679 -0.6035
|
||||
vn 0.5596 0.5679 0.6035
|
||||
vn 0.0002 0.6143 -0.7890
|
||||
vn 0.1666 0.7098 -0.6844
|
||||
vn -0.0271 0.7255 0.6876
|
||||
vn -0.1664 0.7098 0.6844
|
||||
vn -0.0939 0.7178 -0.6898
|
||||
vn 0.0271 0.7255 -0.6876
|
||||
vn 0.0939 0.7178 -0.6898
|
||||
vn -0.0271 0.7255 -0.6876
|
||||
vn -0.1664 0.7098 -0.6844
|
||||
vn -0.0939 0.7178 0.6898
|
||||
vn 0.0271 0.7255 0.6876
|
||||
vn 0.0002 0.6143 0.7890
|
||||
vn 0.1666 0.7098 0.6844
|
||||
vn 0.0939 0.7178 0.6898
|
||||
g Cube.002_Cube.001_Cube.002_Cube.001_cover
|
||||
s 1
|
||||
f 18/1/1 20/2/2 13/3/3 12/4/3 14/5/4 19/6/5
|
||||
@ -333,86 +341,86 @@ f 3/22/15 16/23/16 17/24/10 20/25/2 18/26/1
|
||||
f 1/27/12 74/28/17 5/29/18 21/30/13
|
||||
f 13/3/3 10/12/11 11/31/19 12/4/3
|
||||
f 21/30/13 5/29/18 8/32/20 3/33/15
|
||||
f 29/34/3 30/35/3 31/31/21 32/12/22
|
||||
f 31/31/21 30/35/3 39/36/4 40/37/23
|
||||
f 37/38/24 43/39/25 45/40/2 42/41/26 41/42/27
|
||||
f 43/43/25 37/21/24 46/20/9 44/44/28
|
||||
f 38/45/8 40/46/23 39/47/4 44/48/28 46/49/9
|
||||
f 29/34/3 32/12/22 42/50/26 45/51/2
|
||||
f 41/52/27 71/53/29 35/54/30 37/55/24
|
||||
f 35/54/30 36/7/6 46/10/9 37/55/24
|
||||
f 43/56/25 44/57/28 39/36/4 30/35/3 29/34/3 45/51/2
|
||||
f 15/58/14 14/5/4 12/4/3 11/31/19
|
||||
f 42/41/26 64/59/31 41/42/27
|
||||
f 41/42/27 64/59/31 2/60/32 67/61/33
|
||||
f 67/61/33 2/60/32 34/62/34
|
||||
f 34/62/34 2/60/32 59/63/35
|
||||
f 2/60/32 62/64/36 16/23/16 59/63/35
|
||||
f 16/23/16 62/64/36 17/24/10
|
||||
f 15/17/14 63/65/37 1/13/12
|
||||
f 23/66/38 58/67/39 1/13/12 63/65/37
|
||||
f 58/67/39 23/66/38 33/68/40
|
||||
f 68/69/41 33/68/40 23/66/38
|
||||
f 38/45/8 68/69/41 23/66/38 57/70/42
|
||||
f 57/70/42 40/46/23 38/45/8
|
||||
f 40/71/23 57/72/42 66/73/43 31/74/21
|
||||
f 57/44/42 23/75/38 47/76/44 66/77/43
|
||||
f 47/76/44 23/75/38 63/78/37 60/79/45
|
||||
f 15/71/14 11/80/19 60/81/45 63/82/37
|
||||
f 32/83/22 65/84/46 64/85/31 42/86/26
|
||||
f 64/43/31 65/87/46 48/88/47 2/89/32
|
||||
f 48/88/47 61/90/48 62/91/36 2/89/32
|
||||
f 17/86/10 62/92/36 61/93/48 10/94/11
|
||||
f 67/95/33 34/96/34 70/97/49 73/98/50
|
||||
f 59/99/35 16/100/16 69/101/51 72/102/52
|
||||
f 41/52/27 67/95/33 73/98/50 71/53/29
|
||||
f 34/96/34 59/99/35 72/102/52 70/97/49
|
||||
f 33/103/40 68/104/41 78/105/53 75/106/54
|
||||
f 1/27/12 58/107/39 77/108/55 74/28/17
|
||||
f 68/104/41 38/9/8 76/8/7 78/105/53
|
||||
f 58/107/39 33/103/40 75/106/54 77/108/55
|
||||
f 8/32/20 69/101/51 16/100/16 3/33/15
|
||||
f 10/94/11 61/93/48 60/81/45 11/80/19
|
||||
f 47/76/44 60/79/45 61/90/48 48/88/47
|
||||
f 65/87/46 66/77/43 47/76/44 48/88/47
|
||||
f 31/74/21 66/73/43 65/84/46 32/83/22
|
||||
f 29/34/3 30/35/3 31/36/21 32/37/22
|
||||
f 31/36/21 30/35/3 39/38/4 40/39/23
|
||||
f 37/40/24 43/41/25 45/42/2 42/43/26 41/44/27
|
||||
f 43/45/25 37/46/24 46/47/9 44/48/28
|
||||
f 38/49/8 40/50/23 39/51/4 44/52/28 46/53/9
|
||||
f 29/34/3 32/37/22 42/54/26 45/55/2
|
||||
f 41/56/27 71/57/29 35/58/30 37/59/24
|
||||
f 35/58/30 36/7/6 46/10/9 37/59/24
|
||||
f 43/60/25 44/61/28 39/38/4 30/35/3 29/34/3 45/55/2
|
||||
f 15/62/14 14/5/4 12/4/3 11/31/19
|
||||
f 42/43/26 64/63/31 41/44/27
|
||||
f 41/44/27 64/63/31 2/64/32 67/65/33
|
||||
f 67/65/33 2/64/32 34/66/34
|
||||
f 34/66/34 2/64/32 59/67/35
|
||||
f 2/64/32 62/68/36 16/23/16 59/67/35
|
||||
f 16/23/16 62/68/36 17/24/10
|
||||
f 15/17/14 63/69/37 1/13/12
|
||||
f 23/70/38 58/71/39 1/13/12 63/69/37
|
||||
f 58/71/39 23/70/38 33/72/40
|
||||
f 68/73/41 33/72/40 23/70/38
|
||||
f 38/49/8 68/73/41 23/70/38 57/74/42
|
||||
f 57/74/42 40/50/23 38/49/8
|
||||
f 40/75/23 57/76/42 66/77/43 31/78/21
|
||||
f 57/79/42 23/80/38 47/81/44 66/82/43
|
||||
f 47/81/44 23/80/38 63/83/37 60/84/45
|
||||
f 15/85/14 11/86/19 60/87/45 63/88/37
|
||||
f 32/89/22 65/90/46 64/91/31 42/92/26
|
||||
f 64/93/31 65/94/46 48/95/47 2/96/32
|
||||
f 48/95/47 61/97/48 62/98/36 2/96/32
|
||||
f 17/99/10 62/100/36 61/101/48 10/102/11
|
||||
f 67/103/33 34/104/34 70/105/49 73/106/50
|
||||
f 59/107/35 16/108/16 69/109/51 72/110/52
|
||||
f 41/56/27 67/103/33 73/106/50 71/57/29
|
||||
f 34/104/34 59/107/35 72/110/52 70/105/49
|
||||
f 33/111/40 68/112/41 78/113/53 75/114/54
|
||||
f 1/27/12 58/115/39 77/116/55 74/28/17
|
||||
f 68/112/41 38/9/8 76/8/7 78/113/53
|
||||
f 58/115/39 33/111/40 75/114/54 77/116/55
|
||||
f 8/32/20 69/109/51 16/108/16 3/33/15
|
||||
f 10/102/11 61/101/48 60/87/45 11/86/19
|
||||
f 47/81/44 60/84/45 61/97/48 48/95/47
|
||||
f 65/94/46 66/82/43 47/81/44 48/95/47
|
||||
f 31/78/21 66/77/43 65/90/46 32/89/22
|
||||
g Cube.002_Cube.001_Cube.002_Cube.001_edges
|
||||
f 8/109/20 5/110/18 6/111/56 7/112/57
|
||||
f 35/113/30 26/114/58 25/115/59 36/116/6
|
||||
f 9/117/60 69/118/51 53/119/61
|
||||
f 50/120/62 56/121/63 76/122/7
|
||||
f 24/123/64 69/118/51 8/124/20
|
||||
f 9/125/60 71/126/29 73/127/50
|
||||
f 51/128/65 53/119/61 69/118/51
|
||||
f 9/125/60 73/127/50 70/129/49
|
||||
f 28/130/66 26/131/58 35/132/30
|
||||
f 71/126/29 49/133/67 28/130/66
|
||||
f 72/134/52 69/118/51 9/117/60
|
||||
f 71/126/29 55/135/68 49/133/67
|
||||
f 28/130/66 35/132/30 71/126/29
|
||||
f 24/123/64 8/124/20 7/136/57
|
||||
f 69/118/51 24/123/64 51/128/65
|
||||
f 9/125/60 55/135/68 71/126/29
|
||||
f 70/137/49 72/134/52 9/117/60
|
||||
f 22/138/69 6/139/56 5/140/18
|
||||
f 74/141/17 52/142/70 22/138/69
|
||||
f 75/143/54 78/144/53 4/145/71
|
||||
f 74/141/17 54/146/72 52/142/70
|
||||
f 22/138/69 5/140/18 74/141/17
|
||||
f 27/147/73 76/122/7 36/148/6
|
||||
f 4/149/71 74/141/17 77/150/55
|
||||
f 27/147/73 50/120/62 76/122/7
|
||||
f 4/149/71 77/150/55 75/151/54
|
||||
f 4/145/71 78/144/53 76/122/7
|
||||
f 4/149/71 54/146/72 74/141/17
|
||||
f 27/147/73 36/148/6 25/152/59
|
||||
f 56/121/63 4/145/71 76/122/7
|
||||
f 8/117/20 5/118/18 6/119/56 7/120/57
|
||||
f 35/121/30 26/122/58 25/123/59 36/124/6
|
||||
f 9/125/60 69/126/51 53/127/61
|
||||
f 50/128/62 56/129/63 76/130/7
|
||||
f 24/131/64 69/126/51 8/132/20
|
||||
f 9/133/60 71/134/29 73/135/50
|
||||
f 51/136/65 53/127/61 69/126/51
|
||||
f 9/133/60 73/135/50 70/137/49
|
||||
f 28/138/66 26/139/58 35/140/30
|
||||
f 71/134/29 49/141/67 28/138/66
|
||||
f 72/142/52 69/126/51 9/125/60
|
||||
f 71/134/29 55/143/68 49/141/67
|
||||
f 28/138/66 35/140/30 71/134/29
|
||||
f 24/131/64 8/132/20 7/144/57
|
||||
f 69/126/51 24/131/64 51/136/65
|
||||
f 9/133/60 55/143/68 71/134/29
|
||||
f 70/145/49 72/142/52 9/125/60
|
||||
f 22/146/69 6/147/56 5/148/18
|
||||
f 74/149/17 52/150/70 22/146/69
|
||||
f 75/151/54 78/152/53 4/153/71
|
||||
f 74/149/17 54/154/72 52/150/70
|
||||
f 22/146/69 5/148/18 74/149/17
|
||||
f 27/155/73 76/130/7 36/156/6
|
||||
f 4/157/71 74/149/17 77/158/55
|
||||
f 27/155/73 50/128/62 76/130/7
|
||||
f 4/157/71 77/158/55 75/159/54
|
||||
f 4/153/71 78/152/53 76/130/7
|
||||
f 4/157/71 54/154/72 74/149/17
|
||||
f 27/155/73 36/156/6 25/160/59
|
||||
f 56/129/63 4/153/71 76/130/7
|
||||
g Cube.002_Cube.001_Cube.002_Cube.001_pages
|
||||
f 50/153/62 27/154/73 28/155/66 49/156/67
|
||||
f 6/157/56 22/158/69 24/159/64 7/160/57
|
||||
f 27/154/73 25/161/59 26/162/58 28/155/66
|
||||
f 52/163/70 54/164/72 53/165/61 51/166/65
|
||||
f 22/158/69 52/163/70 51/166/65 24/159/64
|
||||
f 4/167/71 56/168/63 55/169/68 9/170/60
|
||||
f 54/164/72 4/167/71 9/170/60 53/165/61
|
||||
f 56/168/63 50/153/62 49/156/67 55/169/68
|
||||
f 50/161/62 27/162/73 28/163/66 49/164/67
|
||||
f 6/165/56 22/166/69 24/167/64 7/168/57
|
||||
f 27/162/73 25/169/59 26/170/58 28/163/66
|
||||
f 52/171/70 54/172/72 53/173/61 51/174/65
|
||||
f 22/166/69 52/171/70 51/174/65 24/167/64
|
||||
f 4/175/71 56/176/63 55/177/68 9/178/60
|
||||
f 54/172/72 4/175/71 9/178/60 53/173/61
|
||||
f 56/176/63 50/161/62 49/164/67 55/177/68
|
||||
|
202
homedecor/models/plasma_lamp.obj
Normal file
@ -0,0 +1,202 @@
|
||||
# Blender v2.78 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.437500 -0.437500 -0.437500
|
||||
v 0.437500 0.437500 -0.437500
|
||||
v 0.437500 -0.437500 0.437500
|
||||
v 0.437500 0.437500 0.437500
|
||||
v -0.437500 -0.437500 -0.437500
|
||||
v -0.437500 0.437500 -0.437500
|
||||
v -0.437500 -0.437500 0.437500
|
||||
v -0.437500 0.437500 0.437500
|
||||
v -0.500000 -0.437500 -0.437500
|
||||
v -0.500000 0.437500 -0.437500
|
||||
v -0.500000 -0.437500 0.437500
|
||||
v -0.500000 0.437500 0.437500
|
||||
v 0.500000 -0.437500 -0.437500
|
||||
v 0.500000 0.437500 -0.437500
|
||||
v 0.500000 -0.437500 0.437500
|
||||
v 0.500000 0.437500 0.437500
|
||||
v 0.437500 -0.437500 -0.500000
|
||||
v 0.437500 0.437500 -0.500000
|
||||
v -0.437500 -0.437500 -0.500000
|
||||
v -0.437500 0.437500 -0.500000
|
||||
v 0.437500 -0.437500 0.500000
|
||||
v 0.437500 0.437500 0.500000
|
||||
v -0.437500 -0.437500 0.500000
|
||||
v -0.437500 0.437500 0.500000
|
||||
v 0.437500 0.500000 -0.437500
|
||||
v 0.437500 0.500000 0.437500
|
||||
v -0.437500 0.500000 -0.437500
|
||||
v -0.437500 0.500000 0.437500
|
||||
v 0.437500 -0.500000 -0.437500
|
||||
v 0.437500 -0.500000 0.437500
|
||||
v -0.437500 -0.500000 -0.437500
|
||||
v -0.437500 -0.500000 0.437500
|
||||
vt 0.0625 0.0000
|
||||
vt 0.9375 0.0000
|
||||
vt 0.9375 0.0625
|
||||
vt 0.0625 0.0625
|
||||
vt -0.0000 0.9375
|
||||
vt -0.0000 0.0625
|
||||
vt 0.0625 0.9375
|
||||
vt -0.0000 0.0625
|
||||
vt -0.0000 0.9375
|
||||
vt -0.0000 0.9375
|
||||
vt -0.0000 0.0625
|
||||
vt 0.0625 0.0625
|
||||
vt 0.0625 0.9375
|
||||
vt -0.0000 0.9375
|
||||
vt 0.0625 0.9375
|
||||
vt 0.0625 0.0625
|
||||
vt -0.0000 0.0625
|
||||
vt 0.9375 0.0000
|
||||
vt 0.0625 0.0000
|
||||
vt 0.9375 0.0625
|
||||
vt 0.0625 0.9375
|
||||
vt 0.0625 0.0625
|
||||
vt -0.0000 0.0625
|
||||
vt -0.0000 0.9375
|
||||
vt 1.0000 0.9375
|
||||
vt 1.0000 0.0625
|
||||
vt 0.9375 0.9375
|
||||
vt 1.0000 0.9375
|
||||
vt 0.9375 0.9375
|
||||
vt 1.0000 0.9375
|
||||
vt 0.9375 0.9375
|
||||
vt 0.9375 0.0625
|
||||
vt 1.0000 0.0625
|
||||
vt 1.0000 0.0625
|
||||
vt 1.0000 0.9375
|
||||
vt 1.0000 0.0625
|
||||
vt 0.9375 1.0000
|
||||
vt 0.0625 1.0000
|
||||
vt 0.9375 0.9375
|
||||
vt 0.9375 0.0625
|
||||
vt 1.0000 0.0625
|
||||
vt 1.0000 0.9375
|
||||
vt 0.0625 1.0000
|
||||
vt 0.9375 1.0000
|
||||
vt 0.0625 0.0000
|
||||
vt 0.9375 0.0000
|
||||
vt 0.0625 0.0000
|
||||
vt 0.9375 0.0000
|
||||
vt 0.0625 0.0000
|
||||
vt 0.9375 0.0000
|
||||
vt 0.0625 1.0000
|
||||
vt 0.9375 1.0000
|
||||
vt 0.0625 1.0000
|
||||
vt 0.9375 1.0000
|
||||
vt 0.0625 1.0000
|
||||
vt 0.9375 1.0000
|
||||
vt -0.0000 0.0000
|
||||
vt 1.0000 0.0000
|
||||
vt 0.9375 0.0625
|
||||
vt 0.0625 0.0625
|
||||
vt -0.0000 1.0000
|
||||
vt 0.0625 0.9375
|
||||
vt 1.0000 1.0000
|
||||
vt 0.9375 0.9375
|
||||
vt -0.0000 1.0000
|
||||
vt 0.0625 0.9375
|
||||
vt 0.9375 0.9375
|
||||
vt 1.0000 0.0000
|
||||
vt 0.9375 0.0625
|
||||
vt 0.0625 0.0625
|
||||
vt -0.0000 0.0000
|
||||
vt 1.0000 1.0000
|
||||
vt 1.0000 0.0000
|
||||
vt 0.9375 0.0625
|
||||
vt 0.9375 0.9375
|
||||
vt -0.0000 0.0000
|
||||
vt 0.0625 0.0625
|
||||
vt -0.0000 1.0000
|
||||
vt 0.0625 0.9375
|
||||
vt -0.0000 0.0000
|
||||
vt 0.0625 0.9375
|
||||
vt 0.0625 0.0625
|
||||
vt 0.9375 0.9375
|
||||
vt 0.9375 0.0625
|
||||
vt 1.0000 0.0000
|
||||
vt 0.9375 0.0625
|
||||
vt 0.9375 0.9375
|
||||
vt 1.0000 1.0000
|
||||
vt 0.0625 0.9375
|
||||
vt -0.0000 1.0000
|
||||
vt 0.0625 0.0625
|
||||
vt 0.0625 0.0625
|
||||
vt 0.0625 0.9375
|
||||
vt 0.9375 0.9375
|
||||
vt 1.0000 1.0000
|
||||
vt 0.9375 0.0625
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
g Cube_Cube.001_frame
|
||||
s off
|
||||
f 25/1/1 27/2/1 13/3/1 9/4/1
|
||||
f 26/5/2 25/6/2 9/4/2 10/7/2
|
||||
f 21/8/3 22/9/3 10/7/3 9/4/3
|
||||
f 24/10/4 23/11/4 11/12/4 12/13/4
|
||||
f 23/14/1 21/8/1 9/4/1 11/15/1
|
||||
f 12/13/5 10/16/5 22/17/5 24/10/5
|
||||
f 28/18/5 26/19/5 10/16/5 14/20/5
|
||||
f 14/21/6 13/22/6 27/23/6 28/24/6
|
||||
f 18/25/3 17/26/3 13/3/3 14/27/3
|
||||
f 17/26/1 19/28/1 15/29/1 13/3/1
|
||||
f 20/30/4 16/31/4 15/32/4 19/33/4
|
||||
f 20/30/5 18/34/5 14/20/5 16/31/5
|
||||
f 16/31/6 32/35/6 31/36/6 15/32/6
|
||||
f 31/37/1 29/38/1 11/15/1 15/29/1
|
||||
f 12/39/2 11/40/2 29/41/2 30/42/2
|
||||
f 30/43/5 32/44/5 16/31/5 12/13/5
|
||||
f 15/32/4 11/12/4 38/45/4 40/46/4
|
||||
f 13/22/6 15/32/6 40/46/6 39/47/6
|
||||
f 9/4/3 13/3/3 39/48/3 37/49/3
|
||||
f 11/40/2 9/4/2 37/49/2 38/50/2
|
||||
f 16/31/6 14/21/6 35/51/6 36/52/6
|
||||
f 12/13/4 16/31/4 36/52/4 34/53/4
|
||||
f 10/7/2 12/39/2 34/54/2 33/55/2
|
||||
f 14/27/3 10/7/3 33/55/3 35/56/3
|
||||
f 2/57/1 6/58/1 35/59/1 33/60/1
|
||||
f 4/61/1 2/57/1 33/60/1 34/62/1
|
||||
f 8/63/1 4/61/1 34/62/1 36/64/1
|
||||
f 6/58/1 8/63/1 36/64/1 35/59/1
|
||||
f 6/65/2 18/66/2 20/67/2 8/63/2
|
||||
f 7/68/2 8/63/2 20/67/2 19/69/2
|
||||
f 7/68/2 19/69/2 17/70/2 5/71/2
|
||||
f 5/71/2 17/70/2 18/66/2 6/65/2
|
||||
f 7/72/5 5/73/5 39/74/5 40/75/5
|
||||
f 5/73/5 1/76/5 37/77/5 39/74/5
|
||||
f 1/76/5 3/78/5 38/79/5 37/77/5
|
||||
f 3/78/5 7/72/5 40/75/5 38/79/5
|
||||
f 3/80/3 4/61/3 30/81/3 29/82/3
|
||||
f 8/63/3 32/83/3 30/81/3 4/61/3
|
||||
f 7/68/3 31/84/3 32/83/3 8/63/3
|
||||
f 3/80/3 29/82/3 31/84/3 7/68/3
|
||||
f 3/85/6 23/86/6 24/87/6 4/88/6
|
||||
f 4/88/6 24/87/6 22/89/6 2/90/6
|
||||
f 2/90/6 22/89/6 21/91/6 1/76/6
|
||||
f 1/76/6 21/91/6 23/86/6 3/85/6
|
||||
f 2/90/4 1/76/4 25/92/4 26/93/4
|
||||
f 2/90/4 26/93/4 28/94/4 6/95/4
|
||||
f 5/73/4 6/95/4 28/94/4 27/96/4
|
||||
f 5/73/4 27/96/4 25/92/4 1/76/4
|
||||
g Cube_Cube.001_glass
|
||||
f 9/4/6 10/7/6 12/39/6 11/40/6
|
||||
f 11/12/3 12/13/3 16/31/3 15/32/3
|
||||
f 15/32/2 16/31/2 14/21/2 13/22/2
|
||||
f 13/3/4 14/27/4 10/7/4 9/4/4
|
||||
f 11/15/5 15/29/5 13/3/5 9/4/5
|
||||
f 16/31/1 12/13/1 10/16/1 14/20/1
|
Before Width: | Height: | Size: 202 B After Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 259 B After Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 93 B |
After Width: | Height: | Size: 209 B |
BIN
homedecor/textures/homedecor_glowlight_cube_sides_overlay.png
Normal file
After Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 94 B |
BIN
homedecor/textures/homedecor_glowlight_cube_tb_overlay.png
Normal file
After Width: | Height: | Size: 209 B |
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 95 B |
BIN
homedecor/textures/homedecor_glowlight_thick_sides_overlay.png
Normal file
After Width: | Height: | Size: 317 B |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 96 B |
BIN
homedecor/textures/homedecor_glowlight_thin_sides_overlay.png
Normal file
After Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 93 B |
BIN
homedecor/textures/homedecor_glowlight_top_overlay.png
Normal file
After Width: | Height: | Size: 417 B |
@ -12,7 +12,7 @@ else
|
||||
S = function(s) return s end
|
||||
end
|
||||
|
||||
if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then
|
||||
if minetest.get_modpath("unified_inventory") or not minetest.settings:get_bool("creative_mode") then
|
||||
ilights.expect_infinite_stacks = false
|
||||
else
|
||||
ilights.expect_infinite_stacks = true
|
||||
|
@ -92,6 +92,19 @@ minetest.register_node("inbox:empty", {
|
||||
end
|
||||
end
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner = meta:get_string("owner")
|
||||
if player:get_player_name() == owner or
|
||||
minetest.check_player_privs(player, "protection_bypass") and
|
||||
clicker:get_player_control().aux1 then
|
||||
return stack:get_count()
|
||||
end
|
||||
return 0
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos)
|
||||
return 0
|
||||
end,
|
||||
})
|
||||
|
||||
function inbox.get_inbox_formspec(pos)
|
||||
|
@ -108,6 +108,6 @@ minetest.register_lbm({
|
||||
end
|
||||
})
|
||||
|
||||
if minetest.setting_get("log_mods") then
|
||||
if minetest.settings:get("log_mods") then
|
||||
minetest.log("action", "[lrfurn/armchairs] "..S("Loaded!"))
|
||||
end
|
||||
|
@ -65,6 +65,6 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
if minetest.setting_get("log_mods") then
|
||||
if minetest.settings:get("log_mods") then
|
||||
minetest.log("action", "[lrfurn/coffeetable] "..S("Loaded!"))
|
||||
end
|
||||
|
@ -48,6 +48,6 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
if minetest.setting_get("log_mods") then
|
||||
if minetest.settings:get("log_mods") then
|
||||
minetest.log("action", "[lrfurn/endtable] "..S("Loaded!"))
|
||||
end
|
||||
|
@ -122,6 +122,6 @@ minetest.register_lbm({
|
||||
end
|
||||
})
|
||||
|
||||
if minetest.setting_get("log_mods") then
|
||||
if minetest.settings:get("log_mods") then
|
||||
minetest.log("action", "[lrfurn/longsofas] "..S("Loaded!"))
|
||||
end
|
||||
|
@ -122,6 +122,6 @@ minetest.register_lbm({
|
||||
end
|
||||
})
|
||||
|
||||
if minetest.setting_get("log_mods") then
|
||||
if minetest.settings:get("log_mods") then
|
||||
minetest.log("action", "[lrfurn/sofas] "..S("Loaded!"))
|
||||
end
|
||||
|
@ -66,30 +66,63 @@ minetest.register_on_placenode(mesecon.on_placenode)
|
||||
minetest.register_on_dignode(mesecon.on_dignode)
|
||||
|
||||
-- Overheating service for fast circuits
|
||||
local OVERHEAT_MAX = mesecon.setting("overheat_max", 20)
|
||||
local COOLDOWN_TIME = mesecon.setting("cooldown_time", 2.0)
|
||||
local COOLDOWN_STEP = mesecon.setting("cooldown_granularity", 0.5)
|
||||
local COOLDOWN_MULTIPLIER = OVERHEAT_MAX / COOLDOWN_TIME
|
||||
local cooldown_timer = 0.0
|
||||
local object_heat = {}
|
||||
|
||||
-- returns true if heat is too high
|
||||
mesecon.do_overheat = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local heat = meta:get_int("heat") or 0
|
||||
|
||||
heat = heat + 1
|
||||
meta:set_int("heat", heat)
|
||||
|
||||
if heat < mesecon.setting("overheat_max", 20) then
|
||||
mesecon.queue:add_action(pos, "cooldown", {}, 1, nil, 0)
|
||||
else
|
||||
function mesecon.do_overheat(pos)
|
||||
local id = minetest.hash_node_position(pos)
|
||||
local heat = (object_heat[id] or 0) + 1
|
||||
object_heat[id] = heat
|
||||
if heat >= OVERHEAT_MAX then
|
||||
minetest.log("action", "Node overheats at " .. minetest.pos_to_string(pos))
|
||||
object_heat[id] = nil
|
||||
return true
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function mesecon.do_cooldown(pos)
|
||||
local id = minetest.hash_node_position(pos)
|
||||
object_heat[id] = nil
|
||||
end
|
||||
|
||||
mesecon.queue:add_function("cooldown", function (pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local heat = meta:get_int("heat")
|
||||
function mesecon.get_heat(pos)
|
||||
local id = minetest.hash_node_position(pos)
|
||||
return object_heat[id] or 0
|
||||
end
|
||||
|
||||
if (heat > 0) then
|
||||
meta:set_int("heat", heat - 1)
|
||||
function mesecon.move_hot_nodes(moved_nodes)
|
||||
local new_heat = {}
|
||||
for _, n in ipairs(moved_nodes) do
|
||||
local old_id = minetest.hash_node_position(n.oldpos)
|
||||
local new_id = minetest.hash_node_position(n.pos)
|
||||
new_heat[new_id] = object_heat[old_id]
|
||||
object_heat[old_id] = nil
|
||||
end
|
||||
end)
|
||||
for id, heat in pairs(new_heat) do
|
||||
object_heat[id] = heat
|
||||
end
|
||||
end
|
||||
|
||||
local function global_cooldown(dtime)
|
||||
cooldown_timer = cooldown_timer + dtime
|
||||
if cooldown_timer < COOLDOWN_STEP then
|
||||
return -- don't overload the CPU
|
||||
end
|
||||
local cooldown = COOLDOWN_MULTIPLIER * cooldown_timer
|
||||
cooldown_timer = 0
|
||||
for id, heat in pairs(object_heat) do
|
||||
heat = heat - cooldown
|
||||
if heat <= 0 then
|
||||
object_heat[id] = nil -- free some RAM
|
||||
else
|
||||
object_heat[id] = heat
|
||||
end
|
||||
end
|
||||
end
|
||||
minetest.register_globalstep(global_cooldown)
|
||||
|
@ -74,7 +74,8 @@ local function register_gate(name, inputnumber, assess, recipe, description)
|
||||
assess = assess,
|
||||
onstate = basename.."_on",
|
||||
offstate = basename.."_off",
|
||||
inputnumber = inputnumber
|
||||
inputnumber = inputnumber,
|
||||
after_dig_node = mesecon.do_cooldown,
|
||||
},{
|
||||
tiles = {"jeija_microcontroller_bottom.png^".."jeija_gate_off.png^"..
|
||||
"jeija_gate_"..name..".png"},
|
||||
|
@ -315,7 +315,7 @@ local function create_environment(pos, mem, event)
|
||||
port = vports_copy,
|
||||
event = event,
|
||||
mem = mem,
|
||||
heat = minetest.get_meta(pos):get_int("heat"),
|
||||
heat = mesecon.get_heat(pos),
|
||||
heat_max = mesecon.setting("overheat_max", 20),
|
||||
print = safe_print,
|
||||
interrupt = get_interrupt(pos),
|
||||
@ -478,14 +478,13 @@ local function reset_meta(pos, code, errmsg)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("code", code)
|
||||
code = minetest.formspec_escape(code or "")
|
||||
errmsg = minetest.formspec_escape(errmsg or "")
|
||||
meta:set_string("formspec", "size[10,8]"..
|
||||
"background[-0.2,-0.25;10.4,8.75;jeija_luac_background.png]"..
|
||||
"textarea[0.2,0.6;10.2,5;code;;"..code.."]"..
|
||||
"image_button[3.75,6;2.5,1;jeija_luac_runbutton.png;program;]"..
|
||||
"image_button_exit[9.72,-0.25;0.425,0.4;jeija_close_window.png;exit;]"..
|
||||
"label[0.1,5;"..errmsg.."]")
|
||||
meta:set_int("heat", 0)
|
||||
errmsg = minetest.formspec_escape(tostring(errmsg or ""))
|
||||
meta:set_string("formspec", "size[12,10]"..
|
||||
"background[-0.2,-0.25;12.4,10.75;jeija_luac_background.png]"..
|
||||
"textarea[0.2,0.2;12.2,9.5;code;;"..code.."]"..
|
||||
"image_button[4.75,8.75;2.5,1;jeija_luac_runbutton.png;program;]"..
|
||||
"image_button_exit[11.72,-0.25;0.425,0.4;jeija_close_window.png;exit;]"..
|
||||
"label[0.1,9;"..errmsg.."]")
|
||||
meta:set_int("luac_id", math.random(1, 65535))
|
||||
end
|
||||
|
||||
@ -626,6 +625,7 @@ for d = 0, 1 do
|
||||
d = d == 1,
|
||||
},
|
||||
after_dig_node = function (pos, node)
|
||||
mesecon.do_cooldown(pos)
|
||||
mesecon.receptor_off(pos, output_rules)
|
||||
end,
|
||||
is_luacontroller = true,
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 718 B |
@ -246,3 +246,4 @@ mesecon.register_mvps_stopper("doors:door_steel_t_1")
|
||||
mesecon.register_mvps_stopper("doors:door_steel_b_2")
|
||||
mesecon.register_mvps_stopper("doors:door_steel_t_2")
|
||||
mesecon.register_mvps_stopper("default:chest_locked")
|
||||
mesecon.register_on_mvps_move(mesecon.move_hot_nodes)
|
||||
|
@ -10,6 +10,11 @@ Licensed under the zlib license. See LICENSE.md for more information.
|
||||
|
||||
moreores = {}
|
||||
|
||||
local default_tin = false
|
||||
if minetest.registered_items["default:tin_ingot"] then
|
||||
default_tin = true
|
||||
end
|
||||
|
||||
local S
|
||||
if minetest.get_modpath("intllib") then
|
||||
S = intllib.Getter()
|
||||
@ -266,17 +271,6 @@ local oredefs = {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = 6},
|
||||
},
|
||||
tin = {
|
||||
description = "Tin",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
|
||||
oredef = {clust_scarcity = moreores.tin_chunk_size * moreores.tin_chunk_size * moreores.tin_chunk_size,
|
||||
clust_num_ores = moreores.tin_ore_per_chunk,
|
||||
clust_size = moreores.tin_chunk_size,
|
||||
y_min = moreores.tin_min_depth,
|
||||
y_max = moreores.tin_max_depth
|
||||
},
|
||||
tools = {},
|
||||
},
|
||||
mithril = {
|
||||
description = "Mithril",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
|
||||
@ -311,6 +305,20 @@ local oredefs = {
|
||||
}
|
||||
}
|
||||
|
||||
if not default_tin then
|
||||
oredefs.tin = {
|
||||
description = "Tin",
|
||||
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
|
||||
oredef = {clust_scarcity = moreores.tin_chunk_size * moreores.tin_chunk_size * moreores.tin_chunk_size,
|
||||
clust_num_ores = moreores.tin_ore_per_chunk,
|
||||
clust_size = moreores.tin_chunk_size,
|
||||
y_min = moreores.tin_min_depth,
|
||||
y_max = moreores.tin_max_depth
|
||||
},
|
||||
tools = {},
|
||||
}
|
||||
end
|
||||
|
||||
for orename,def in pairs(oredefs) do
|
||||
add_ore(modname, def.description, orename, def)
|
||||
end
|
||||
@ -325,16 +333,23 @@ minetest.register_craft({
|
||||
}
|
||||
})
|
||||
|
||||
-- Bronze has some special cases, because it is made from copper and tin:
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "default:bronze_ingot 3",
|
||||
recipe = {
|
||||
"moreores:tin_ingot",
|
||||
"default:copper_ingot",
|
||||
"default:copper_ingot",
|
||||
}
|
||||
})
|
||||
if default_tin then
|
||||
minetest.register_alias("moreores:mineral_tin", "default:stone_with_tin")
|
||||
minetest.register_alias("moreores:tin_lump", "default:tin_lump")
|
||||
minetest.register_alias("moreores:tin_ingot", "default:tin_ingot")
|
||||
minetest.register_alias("moreores:tin_block", "default:tinblock")
|
||||
else
|
||||
-- Bronze has some special cases, because it is made from copper and tin:
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "default:bronze_ingot 3",
|
||||
recipe = {
|
||||
"moreores:tin_ingot",
|
||||
"default:copper_ingot",
|
||||
"default:copper_ingot",
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- Unique node:
|
||||
minetest.register_node("moreores:copper_rail", {
|
||||
|
@ -5,20 +5,22 @@ Copyright (c) 2011-2017 Hugo Locurcio and contributors.
|
||||
Licensed under the zlib license. See LICENSE.md for more information.
|
||||
--]]
|
||||
|
||||
mg.register_ore({
|
||||
name = "moreores:mineral_tin",
|
||||
wherein = "default:stone",
|
||||
seeddiff = 8,
|
||||
maxvdistance = 10.5,
|
||||
maxheight = 8,
|
||||
seglenghtn = 15,
|
||||
seglenghtdev = 6,
|
||||
segincln = 0,
|
||||
segincldev = 0.6,
|
||||
turnangle = 57,
|
||||
forkturnangle = 57,
|
||||
numperblock = 2
|
||||
})
|
||||
if not minetest.registered_items["default:tin_ingot"] then
|
||||
mg.register_ore({
|
||||
name = "moreores:mineral_tin",
|
||||
wherein = "default:stone",
|
||||
seeddiff = 8,
|
||||
maxvdistance = 10.5,
|
||||
maxheight = 8,
|
||||
seglenghtn = 15,
|
||||
seglenghtdev = 6,
|
||||
segincln = 0,
|
||||
segincldev = 0.6,
|
||||
turnangle = 57,
|
||||
forkturnangle = 57,
|
||||
numperblock = 2
|
||||
})
|
||||
end
|
||||
|
||||
mg.register_ore({
|
||||
name = "moreores:mineral_silver",
|
||||
|