Merge pull request 'develop' (#38) from develop into master
Reviewed-on: #38
|
@ -1,4 +1,4 @@
|
||||||
mt_version="5.4.0"
|
mt_version="5.4.1"
|
||||||
first_install=y
|
first_install=y
|
||||||
ufw_enable=y
|
ufw_enable=y
|
||||||
ufw_ssh_port_for_accept=22
|
ufw_ssh_port_for_accept=22
|
||||||
|
|
335
mods/3d_armor/.ldoc/config.ld
Normal file
|
@ -0,0 +1,335 @@
|
||||||
|
|
||||||
|
-- place this file in mod ".ldoc" directory
|
||||||
|
|
||||||
|
local print, type, string, table, tostring, tonumber, error, pairs, ipairs
|
||||||
|
if import then
|
||||||
|
print = import("print")
|
||||||
|
type = import("type")
|
||||||
|
string = import("string")
|
||||||
|
table = import("table")
|
||||||
|
tostring = import("tostring")
|
||||||
|
tonumber = import("tonumber")
|
||||||
|
error = import("error")
|
||||||
|
pairs = import("pairs")
|
||||||
|
ipairs = import("ipairs")
|
||||||
|
end
|
||||||
|
|
||||||
|
project = "3d_armor"
|
||||||
|
title = "3D Armor"
|
||||||
|
format = "markdown"
|
||||||
|
not_luadoc = true
|
||||||
|
boilerplate = false
|
||||||
|
wrap = false
|
||||||
|
style = true
|
||||||
|
favicon = "https://www.minetest.net/media/icon.svg"
|
||||||
|
|
||||||
|
file = {
|
||||||
|
"3d_armor/api.lua",
|
||||||
|
".ldoc/settings.luadoc",
|
||||||
|
--".ldoc/armors.luadoc",
|
||||||
|
".ldoc/helmets.luadoc",
|
||||||
|
".ldoc/chestplates.luadoc",
|
||||||
|
".ldoc/leggings.luadoc",
|
||||||
|
".ldoc/boots.luadoc",
|
||||||
|
--".ldoc/shields.luadoc",
|
||||||
|
"shields/init.lua",
|
||||||
|
".ldoc/crafting.luadoc",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
new_type("setting", "Settings")
|
||||||
|
new_type("armor", "Armors")
|
||||||
|
new_type("craft", "Craft Recipes")
|
||||||
|
|
||||||
|
alias("helmet", "armor")
|
||||||
|
alias("chestplate", "armor")
|
||||||
|
alias("leggings", "armor")
|
||||||
|
alias("boots", "armor")
|
||||||
|
alias("shield", "armor")
|
||||||
|
alias("grp", "group")
|
||||||
|
|
||||||
|
-- function declarations
|
||||||
|
local format_text
|
||||||
|
local format_group
|
||||||
|
|
||||||
|
custom_tags = {
|
||||||
|
-- settings
|
||||||
|
{
|
||||||
|
"settype",
|
||||||
|
title = "Type",
|
||||||
|
hidden = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"min",
|
||||||
|
title = "Minimum Value",
|
||||||
|
hidden = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"max",
|
||||||
|
title = "Maximum Value",
|
||||||
|
hidden = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default",
|
||||||
|
title = "Default Value",
|
||||||
|
hidden = true,
|
||||||
|
},
|
||||||
|
-- craft items/tools
|
||||||
|
{
|
||||||
|
-- specify image basename only
|
||||||
|
"img",
|
||||||
|
title = "Inventory Image",
|
||||||
|
format = function(value)
|
||||||
|
return "<img src=\"../data/" .. value .. "\" style=\"width:32px; height:32px;\" />"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
-- specify full (relative or absolute) image path
|
||||||
|
"image",
|
||||||
|
title = "Image",
|
||||||
|
format = function(value)
|
||||||
|
return "<img src=\"" .. value .. "\" style=\"width:32px; height:32px;\" />"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group",
|
||||||
|
title = "Groups",
|
||||||
|
format = function(value)
|
||||||
|
return format_group(value)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"armorgrp",
|
||||||
|
title = "Armor Groups",
|
||||||
|
format = function(value)
|
||||||
|
return format_group(value)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"damagegrp",
|
||||||
|
title = "Damage Groups",
|
||||||
|
format = function(value)
|
||||||
|
return format_group(value)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if string then
|
||||||
|
string.trim = function(st, delim)
|
||||||
|
if not delim then
|
||||||
|
delim = " "
|
||||||
|
end
|
||||||
|
|
||||||
|
while string.find(st, delim) == 1 do
|
||||||
|
st = st:sub(2)
|
||||||
|
end
|
||||||
|
|
||||||
|
while string.sub(st, string.len(st)) == delim do
|
||||||
|
st = st:sub(1, string.len(st)-1)
|
||||||
|
end
|
||||||
|
|
||||||
|
return st
|
||||||
|
end
|
||||||
|
|
||||||
|
string.split = function(st, delim)
|
||||||
|
local list = {}
|
||||||
|
|
||||||
|
local idx = string.find(st, delim)
|
||||||
|
while idx do
|
||||||
|
table.insert(list, st:sub(1, idx-1))
|
||||||
|
st = st:sub(idx+1)
|
||||||
|
idx = string.find(st, delim)
|
||||||
|
end
|
||||||
|
-- add remaining item
|
||||||
|
table.insert(list, st)
|
||||||
|
|
||||||
|
return list
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if table then
|
||||||
|
if not table.copy then
|
||||||
|
table.copy = function(orig_table)
|
||||||
|
local new_table = {}
|
||||||
|
for k, v in pairs(orig_table) do
|
||||||
|
new_table[k] = v
|
||||||
|
end
|
||||||
|
|
||||||
|
return new_table
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
format_text = function(text, flags)
|
||||||
|
local ret = "<"
|
||||||
|
local ttype = "span"
|
||||||
|
if flags.code then
|
||||||
|
ttype = "code"
|
||||||
|
end
|
||||||
|
|
||||||
|
ret = ret .. ttype .. " style=\""
|
||||||
|
|
||||||
|
if flags.size then
|
||||||
|
ret = ret .. "font-size:" .. flags.size .. ";"
|
||||||
|
end
|
||||||
|
if flags.mono then
|
||||||
|
ret = ret .. "font-family:monospace;"
|
||||||
|
end
|
||||||
|
if flags.italic then
|
||||||
|
ret = ret .. "font-style:italic;"
|
||||||
|
end
|
||||||
|
if flags.bold then
|
||||||
|
ret = ret .. "font-weight:bold;"
|
||||||
|
end
|
||||||
|
if flags.color then
|
||||||
|
ret = ret .. "color:" .. flags.color .. ";"
|
||||||
|
end
|
||||||
|
if flags.bgcolor then
|
||||||
|
ret = ret .. "background-color:" .. flags.bgcolor .. ";"
|
||||||
|
end
|
||||||
|
|
||||||
|
ret = ret .. "\">" .. text .. "</" .. ttype .. ">"
|
||||||
|
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
format_group = function(text)
|
||||||
|
if string then
|
||||||
|
local idx, k, v = string.find(text, " ")
|
||||||
|
if idx then
|
||||||
|
text = format_text(string.sub(text, 1, idx-1) .. ": ", {mono=true, color="darkgreen"})
|
||||||
|
.. string.sub(text, idx)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return text
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local function format_setting_tag(desc, value)
|
||||||
|
return "\n- <span style=\"font-size:80%;\">`" .. desc .. ":`</span> `" .. value .. "`"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local registered = {
|
||||||
|
settings = {},
|
||||||
|
}
|
||||||
|
|
||||||
|
local function setting_handler(item)
|
||||||
|
-- avoid parsing again
|
||||||
|
if registered.settings[item.name] then
|
||||||
|
return item
|
||||||
|
end
|
||||||
|
|
||||||
|
if not ipairs or not type then
|
||||||
|
return item
|
||||||
|
end
|
||||||
|
|
||||||
|
local tags = {
|
||||||
|
{"settype", "type"},
|
||||||
|
{"default"},
|
||||||
|
{"min", "minimum value"},
|
||||||
|
{"max", "maximum value"},
|
||||||
|
}
|
||||||
|
|
||||||
|
local def = {
|
||||||
|
["settype"] = format_setting_tag("type", "string"),
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, t in ipairs(tags) do
|
||||||
|
local name = t[1]
|
||||||
|
local desc = t[2]
|
||||||
|
if not desc then desc = name end
|
||||||
|
|
||||||
|
local value = item.tags[name]
|
||||||
|
if type(value) == "table" then
|
||||||
|
if #value > 1 then
|
||||||
|
local msg = item.file.filename .. " (line " .. item.lineno
|
||||||
|
.. "): multiple instances of tag \"" .. name .. "\" found"
|
||||||
|
if error then
|
||||||
|
error(msg)
|
||||||
|
elseif print then
|
||||||
|
print("WARNING: " .. msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if value[1] then
|
||||||
|
def[name] = format_setting_tag(desc, value[1])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
item.description = item.description .. "\n\n**Definition:**\n" .. def.settype
|
||||||
|
for _, t in ipairs({def.default, def.min, def.max}) do
|
||||||
|
if t then
|
||||||
|
item.description = item.description .. t
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
registered.settings[item.name] = true
|
||||||
|
|
||||||
|
return item
|
||||||
|
end
|
||||||
|
|
||||||
|
function custom_display_name_handler(item, default_handler)
|
||||||
|
if item.type == "setting" then
|
||||||
|
item = setting_handler(item)
|
||||||
|
end
|
||||||
|
|
||||||
|
if item then
|
||||||
|
return default_handler(item)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local custom_see_links = {
|
||||||
|
["ObjectRef"] = "https://minetest.gitlab.io/minetest/class-reference/#objectref",
|
||||||
|
["PlayerMetaRef"] = "https://minetest.gitlab.io/minetest/class-reference/#playermetaref",
|
||||||
|
["ItemDef"] = "https://minetest.gitlab.io/minetest/definition-tables/#item-definition",
|
||||||
|
["ItemStack"] = "https://minetest.gitlab.io/minetest/class-reference/#itemstack",
|
||||||
|
["groups"] = "https://minetest.gitlab.io/minetest/groups/",
|
||||||
|
["entity_damage_mechanism"] = "https://minetest.gitlab.io/minetest/entity-damage-mechanism/",
|
||||||
|
["vector"] = "https://minetest.gitlab.io/minetest/representations-of-simple-things/#positionvector",
|
||||||
|
}
|
||||||
|
|
||||||
|
local function format_custom_see(name, section)
|
||||||
|
local url = custom_see_links[name]
|
||||||
|
if not url then
|
||||||
|
url = ""
|
||||||
|
end
|
||||||
|
|
||||||
|
if not name then
|
||||||
|
name = ""
|
||||||
|
end
|
||||||
|
|
||||||
|
return name, url
|
||||||
|
end
|
||||||
|
|
||||||
|
custom_see_handler("^(ObjectRef)$", function(name, section)
|
||||||
|
return format_custom_see(name, section)
|
||||||
|
end)
|
||||||
|
|
||||||
|
custom_see_handler("^(PlayerMetaRef)$", function(name, section)
|
||||||
|
return format_custom_see(name, section)
|
||||||
|
end)
|
||||||
|
|
||||||
|
custom_see_handler("^(ItemDef)$", function(name, section)
|
||||||
|
return format_custom_see(name, section)
|
||||||
|
end)
|
||||||
|
|
||||||
|
custom_see_handler("^(groups)$", function(name, section)
|
||||||
|
return format_custom_see(name, section)
|
||||||
|
end)
|
||||||
|
|
||||||
|
custom_see_handler("^(entity_damage_mechanism)$", function(name, section)
|
||||||
|
return format_custom_see(name, section)
|
||||||
|
end)
|
||||||
|
|
||||||
|
custom_see_handler("^(ItemStack)$", function(name, section)
|
||||||
|
return format_custom_see(name, section)
|
||||||
|
end)
|
||||||
|
|
||||||
|
custom_see_handler("^(vector)$", function(name, section)
|
||||||
|
return name, "https://minetest.gitlab.io/minetest/representations-of-simple-things/#positionvector"
|
||||||
|
end)
|
88
mods/3d_armor/.ldoc/gendoc.sh
Executable file
|
@ -0,0 +1,88 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Place this file in mod ".ldoc" directory.
|
||||||
|
#
|
||||||
|
# To change output directory set the `d_export` environment variable.
|
||||||
|
# Example:
|
||||||
|
# $ d_export=/custom/path ./gendoc.sh
|
||||||
|
|
||||||
|
|
||||||
|
d_ldoc="$(dirname $(readlink -f $0))"
|
||||||
|
f_config="${d_ldoc}/config.ld"
|
||||||
|
|
||||||
|
cd "${d_ldoc}/.."
|
||||||
|
|
||||||
|
d_root="$(pwd)"
|
||||||
|
d_export="${d_export:-${d_root}/3d_armor/docs/reference}"
|
||||||
|
d_data="${d_export}/data"
|
||||||
|
|
||||||
|
cmd_ldoc="${d_ldoc}/ldoc/ldoc.lua"
|
||||||
|
if test -f "${cmd_ldoc}"; then
|
||||||
|
if test ! -x "${cmd_ldoc}"; then
|
||||||
|
chmod +x "${cmd_ldoc}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cmd_ldoc="ldoc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# clean old files
|
||||||
|
rm -rf "${d_export}"
|
||||||
|
|
||||||
|
# generate items, settings, & crafts topics temp files
|
||||||
|
echo -e "\ngenerating temp files ..."
|
||||||
|
for script in "src" "settings" "crafts"; do
|
||||||
|
script="${d_ldoc}/parse_${script}.py"
|
||||||
|
if test ! -f "${script}"; then
|
||||||
|
echo "ERROR: script doesn't exist: ${script}"
|
||||||
|
else
|
||||||
|
# check script's executable bit
|
||||||
|
if test ! -x "${script}"; then
|
||||||
|
chmod +x "${script}"
|
||||||
|
fi
|
||||||
|
# execute script
|
||||||
|
"${script}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
# generate new doc files
|
||||||
|
"${cmd_ldoc}" --UNSAFE_NO_SANDBOX -c "${f_config}" -d "${d_export}" "${d_root}"; retval=$?
|
||||||
|
|
||||||
|
# check exit status
|
||||||
|
if test ${retval} -ne 0; then
|
||||||
|
echo -e "\nan error occurred (ldoc return code: ${retval})"
|
||||||
|
exit ${retval}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\ncleaning temp files ..."
|
||||||
|
rm -vf "${d_ldoc}/"*.luadoc
|
||||||
|
|
||||||
|
# HACK: ldoc does not seem to like the "shields:" prefix
|
||||||
|
echo -e "\ncompensating for LDoc's issue with \"shields:\" prefix ..."
|
||||||
|
sed -i \
|
||||||
|
-e 's/<strong>shield_/<strong>shields:shield_/' \
|
||||||
|
-e 's/<td class="name\(.*\)>shield_/<td class="name\1>shields:shield_/' \
|
||||||
|
-e 's/<a href="#shield_/<a href="#shields:shield_/' \
|
||||||
|
-e 's/<a name.*"shield_/<a name="shields:shield_/' \
|
||||||
|
"${d_export}/topics/shields.html"
|
||||||
|
|
||||||
|
# copy textures to data directory
|
||||||
|
printf "\ncopying textures ..."
|
||||||
|
mkdir -p "${d_data}"
|
||||||
|
texture_count=0
|
||||||
|
for d_mod in "3d_armor" "shields"; do
|
||||||
|
printf "\rcopying textures from ${d_mod} ...\n"
|
||||||
|
for png in $(find "${d_root}/${d_mod}/textures" -maxdepth 1 -type f -name "*.png"); do
|
||||||
|
if test -f "${d_data}/$(basename ${png})"; then
|
||||||
|
echo "WARNING: not overwriting existing file: ${png}"
|
||||||
|
else
|
||||||
|
cp "${png}" "${d_data}"
|
||||||
|
texture_count=$((texture_count + 1))
|
||||||
|
printf "\rcopied ${texture_count} textures"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "\n\nDone!"
|
305
mods/3d_armor/.ldoc/ldoc.css
Normal file
|
@ -0,0 +1,305 @@
|
||||||
|
/* BEGIN RESET
|
||||||
|
|
||||||
|
Copyright (c) 2010, Yahoo! Inc. All rights reserved.
|
||||||
|
Code licensed under the BSD License:
|
||||||
|
http://developer.yahoo.com/yui/license.html
|
||||||
|
version: 2.8.2r1
|
||||||
|
*/
|
||||||
|
html {
|
||||||
|
color: #000;
|
||||||
|
background: #FFF;
|
||||||
|
}
|
||||||
|
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
fieldset,img {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
address,caption,cite,code,dfn,em,strong,th,var,optgroup {
|
||||||
|
font-style: inherit;
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
del,ins {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
caption,th {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
h1,h2,h3,h4,h5,h6 {
|
||||||
|
font-size: 100%;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
q:before,q:after {
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
abbr,acronym {
|
||||||
|
border: 0;
|
||||||
|
font-variant: normal;
|
||||||
|
}
|
||||||
|
sup {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
sub {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
legend {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
input,button,textarea,select,optgroup,option {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
font-style: inherit;
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
input,button,textarea,select {*font-size:100%;
|
||||||
|
}
|
||||||
|
/* END RESET */
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 1em;
|
||||||
|
font-family: arial, helvetica, geneva, sans-serif;
|
||||||
|
background-color: #ffffff; margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
code, tt { font-family: monospace; font-size: 1.1em; }
|
||||||
|
span.parameter { font-family:monospace; }
|
||||||
|
span.parameter:after { content:":"; }
|
||||||
|
span.types:before { content:"("; }
|
||||||
|
span.types:after { content:")"; }
|
||||||
|
.type { font-weight: bold; font-style:italic }
|
||||||
|
|
||||||
|
body, p, td, th { font-size: .95em; line-height: 1.2em;}
|
||||||
|
|
||||||
|
p, ul { margin: 10px 0 0 0px;}
|
||||||
|
|
||||||
|
strong { font-weight: bold;}
|
||||||
|
|
||||||
|
em { font-style: italic;}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
margin: 20px 0 20px 0;
|
||||||
|
}
|
||||||
|
h2, h3, h4 { margin: 15px 0 10px 0; }
|
||||||
|
h2 { font-size: 1.25em; }
|
||||||
|
h3 { font-size: 1.15em; }
|
||||||
|
h4 { font-size: 1.06em; }
|
||||||
|
|
||||||
|
a:link { font-weight: bold; color: #004080; text-decoration: none; }
|
||||||
|
a:visited { font-weight: bold; color: #006699; text-decoration: none; }
|
||||||
|
a:link:hover { text-decoration: underline; }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
color:#cccccc;
|
||||||
|
background: #00007f;
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote { margin-left: 3em; }
|
||||||
|
|
||||||
|
ul { list-style-type: disc; }
|
||||||
|
|
||||||
|
p.name {
|
||||||
|
font-family: "Andale Mono", monospace;
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background-color: rgb(245, 245, 245);
|
||||||
|
border: 1px solid #C0C0C0; /* silver */
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px 0 10px 0;
|
||||||
|
overflow: auto;
|
||||||
|
font-family: "Andale Mono", monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.example {
|
||||||
|
font-size: .85em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.index { border: 1px #00007f; }
|
||||||
|
table.index td { text-align: left; vertical-align: top; }
|
||||||
|
|
||||||
|
#container {
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 1em;
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#product {
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid #cccccc;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#product big {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main {
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
border-left: 2px solid #cccccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation {
|
||||||
|
float: left;
|
||||||
|
width: 14em;
|
||||||
|
vertical-align: top;
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
overflow: visible;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation h2 {
|
||||||
|
background-color:#e7e7e7;
|
||||||
|
font-size:1.1em;
|
||||||
|
color:#000000;
|
||||||
|
text-align: left;
|
||||||
|
padding:0.2em;
|
||||||
|
border-top:1px solid #dddddd;
|
||||||
|
border-bottom:1px solid #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation ul
|
||||||
|
{
|
||||||
|
font-size:1em;
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 1px 1px 10px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation li {
|
||||||
|
text-indent: -1em;
|
||||||
|
display: block;
|
||||||
|
margin: 3px 0px 0px 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation li li a {
|
||||||
|
margin: 0px 3px 0px -1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
margin-left: 14em;
|
||||||
|
padding: 1em;
|
||||||
|
width: 700px;
|
||||||
|
border-left: 2px solid #cccccc;
|
||||||
|
border-right: 2px solid #cccccc;
|
||||||
|
background-color: #ffffff;
|
||||||
|
min-height: 425px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#about {
|
||||||
|
clear: both;
|
||||||
|
padding: 5px;
|
||||||
|
border-top: 2px solid #cccccc;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
body {
|
||||||
|
font: 12pt "Times New Roman", "TimeNR", Times, serif;
|
||||||
|
}
|
||||||
|
a { font-weight: bold; color: #004080; text-decoration: underline; }
|
||||||
|
|
||||||
|
#main {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
margin-left: 2%;
|
||||||
|
margin-right: 2%;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
padding: 1em;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#navigation {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
pre.example {
|
||||||
|
font-family: "Andale Mono", monospace;
|
||||||
|
font-size: 10pt;
|
||||||
|
page-break-inside: avoid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
table.module_list {
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #cccccc;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
table.module_list td {
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 3px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #cccccc;
|
||||||
|
}
|
||||||
|
table.module_list td.name { background-color: #f0f0f0; min-width: 200px; }
|
||||||
|
table.module_list td.summary { width: 100%; }
|
||||||
|
|
||||||
|
|
||||||
|
table.function_list {
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #cccccc;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
table.function_list td {
|
||||||
|
border-width: 1px;
|
||||||
|
padding: 3px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #cccccc;
|
||||||
|
}
|
||||||
|
table.function_list td.name { background-color: #f0f0f0; min-width: 200px; }
|
||||||
|
table.function_list td.summary { width: 100%; }
|
||||||
|
|
||||||
|
ul.nowrap {
|
||||||
|
overflow:auto;
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
dl.table dt, dl.function dt {border-top: 1px solid #ccc; padding-top: 1em;}
|
||||||
|
dl.table dd, dl.function dd {padding-bottom: 1em; margin: 10px 0 0 20px;}
|
||||||
|
dl.table h3, dl.function h3 {font-size: .95em;}
|
||||||
|
|
||||||
|
/* stop sublists from having initial vertical space */
|
||||||
|
ul ul { margin-top: 0px; }
|
||||||
|
ol ul { margin-top: 0px; }
|
||||||
|
ol ol { margin-top: 0px; }
|
||||||
|
ul ol { margin-top: 0px; }
|
||||||
|
|
||||||
|
/* make the target distinct; helps when we're navigating to a function */
|
||||||
|
a:target + * {
|
||||||
|
background-color: #FF9;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* styles for prettification of source */
|
||||||
|
pre .comment { color: #558817; }
|
||||||
|
pre .constant { color: #a8660d; }
|
||||||
|
pre .escape { color: #844631; }
|
||||||
|
pre .keyword { color: #aa5050; font-weight: bold; }
|
||||||
|
pre .library { color: #0e7c6b; }
|
||||||
|
pre .marker { color: #512b1e; background: #fedc56; font-weight: bold; }
|
||||||
|
pre .string { color: #8080ff; }
|
||||||
|
pre .number { color: #f8660d; }
|
||||||
|
pre .operator { color: #2239a8; font-weight: bold; }
|
||||||
|
pre .preprocessor, pre .prepro { color: #a33243; }
|
||||||
|
pre .global { color: #800080; }
|
||||||
|
pre .user-keyword { color: #800080; }
|
||||||
|
pre .prompt { color: #558817; }
|
||||||
|
pre .url { color: #272fc2; text-decoration: underline; }
|
||||||
|
|
46
mods/3d_armor/.ldoc/parse_crafts.py
Executable file
|
@ -0,0 +1,46 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# This script will parse source files for craft recipes.
|
||||||
|
|
||||||
|
import sys, os, codecs, errno
|
||||||
|
|
||||||
|
|
||||||
|
path = os.path.realpath(__file__)
|
||||||
|
script = os.path.basename(path)
|
||||||
|
d_root = os.path.dirname(os.path.dirname(path))
|
||||||
|
d_ldoc = os.path.join(d_root, ".ldoc")
|
||||||
|
|
||||||
|
craftfile = os.path.realpath(os.path.join(d_root, "3d_armor/armor.lua"))
|
||||||
|
if not os.path.isfile(craftfile):
|
||||||
|
print("ERROR: craft file does not exist for parsing: {}".format(craftfile))
|
||||||
|
sys.exit(errnor.ENOENT)
|
||||||
|
|
||||||
|
buffer = codecs.open(craftfile, "r", "utf-8")
|
||||||
|
if not buffer:
|
||||||
|
print("ERROR: could not open file for reading: {}".format(craftfile))
|
||||||
|
sys.exit(errno.EIO)
|
||||||
|
|
||||||
|
data_in = buffer.read()
|
||||||
|
buffer.close()
|
||||||
|
|
||||||
|
craft = ""
|
||||||
|
|
||||||
|
data_in = data_in.replace("\r\n", "\n").replace("\r", "\n")
|
||||||
|
for sect in data_in.split("\n---"):
|
||||||
|
if "@craft armor" in sect:
|
||||||
|
sect = "---{}".format(sect)
|
||||||
|
for li in sect.split("\n"):
|
||||||
|
if li.startswith("--"):
|
||||||
|
craft = "{}\n{}".format(craft, li)
|
||||||
|
|
||||||
|
outfile = os.path.join(d_ldoc, "crafting.luadoc")
|
||||||
|
|
||||||
|
buffer = codecs.open(outfile, "w", "utf-8")
|
||||||
|
if not buffer:
|
||||||
|
print("ERROR: could not open file for writing: {}".format(outfile))
|
||||||
|
sys.exit(errno.EIO)
|
||||||
|
|
||||||
|
buffer.write("\n--- 3D Armor Crafting\n--\n-- @topic crafting\n\n{}\n".format(craft))
|
||||||
|
buffer.close()
|
||||||
|
|
||||||
|
print("crafts exported to\t{}".format(outfile))
|
118
mods/3d_armor/.ldoc/parse_settings.py
Executable file
|
@ -0,0 +1,118 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# This script will format "settingtypes.txt" file found at the root
|
||||||
|
# of 3d_armor modpack into a format readable by LDoc.
|
||||||
|
|
||||||
|
import sys, os, errno, codecs
|
||||||
|
|
||||||
|
|
||||||
|
path = os.path.realpath(__file__)
|
||||||
|
script = os.path.basename(path)
|
||||||
|
d_root = os.path.dirname(os.path.dirname(path))
|
||||||
|
d_ldoc = os.path.join(d_root, ".ldoc")
|
||||||
|
f_settings = os.path.join(d_root, "settingtypes.txt")
|
||||||
|
|
||||||
|
if not os.path.isfile(f_settings):
|
||||||
|
print("settingtypes.txt does not exist")
|
||||||
|
sys.exit(errno.ENOENT)
|
||||||
|
|
||||||
|
i_stream = codecs.open(f_settings, "r", "utf-8")
|
||||||
|
data_in = i_stream.read()
|
||||||
|
i_stream.close()
|
||||||
|
|
||||||
|
data_in = data_in.replace("\r", "")
|
||||||
|
|
||||||
|
sets = data_in.split("\n\n")
|
||||||
|
|
||||||
|
for idx in reversed(range(len(sets))):
|
||||||
|
set = sets[idx]
|
||||||
|
lines = set.split("\n")
|
||||||
|
for idx2 in reversed(range(len(lines))):
|
||||||
|
li = lines[idx2].strip(" \t")
|
||||||
|
if li == "" or li[0] == "[":
|
||||||
|
lines.pop(idx2)
|
||||||
|
|
||||||
|
if len(lines) == 0:
|
||||||
|
sets.pop(idx)
|
||||||
|
else:
|
||||||
|
sets[idx] = "\n".join(lines)
|
||||||
|
|
||||||
|
filtered = []
|
||||||
|
|
||||||
|
for set in sets:
|
||||||
|
comment = False
|
||||||
|
lines = set.split("\n")
|
||||||
|
new_lines = []
|
||||||
|
for li in lines:
|
||||||
|
if li[0] == "#":
|
||||||
|
new_lines.append(li)
|
||||||
|
else:
|
||||||
|
new_lines.append(li)
|
||||||
|
filtered.append("\n".join(new_lines))
|
||||||
|
new_lines = []
|
||||||
|
|
||||||
|
settings = []
|
||||||
|
|
||||||
|
def parse_setting(set):
|
||||||
|
desc = []
|
||||||
|
setting = summary = stype = sdefault = soptions = None
|
||||||
|
|
||||||
|
for li in set.split("\n"):
|
||||||
|
if li[0] == "#":
|
||||||
|
desc.append("-- {}".format(li.lstrip(" #")))
|
||||||
|
else:
|
||||||
|
setting = li.split(" ")[0]
|
||||||
|
summary = li.split(")")[0].split("(")[-1]
|
||||||
|
li = li.split(")")[-1].strip()
|
||||||
|
rem = li.split(" ")
|
||||||
|
stype = rem[0]
|
||||||
|
rem.pop(0)
|
||||||
|
|
||||||
|
if len(rem) > 0:
|
||||||
|
sdefault = rem[0]
|
||||||
|
rem.pop(0)
|
||||||
|
|
||||||
|
if len(rem) > 0:
|
||||||
|
soptions = " ".join(rem)
|
||||||
|
|
||||||
|
if not setting:
|
||||||
|
return
|
||||||
|
|
||||||
|
st = "---"
|
||||||
|
if summary:
|
||||||
|
if summary[-1] != ".":
|
||||||
|
summary = "{}.".format(summary)
|
||||||
|
st = "{} {}".format(st, summary)
|
||||||
|
|
||||||
|
st = "{}\n--".format(st)
|
||||||
|
|
||||||
|
if len(desc) > 0:
|
||||||
|
st = "{}\n{}\n--".format(st, "\n".join(desc))
|
||||||
|
|
||||||
|
st = "{}\n-- @setting {}".format(st, setting)
|
||||||
|
|
||||||
|
if stype:
|
||||||
|
st = "{}\n-- @settype {}".format(st, stype)
|
||||||
|
|
||||||
|
if sdefault:
|
||||||
|
st = "{}\n-- @default {}".format(st, sdefault)
|
||||||
|
|
||||||
|
# TODO: add options
|
||||||
|
|
||||||
|
settings.append(st)
|
||||||
|
|
||||||
|
for f in filtered:
|
||||||
|
parse_setting(f)
|
||||||
|
|
||||||
|
outfile = os.path.join(d_ldoc, "settings.luadoc")
|
||||||
|
data_out = "\n--- 3D Armor Settings\n--\n-- @topic settings\n\n\n{}\n".format("\n\n".join(settings))
|
||||||
|
|
||||||
|
o_stream = codecs.open(outfile, "w", "utf-8")
|
||||||
|
if not o_stream:
|
||||||
|
print("ERROR: could not open file for writing: {}".format(outfile))
|
||||||
|
sys.exit(errno.EIO)
|
||||||
|
|
||||||
|
o_stream.write(data_out)
|
||||||
|
o_stream.close()
|
||||||
|
|
||||||
|
print("settings exported to\t{}".format(outfile))
|
90
mods/3d_armor/.ldoc/parse_src.py
Executable file
|
@ -0,0 +1,90 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# This script will parse source files for docstring.
|
||||||
|
|
||||||
|
import os, codecs
|
||||||
|
|
||||||
|
|
||||||
|
path = os.path.realpath(__file__)
|
||||||
|
script = os.path.basename(path)
|
||||||
|
d_root = os.path.dirname(os.path.dirname(path))
|
||||||
|
d_ldoc = os.path.join(d_root, ".ldoc")
|
||||||
|
|
||||||
|
|
||||||
|
armor_types = {
|
||||||
|
"armor": {"topic": "Armors", "values": []},
|
||||||
|
"helmet": {"topic": "Helmets", "values": []},
|
||||||
|
"chestplate": {"topic": "Chestplates", "values": []},
|
||||||
|
"leggings": {"topic": "Leggings", "values": []},
|
||||||
|
"boots": {"topic": "Boots", "values": []},
|
||||||
|
#"shield": {"topic": "Shields", "values": []},
|
||||||
|
}
|
||||||
|
|
||||||
|
def parse_file(f):
|
||||||
|
buffer = codecs.open(f, "r", "utf-8")
|
||||||
|
if not buffer:
|
||||||
|
print("ERROR: could not open file for reading: {}".format(f))
|
||||||
|
return
|
||||||
|
|
||||||
|
data_in = buffer.read()
|
||||||
|
buffer.close()
|
||||||
|
|
||||||
|
# format to LF (Unix)
|
||||||
|
data_in = data_in.replace("\r\n", "\n").replace("\r", "\n")
|
||||||
|
|
||||||
|
current_item = []
|
||||||
|
item_type = None
|
||||||
|
new_item = False
|
||||||
|
for li in data_in.split("\n"):
|
||||||
|
li = li.strip()
|
||||||
|
if li.startswith("---"):
|
||||||
|
new_item = True
|
||||||
|
elif not li.startswith("--"):
|
||||||
|
new_item = False
|
||||||
|
|
||||||
|
if new_item:
|
||||||
|
current_item.append(li)
|
||||||
|
if not item_type:
|
||||||
|
for a_type in armor_types:
|
||||||
|
if "@{} ".format(a_type) in li:
|
||||||
|
item_type = a_type
|
||||||
|
break
|
||||||
|
elif item_type and len(current_item):
|
||||||
|
armor_types[item_type]["values"].append("\n".join(current_item))
|
||||||
|
item_type = None
|
||||||
|
current_item = []
|
||||||
|
else:
|
||||||
|
current_item = []
|
||||||
|
|
||||||
|
to_parse = []
|
||||||
|
|
||||||
|
for obj in os.listdir(d_root):
|
||||||
|
fullpath = os.path.join(d_root, obj)
|
||||||
|
if not obj.startswith(".") and os.path.isdir(fullpath):
|
||||||
|
for root, dirs, files in os.walk(fullpath):
|
||||||
|
for f in files:
|
||||||
|
if f.endswith(".lua"):
|
||||||
|
to_parse.append(os.path.join(root, f))
|
||||||
|
|
||||||
|
for p in to_parse:
|
||||||
|
if not os.path.isfile(p):
|
||||||
|
print("ERROR: {} is not a file".format(p))
|
||||||
|
else:
|
||||||
|
parse_file(p)
|
||||||
|
|
||||||
|
for t in armor_types:
|
||||||
|
topic = armor_types[t]["topic"]
|
||||||
|
items = armor_types[t]["values"]
|
||||||
|
|
||||||
|
if len(items):
|
||||||
|
outfile = os.path.join(d_ldoc, "{}.luadoc".format(topic.lower()))
|
||||||
|
|
||||||
|
buffer = codecs.open(outfile, "w", "utf-8")
|
||||||
|
if not buffer:
|
||||||
|
print("ERROR: could not open file for writing: {}".format(outfile))
|
||||||
|
continue
|
||||||
|
|
||||||
|
buffer.write("\n--- 3D Armor {}\n--\n-- @topic {}\n\n\n{}\n".format(topic, topic.lower(), "\n\n".join(items)))
|
||||||
|
buffer.close()
|
||||||
|
|
||||||
|
print("{} exported to\t{}".format(topic.lower(), outfile))
|
|
@ -396,6 +396,8 @@ If all of the above were made of material "wood" the player would recieve an ***
|
||||||
|
|
||||||
## Armor Functions
|
## Armor Functions
|
||||||
|
|
||||||
|
See also: [API Reference](https://minetest-mods.github.io/3d_armor/reference/)
|
||||||
|
|
||||||
### armor set_player_armor
|
### armor set_player_armor
|
||||||
|
|
||||||
armor:set_player_armor(player)
|
armor:set_player_armor(player)
|
||||||
|
|
|
@ -1,3 +1,82 @@
|
||||||
|
|
||||||
|
--- 3D Armor API
|
||||||
|
--
|
||||||
|
-- @topic api
|
||||||
|
|
||||||
|
|
||||||
|
local transparent_armor = minetest.settings:get_bool("armor_transparent", false)
|
||||||
|
|
||||||
|
|
||||||
|
--- Tables
|
||||||
|
--
|
||||||
|
-- @section tables
|
||||||
|
|
||||||
|
--- Armor definition table used for registering armor.
|
||||||
|
--
|
||||||
|
-- @table ArmorDef
|
||||||
|
-- @tfield string description Human-readable name/description.
|
||||||
|
-- @tfield string inventory_image Image filename used for icon.
|
||||||
|
-- @tfield table groups See: `ArmorDef.groups`
|
||||||
|
-- @tfield table armor_groups See: `ArmorDef.armor_groups`
|
||||||
|
-- @tfield table damage_groups See: `ArmorDef.damage_groups`
|
||||||
|
-- @see ItemDef
|
||||||
|
-- @usage local def = {
|
||||||
|
-- description = "Wood Helmet",
|
||||||
|
-- inventory_image = "3d_armor_inv_helmet_wood.png",
|
||||||
|
-- groups = {armor_head=1, armor_heal=0, armor_use=2000, flammable=1},
|
||||||
|
-- armor_groups = {fleshy=5},
|
||||||
|
-- damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
||||||
|
-- }
|
||||||
|
|
||||||
|
--- Groups table.
|
||||||
|
--
|
||||||
|
-- General groups defining item behavior.
|
||||||
|
--
|
||||||
|
-- Some commonly used groups: ***armor\_<type>***, ***armor\_heal***, ***armor\_use***
|
||||||
|
--
|
||||||
|
-- @table ArmorDef.groups
|
||||||
|
-- @tfield int armor_type The armor type. "head", "torso", "hands", "shield", etc.
|
||||||
|
-- (**Note:** replace "type" with actual type).
|
||||||
|
-- @tfield int armor_heal Healing value of armor when equipped.
|
||||||
|
-- @tfield int armor_use Amount of uses/damage before armor "breaks".
|
||||||
|
-- @see groups
|
||||||
|
-- @usage groups = {
|
||||||
|
-- armor_head = 1,
|
||||||
|
-- armor_heal = 5,
|
||||||
|
-- armor_use = 2000,
|
||||||
|
-- flammable = 1,
|
||||||
|
-- }
|
||||||
|
|
||||||
|
--- Armor groups table.
|
||||||
|
--
|
||||||
|
-- Groups that this item is effective against when taking damage.
|
||||||
|
--
|
||||||
|
-- Some commonly used groups: ***fleshy***
|
||||||
|
--
|
||||||
|
-- @table ArmorDef.armor_groups
|
||||||
|
-- @usage armor_groups = {
|
||||||
|
-- fleshy = 5,
|
||||||
|
-- }
|
||||||
|
|
||||||
|
--- Damage groups table.
|
||||||
|
--
|
||||||
|
-- Groups that this item is effective on when used as a weapon/tool.
|
||||||
|
--
|
||||||
|
-- Some commonly used groups: ***cracky***, ***snappy***, ***choppy***, ***crumbly***, ***level***
|
||||||
|
--
|
||||||
|
-- @table ArmorDef.damage_groups
|
||||||
|
-- @see entity_damage_mechanism
|
||||||
|
-- @usage damage_groups = {
|
||||||
|
-- cracky = 3,
|
||||||
|
-- snappy = 2,
|
||||||
|
-- choppy = 3,
|
||||||
|
-- crumbly = 2,
|
||||||
|
-- level = 1,
|
||||||
|
-- }
|
||||||
|
|
||||||
|
--- @section end
|
||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
|
@ -105,8 +184,23 @@ armor.config = {
|
||||||
punch_damage = true,
|
punch_damage = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Armor Registration
|
|
||||||
|
|
||||||
|
--- Methods
|
||||||
|
--
|
||||||
|
-- @section methods
|
||||||
|
|
||||||
|
--- Registers a new armor item.
|
||||||
|
--
|
||||||
|
-- @function armor:register_armor
|
||||||
|
-- @tparam string name Armor item technical name (ex: "3d\_armor:helmet\_gold").
|
||||||
|
-- @tparam ArmorDef def Armor definition table.
|
||||||
|
-- @usage armor:register_armor("3d_armor:helmet_wood", {
|
||||||
|
-- description = "Wood Helmet",
|
||||||
|
-- inventory_image = "3d_armor_inv_helmet_wood.png",
|
||||||
|
-- groups = {armor_head=1, armor_heal=0, armor_use=2000, flammable=1},
|
||||||
|
-- armor_groups = {fleshy=5},
|
||||||
|
-- damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
||||||
|
-- })
|
||||||
armor.register_armor = function(self, name, def)
|
armor.register_armor = function(self, name, def)
|
||||||
def.on_secondary_use = function(itemstack, player)
|
def.on_secondary_use = function(itemstack, player)
|
||||||
return armor:equip(player, itemstack)
|
return armor:equip(player, itemstack)
|
||||||
|
@ -132,6 +226,11 @@ armor.register_armor = function(self, name, def)
|
||||||
minetest.register_tool(name, def)
|
minetest.register_tool(name, def)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Registers a new armor group.
|
||||||
|
--
|
||||||
|
-- @function armor:register_armor_group
|
||||||
|
-- @tparam string group Group ID.
|
||||||
|
-- @tparam int base Base armor value.
|
||||||
armor.register_armor_group = function(self, group, base)
|
armor.register_armor_group = function(self, group, base)
|
||||||
base = base or 100
|
base = base or 100
|
||||||
self.registered_groups[group] = base
|
self.registered_groups[group] = base
|
||||||
|
@ -140,38 +239,92 @@ armor.register_armor_group = function(self, group, base)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Armor callbacks
|
--- Armor Callbacks Registration
|
||||||
|
--
|
||||||
|
-- @section callbacks
|
||||||
|
|
||||||
|
--- Registers a callback for when player visuals are update.
|
||||||
|
--
|
||||||
|
-- @function armor:register_on_update
|
||||||
|
-- @tparam function func Function to be executed.
|
||||||
|
-- @see armor:update_player_visuals
|
||||||
|
-- @usage armor:register_on_update(function(player, index, stack)
|
||||||
|
-- -- code to execute
|
||||||
|
-- end)
|
||||||
armor.register_on_update = function(self, func)
|
armor.register_on_update = function(self, func)
|
||||||
if type(func) == "function" then
|
if type(func) == "function" then
|
||||||
table.insert(self.registered_callbacks.on_update, func)
|
table.insert(self.registered_callbacks.on_update, func)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Registers a callback for when armor is equipped.
|
||||||
|
--
|
||||||
|
-- @function armor:register_on_equip
|
||||||
|
-- @tparam function func Function to be executed.
|
||||||
|
-- @usage armor:register_on_equip(function(player, index, stack)
|
||||||
|
-- -- code to execute
|
||||||
|
-- end)
|
||||||
armor.register_on_equip = function(self, func)
|
armor.register_on_equip = function(self, func)
|
||||||
if type(func) == "function" then
|
if type(func) == "function" then
|
||||||
table.insert(self.registered_callbacks.on_equip, func)
|
table.insert(self.registered_callbacks.on_equip, func)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Registers a callback for when armor is unequipped.
|
||||||
|
--
|
||||||
|
-- @function armor:register_on_unequip
|
||||||
|
-- @tparam function func Function to be executed.
|
||||||
|
-- @usage armor:register_on_unequip(function(player, index, stack)
|
||||||
|
-- -- code to execute
|
||||||
|
-- end)
|
||||||
armor.register_on_unequip = function(self, func)
|
armor.register_on_unequip = function(self, func)
|
||||||
if type(func) == "function" then
|
if type(func) == "function" then
|
||||||
table.insert(self.registered_callbacks.on_unequip, func)
|
table.insert(self.registered_callbacks.on_unequip, func)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Registers a callback for when armor is damaged.
|
||||||
|
--
|
||||||
|
-- @function armor:register_on_damage
|
||||||
|
-- @tparam function func Function to be executed.
|
||||||
|
-- @see armor:damage
|
||||||
|
-- @usage armor:register_on_damage(function(player, index, stack)
|
||||||
|
-- -- code to execute
|
||||||
|
-- end)
|
||||||
armor.register_on_damage = function(self, func)
|
armor.register_on_damage = function(self, func)
|
||||||
if type(func) == "function" then
|
if type(func) == "function" then
|
||||||
table.insert(self.registered_callbacks.on_damage, func)
|
table.insert(self.registered_callbacks.on_damage, func)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Registers a callback for when armor is destroyed.
|
||||||
|
--
|
||||||
|
-- @function armor:register_on_destroy
|
||||||
|
-- @tparam function func Function to be executed.
|
||||||
|
-- @see armor:damage
|
||||||
|
-- @usage armor:register_on_destroy(function(player, index, stack)
|
||||||
|
-- -- code to execute
|
||||||
|
-- end)
|
||||||
armor.register_on_destroy = function(self, func)
|
armor.register_on_destroy = function(self, func)
|
||||||
if type(func) == "function" then
|
if type(func) == "function" then
|
||||||
table.insert(self.registered_callbacks.on_destroy, func)
|
table.insert(self.registered_callbacks.on_destroy, func)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @section end
|
||||||
|
|
||||||
|
|
||||||
|
--- Methods
|
||||||
|
--
|
||||||
|
-- @section methods
|
||||||
|
|
||||||
|
--- Runs callbacks.
|
||||||
|
--
|
||||||
|
-- @function armor:run_callbacks
|
||||||
|
-- @tparam function callback Function to execute.
|
||||||
|
-- @tparam ObjectRef player First parameter passed to callback.
|
||||||
|
-- @tparam int index Second parameter passed to callback.
|
||||||
|
-- @tparam ItemStack stack Callback owner.
|
||||||
armor.run_callbacks = function(self, callback, player, index, stack)
|
armor.run_callbacks = function(self, callback, player, index, stack)
|
||||||
if stack then
|
if stack then
|
||||||
local def = stack:get_definition() or {}
|
local def = stack:get_definition() or {}
|
||||||
|
@ -187,6 +340,10 @@ armor.run_callbacks = function(self, callback, player, index, stack)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Updates visuals.
|
||||||
|
--
|
||||||
|
-- @function armor:update_player_visuals
|
||||||
|
-- @tparam ObjectRef player
|
||||||
armor.update_player_visuals = function(self, player)
|
armor.update_player_visuals = function(self, player)
|
||||||
if not player then
|
if not player then
|
||||||
return
|
return
|
||||||
|
@ -202,10 +359,10 @@ armor.update_player_visuals = function(self, player)
|
||||||
self:run_callbacks("on_update", player)
|
self:run_callbacks("on_update", player)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Sets player's armor attributes.
|
||||||
-- armor is not visible on player model if enabled
|
--
|
||||||
local transparent_armor = minetest.settings:get_bool("armor_transparent", false)
|
-- @function armor:set_player_armor
|
||||||
|
-- @tparam ObjectRef player
|
||||||
armor.set_player_armor = function(self, player)
|
armor.set_player_armor = function(self, player)
|
||||||
local name, armor_inv = self:get_valid_player(player, "[set_player_armor]")
|
local name, armor_inv = self:get_valid_player(player, "[set_player_armor]")
|
||||||
if not name then
|
if not name then
|
||||||
|
@ -366,6 +523,13 @@ armor.set_player_armor = function(self, player)
|
||||||
self:update_player_visuals(player)
|
self:update_player_visuals(player)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Action when armor is punched.
|
||||||
|
--
|
||||||
|
-- @function armor:punch
|
||||||
|
-- @tparam ObjectRef player Player wearing the armor.
|
||||||
|
-- @tparam ObjectRef hitter Entity attacking player.
|
||||||
|
-- @tparam[opt] int time_from_last_punch Time in seconds since last punch action.
|
||||||
|
-- @tparam[opt] table tool_capabilities See `entity_damage_mechanism`.
|
||||||
armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabilities)
|
armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabilities)
|
||||||
local name, armor_inv = self:get_valid_player(player, "[punch]")
|
local name, armor_inv = self:get_valid_player(player, "[punch]")
|
||||||
if not name then
|
if not name then
|
||||||
|
@ -451,6 +615,13 @@ armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabili
|
||||||
self.def[name].count = count
|
self.def[name].count = count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Action when armor is damaged.
|
||||||
|
--
|
||||||
|
-- @function armor:damage
|
||||||
|
-- @tparam ObjectRef player
|
||||||
|
-- @tparam int index Inventory index where armor is equipped.
|
||||||
|
-- @tparam ItemStack stack Armor item receiving damaged.
|
||||||
|
-- @tparam int use Amount of wear to add to armor item.
|
||||||
armor.damage = function(self, player, index, stack, use)
|
armor.damage = function(self, player, index, stack, use)
|
||||||
local old_stack = ItemStack(stack)
|
local old_stack = ItemStack(stack)
|
||||||
local worn_armor = armor:get_weared_armor_elements(player)
|
local worn_armor = armor:get_weared_armor_elements(player)
|
||||||
|
@ -469,6 +640,11 @@ armor.damage = function(self, player, index, stack, use)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Get elements of equipped armor.
|
||||||
|
--
|
||||||
|
-- @function armor:get_weared_armor_elements
|
||||||
|
-- @tparam ObjectRef player
|
||||||
|
-- @treturn table List of equipped armors.
|
||||||
armor.get_weared_armor_elements = function(self, player)
|
armor.get_weared_armor_elements = function(self, player)
|
||||||
local name, inv = self:get_valid_player(player, "[get_weared_armor]")
|
local name, inv = self:get_valid_player(player, "[get_weared_armor]")
|
||||||
local weared_armor = {}
|
local weared_armor = {}
|
||||||
|
@ -485,40 +661,71 @@ armor.get_weared_armor_elements = function(self, player)
|
||||||
return weared_armor
|
return weared_armor
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Equips a piece of armor to a player.
|
||||||
|
--
|
||||||
|
-- @function armor:equip
|
||||||
|
-- @tparam ObjectRef player Player to whom item is equipped.
|
||||||
|
-- @tparam ItemStack itemstack Armor item to be equipped.
|
||||||
|
-- @treturn ItemStack Leftover item stack.
|
||||||
armor.equip = function(self, player, itemstack)
|
armor.equip = function(self, player, itemstack)
|
||||||
local name, armor_inv = self:get_valid_player(player, "[equip]")
|
local name, armor_inv = self:get_valid_player(player, "[equip]")
|
||||||
local weared_armor = self:get_weared_armor_elements(player)
|
|
||||||
local armor_element = self:get_element(itemstack:get_name())
|
local armor_element = self:get_element(itemstack:get_name())
|
||||||
if name and armor_element then
|
if name and armor_element then
|
||||||
if weared_armor[armor_element] ~= nil then
|
local index
|
||||||
|
for i=1, armor_inv:get_size("armor") do
|
||||||
|
local stack = armor_inv:get_stack("armor", i)
|
||||||
|
if self:get_element(stack:get_name()) == armor_element then
|
||||||
|
index = i
|
||||||
self:unequip(player, armor_element)
|
self:unequip(player, armor_element)
|
||||||
|
break
|
||||||
|
elseif not index and stack:is_empty() then
|
||||||
|
index = i
|
||||||
end
|
end
|
||||||
armor_inv:add_item("armor", itemstack:take_item())
|
end
|
||||||
|
local stack = itemstack:take_item()
|
||||||
|
armor_inv:set_stack("armor", index, stack)
|
||||||
|
self:run_callbacks("on_equip", player, index, stack)
|
||||||
self:set_player_armor(player)
|
self:set_player_armor(player)
|
||||||
self:save_armor_inventory(player)
|
self:save_armor_inventory(player)
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Unequips a piece of armor from a player.
|
||||||
|
--
|
||||||
|
-- @function armor:unequip
|
||||||
|
-- @tparam ObjectRef player Player from whom item is removed.
|
||||||
|
-- @tparam string armor_element Armor type identifier associated with the item
|
||||||
|
-- to be removed ("head", "torso", "hands", "shield", "legs", "feet", etc.).
|
||||||
armor.unequip = function(self, player, armor_element)
|
armor.unequip = function(self, player, armor_element)
|
||||||
local name, armor_inv = self:get_valid_player(player, "[unequip]")
|
local name, armor_inv = self:get_valid_player(player, "[unequip]")
|
||||||
local weared_armor = self:get_weared_armor_elements(player)
|
if not name then
|
||||||
if not name or not weared_armor[armor_element] then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local itemstack = armor_inv:remove_item("armor", ItemStack(weared_armor[armor_element]))
|
for i=1, armor_inv:get_size("armor") do
|
||||||
|
local stack = armor_inv:get_stack("armor", i)
|
||||||
|
if self:get_element(stack:get_name()) == armor_element then
|
||||||
|
armor_inv:set_stack("armor", i, "")
|
||||||
minetest.after(0, function()
|
minetest.after(0, function()
|
||||||
local inv = player:get_inventory()
|
local inv = player:get_inventory()
|
||||||
if inv:room_for_item("main", itemstack) then
|
if inv:room_for_item("main", stack) then
|
||||||
inv:add_item("main", itemstack)
|
inv:add_item("main", stack)
|
||||||
else
|
else
|
||||||
minetest.add_item(player:get_pos(), itemstack)
|
minetest.add_item(player:get_pos(), stack)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
self:run_callbacks("on_unequip", player, i, stack)
|
||||||
self:set_player_armor(player)
|
self:set_player_armor(player)
|
||||||
self:save_armor_inventory(player)
|
self:save_armor_inventory(player)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Removes all armor worn by player.
|
||||||
|
--
|
||||||
|
-- @function armor:remove_all
|
||||||
|
-- @tparam ObjectRef player
|
||||||
armor.remove_all = function(self, player)
|
armor.remove_all = function(self, player)
|
||||||
local name, inv = self:get_valid_player(player, "[remove_all]")
|
local name, inv = self:get_valid_player(player, "[remove_all]")
|
||||||
if not name then
|
if not name then
|
||||||
|
@ -531,6 +738,11 @@ end
|
||||||
|
|
||||||
local skin_mod
|
local skin_mod
|
||||||
|
|
||||||
|
--- Retrieves player's current skin.
|
||||||
|
--
|
||||||
|
-- @function armor:get_player_skin
|
||||||
|
-- @tparam string name Player name.
|
||||||
|
-- @treturn string Skin filename.
|
||||||
armor.get_player_skin = function(self, name)
|
armor.get_player_skin = function(self, name)
|
||||||
if (skin_mod == "skins" or skin_mod == "simple_skins") and skins.skins[name] then
|
if (skin_mod == "skins" or skin_mod == "simple_skins") and skins.skins[name] then
|
||||||
return skins.skins[name]..".png"
|
return skins.skins[name]..".png"
|
||||||
|
@ -542,6 +754,10 @@ armor.get_player_skin = function(self, name)
|
||||||
return armor.default_skin..".png"
|
return armor.default_skin..".png"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Updates skin.
|
||||||
|
--
|
||||||
|
-- @function armor:update_skin
|
||||||
|
-- @tparam string name Player name.
|
||||||
armor.update_skin = function(self, name)
|
armor.update_skin = function(self, name)
|
||||||
minetest.after(0, function()
|
minetest.after(0, function()
|
||||||
local pplayer = minetest.get_player_by_name(name)
|
local pplayer = minetest.get_player_by_name(name)
|
||||||
|
@ -552,10 +768,19 @@ armor.update_skin = function(self, name)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Adds preview for armor inventory.
|
||||||
|
--
|
||||||
|
-- @function armor:add_preview
|
||||||
|
-- @tparam string preview Preview image filename.
|
||||||
armor.add_preview = function(self, preview)
|
armor.add_preview = function(self, preview)
|
||||||
skin_previews[preview] = true
|
skin_previews[preview] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Retrieves preview for armor inventory.
|
||||||
|
--
|
||||||
|
-- @function armor:get_preview
|
||||||
|
-- @tparam string name Player name.
|
||||||
|
-- @treturn string Preview image filename.
|
||||||
armor.get_preview = function(self, name)
|
armor.get_preview = function(self, name)
|
||||||
local preview = string.gsub(armor:get_player_skin(name), ".png", "_preview.png")
|
local preview = string.gsub(armor:get_player_skin(name), ".png", "_preview.png")
|
||||||
if skin_previews[preview] then
|
if skin_previews[preview] then
|
||||||
|
@ -564,6 +789,12 @@ armor.get_preview = function(self, name)
|
||||||
return "character_preview.png"
|
return "character_preview.png"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Retrieves armor formspec.
|
||||||
|
--
|
||||||
|
-- @function armor:get_armor_formspec
|
||||||
|
-- @tparam string name Player name.
|
||||||
|
-- @tparam[opt] bool listring Use `listring` formspec element (default: `false`).
|
||||||
|
-- @treturn string Formspec formatted string.
|
||||||
armor.get_armor_formspec = function(self, name, listring)
|
armor.get_armor_formspec = function(self, name, listring)
|
||||||
if armor.def[name].init_time == 0 then
|
if armor.def[name].init_time == 0 then
|
||||||
return "label[0,0;Armor not initialized!]"
|
return "label[0,0;Armor not initialized!]"
|
||||||
|
@ -586,6 +817,11 @@ armor.get_armor_formspec = function(self, name, listring)
|
||||||
return formspec
|
return formspec
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Retrieves element.
|
||||||
|
--
|
||||||
|
-- @function armor:get_element
|
||||||
|
-- @tparam string item_name
|
||||||
|
-- @return Armor element.
|
||||||
armor.get_element = function(self, item_name)
|
armor.get_element = function(self, item_name)
|
||||||
for _, element in pairs(armor.elements) do
|
for _, element in pairs(armor.elements) do
|
||||||
if minetest.get_item_group(item_name, "armor_"..element) > 0 then
|
if minetest.get_item_group(item_name, "armor_"..element) > 0 then
|
||||||
|
@ -594,6 +830,11 @@ armor.get_element = function(self, item_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Serializes armor inventory.
|
||||||
|
--
|
||||||
|
-- @function armor:serialize_inventory_list
|
||||||
|
-- @tparam table list Inventory contents.
|
||||||
|
-- @treturn string
|
||||||
armor.serialize_inventory_list = function(self, list)
|
armor.serialize_inventory_list = function(self, list)
|
||||||
local list_table = {}
|
local list_table = {}
|
||||||
for _, stack in ipairs(list) do
|
for _, stack in ipairs(list) do
|
||||||
|
@ -602,6 +843,11 @@ armor.serialize_inventory_list = function(self, list)
|
||||||
return minetest.serialize(list_table)
|
return minetest.serialize(list_table)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Deserializes armor inventory.
|
||||||
|
--
|
||||||
|
-- @function armor:deserialize_inventory_list
|
||||||
|
-- @tparam string list_string Serialized inventory contents.
|
||||||
|
-- @treturn table
|
||||||
armor.deserialize_inventory_list = function(self, list_string)
|
armor.deserialize_inventory_list = function(self, list_string)
|
||||||
local list_table = minetest.deserialize(list_string)
|
local list_table = minetest.deserialize(list_string)
|
||||||
local list = {}
|
local list = {}
|
||||||
|
@ -611,6 +857,11 @@ armor.deserialize_inventory_list = function(self, list_string)
|
||||||
return list
|
return list
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Loads armor inventory.
|
||||||
|
--
|
||||||
|
-- @function armor:load_armor_inventory
|
||||||
|
-- @tparam ObjectRef player
|
||||||
|
-- @treturn bool
|
||||||
armor.load_armor_inventory = function(self, player)
|
armor.load_armor_inventory = function(self, player)
|
||||||
local _, inv = self:get_valid_player(player, "[load_armor_inventory]")
|
local _, inv = self:get_valid_player(player, "[load_armor_inventory]")
|
||||||
if inv then
|
if inv then
|
||||||
|
@ -624,6 +875,12 @@ armor.load_armor_inventory = function(self, player)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Saves armor inventory.
|
||||||
|
--
|
||||||
|
-- Inventory is stored in `PlayerMetaRef` string "3d\_armor\_inventory".
|
||||||
|
--
|
||||||
|
-- @function armor:save_armor_inventory
|
||||||
|
-- @tparam ObjectRef player
|
||||||
armor.save_armor_inventory = function(self, player)
|
armor.save_armor_inventory = function(self, player)
|
||||||
local _, inv = self:get_valid_player(player, "[save_armor_inventory]")
|
local _, inv = self:get_valid_player(player, "[save_armor_inventory]")
|
||||||
if inv then
|
if inv then
|
||||||
|
@ -633,10 +890,22 @@ armor.save_armor_inventory = function(self, player)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Updates inventory.
|
||||||
|
--
|
||||||
|
-- DEPRECATED: Legacy inventory support.
|
||||||
|
--
|
||||||
|
-- @function armor:update_inventory
|
||||||
|
-- @param player
|
||||||
armor.update_inventory = function(self, player)
|
armor.update_inventory = function(self, player)
|
||||||
-- DEPRECATED: Legacy inventory support
|
-- DEPRECATED: Legacy inventory support
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Sets inventory stack.
|
||||||
|
--
|
||||||
|
-- @function armor:set_inventory_stack
|
||||||
|
-- @tparam ObjectRef player
|
||||||
|
-- @tparam int i Armor inventory index.
|
||||||
|
-- @tparam ItemStack stack Armor item.
|
||||||
armor.set_inventory_stack = function(self, player, i, stack)
|
armor.set_inventory_stack = function(self, player, i, stack)
|
||||||
local _, inv = self:get_valid_player(player, "[set_inventory_stack]")
|
local _, inv = self:get_valid_player(player, "[set_inventory_stack]")
|
||||||
if inv then
|
if inv then
|
||||||
|
@ -645,6 +914,13 @@ armor.set_inventory_stack = function(self, player, i, stack)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Checks for a player that can use armor.
|
||||||
|
--
|
||||||
|
-- @function armor:get_valid_player
|
||||||
|
-- @tparam ObjectRef player
|
||||||
|
-- @tparam string msg Additional info for log messages.
|
||||||
|
-- @treturn list Player name & armor inventory.
|
||||||
|
-- @usage local name, inv = armor:get_valid_player(player, "[equip]")
|
||||||
armor.get_valid_player = function(self, player, msg)
|
armor.get_valid_player = function(self, player, msg)
|
||||||
msg = msg or ""
|
msg = msg or ""
|
||||||
if not player then
|
if not player then
|
||||||
|
@ -666,6 +942,10 @@ armor.get_valid_player = function(self, player, msg)
|
||||||
return name, inv
|
return name, inv
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Drops armor item at given position.
|
||||||
|
--
|
||||||
|
-- @tparam vector pos
|
||||||
|
-- @tparam ItemStack stack Armor item to be dropped.
|
||||||
armor.drop_armor = function(pos, stack)
|
armor.drop_armor = function(pos, stack)
|
||||||
local node = minetest.get_node_or_nil(pos)
|
local node = minetest.get_node_or_nil(pos)
|
||||||
if node then
|
if node then
|
||||||
|
@ -679,6 +959,8 @@ end
|
||||||
--- Allows skin mod to be set manually.
|
--- Allows skin mod to be set manually.
|
||||||
--
|
--
|
||||||
-- Useful for skin mod forks that do not use the same name.
|
-- Useful for skin mod forks that do not use the same name.
|
||||||
|
--
|
||||||
|
-- @tparam string mod Name of skin mod. Recognized names are "simple\_skins", "u\_skins", & "wardrobe".
|
||||||
armor.set_skin_mod = function(mod)
|
armor.set_skin_mod = function(mod)
|
||||||
skin_mod = mod
|
skin_mod = mod
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,23 @@
|
||||||
|
|
||||||
|
--- Registered armors.
|
||||||
|
--
|
||||||
|
-- @topic armor
|
||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = armor.get_translator
|
local S = armor.get_translator
|
||||||
|
|
||||||
|
|
||||||
|
--- Admin Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_admin
|
||||||
|
-- @img 3d_armor_inv_helmet_admin.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 100
|
||||||
|
-- @grp armor_use 0
|
||||||
|
-- @grp armor_water 1
|
||||||
|
-- @grp not_in_creative_inventory 1
|
||||||
|
-- @armorgrp fleshy 100
|
||||||
armor:register_armor("3d_armor:helmet_admin", {
|
armor:register_armor("3d_armor:helmet_admin", {
|
||||||
description = S("Admin Helmet"),
|
description = S("Admin Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_admin.png",
|
inventory_image = "3d_armor_inv_helmet_admin.png",
|
||||||
|
@ -12,6 +29,15 @@ armor:register_armor("3d_armor:helmet_admin", {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
--- Admin Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_admin
|
||||||
|
-- @img 3d_armor_inv_chestplate_admin.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 100
|
||||||
|
-- @grp armor_use 0
|
||||||
|
-- @grp not_in_creative_inventory 1
|
||||||
|
-- @armorgrp fleshy 100
|
||||||
armor:register_armor("3d_armor:chestplate_admin", {
|
armor:register_armor("3d_armor:chestplate_admin", {
|
||||||
description = S("Admin Chestplate"),
|
description = S("Admin Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_admin.png",
|
inventory_image = "3d_armor_inv_chestplate_admin.png",
|
||||||
|
@ -23,6 +49,15 @@ armor:register_armor("3d_armor:chestplate_admin", {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
--- Admin Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_admin
|
||||||
|
-- @img 3d_armor_inv_leggings_admin.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 100
|
||||||
|
-- @grp armor_use 0
|
||||||
|
-- @grp not_in_creative_inventory 1
|
||||||
|
-- @armorgrp fleshy 100
|
||||||
armor:register_armor("3d_armor:leggings_admin", {
|
armor:register_armor("3d_armor:leggings_admin", {
|
||||||
description = S("Admin Leggings"),
|
description = S("Admin Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_admin.png",
|
inventory_image = "3d_armor_inv_leggings_admin.png",
|
||||||
|
@ -34,6 +69,15 @@ armor:register_armor("3d_armor:leggings_admin", {
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
--- Admin Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_admin
|
||||||
|
-- @img 3d_armor_inv_boots_admin.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 100
|
||||||
|
-- @grp armor_use 0
|
||||||
|
-- @grp not_in_creative_inventory 1
|
||||||
|
-- @armorgrp fleshy 100
|
||||||
armor:register_armor("3d_armor:boots_admin", {
|
armor:register_armor("3d_armor:boots_admin", {
|
||||||
description = S("Admin Boots"),
|
description = S("Admin Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_admin.png",
|
inventory_image = "3d_armor_inv_boots_admin.png",
|
||||||
|
@ -50,7 +94,28 @@ minetest.register_alias("adminhelmet", "3d_armor:helmet_admin")
|
||||||
minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin")
|
minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin")
|
||||||
minetest.register_alias("adminleggings", "3d_armor:leggings_admin")
|
minetest.register_alias("adminleggings", "3d_armor:leggings_admin")
|
||||||
|
|
||||||
|
|
||||||
|
--- Wood
|
||||||
|
--
|
||||||
|
-- Requires setting `armor_material_wood`.
|
||||||
|
--
|
||||||
|
-- @section wood
|
||||||
|
|
||||||
if armor.materials.wood then
|
if armor.materials.wood then
|
||||||
|
--- Wood Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_wood
|
||||||
|
-- @img 3d_armor_inv_helmet_wood.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 2000
|
||||||
|
-- @grp flammable 1
|
||||||
|
-- @armorgrp fleshy 5
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 3
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:helmet_wood", {
|
armor:register_armor("3d_armor:helmet_wood", {
|
||||||
description = S("Wood Helmet"),
|
description = S("Wood Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_wood.png",
|
inventory_image = "3d_armor_inv_helmet_wood.png",
|
||||||
|
@ -58,6 +123,20 @@ if armor.materials.wood then
|
||||||
armor_groups = {fleshy=5},
|
armor_groups = {fleshy=5},
|
||||||
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
||||||
})
|
})
|
||||||
|
--- Wood Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_wood
|
||||||
|
-- @img 3d_armor_inv_chestplate_wood.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 2000
|
||||||
|
-- @grp flammable 1
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 3
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:chestplate_wood", {
|
armor:register_armor("3d_armor:chestplate_wood", {
|
||||||
description = S("Wood Chestplate"),
|
description = S("Wood Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_wood.png",
|
inventory_image = "3d_armor_inv_chestplate_wood.png",
|
||||||
|
@ -65,6 +144,20 @@ if armor.materials.wood then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
||||||
})
|
})
|
||||||
|
--- Wood Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_wood
|
||||||
|
-- @img 3d_armor_inv_leggings_wood.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @grp flammable 1
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 3
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:leggings_wood", {
|
armor:register_armor("3d_armor:leggings_wood", {
|
||||||
description = S("Wood Leggings"),
|
description = S("Wood Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_wood.png",
|
inventory_image = "3d_armor_inv_leggings_wood.png",
|
||||||
|
@ -72,6 +165,20 @@ if armor.materials.wood then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
|
||||||
})
|
})
|
||||||
|
--- Wood Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_wood
|
||||||
|
-- @img 3d_armor_inv_boots_wood.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 2000
|
||||||
|
-- @grp flammable 1
|
||||||
|
-- @armorgrp fleshy 5
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 3
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:boots_wood", {
|
armor:register_armor("3d_armor:boots_wood", {
|
||||||
description = S("Wood Boots"),
|
description = S("Wood Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_wood.png",
|
inventory_image = "3d_armor_inv_boots_wood.png",
|
||||||
|
@ -94,7 +201,27 @@ if armor.materials.wood then
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Cactus
|
||||||
|
--
|
||||||
|
-- Requires setting `armor_material_cactus`.
|
||||||
|
--
|
||||||
|
-- @section cactus
|
||||||
|
|
||||||
if armor.materials.cactus then
|
if armor.materials.cactus then
|
||||||
|
--- Cactus Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_cactus
|
||||||
|
-- @img 3d_armor_inv_helmet_cactus.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @armorgrp fleshy 5
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:helmet_cactus", {
|
armor:register_armor("3d_armor:helmet_cactus", {
|
||||||
description = S("Cactus Helmet"),
|
description = S("Cactus Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_cactus.png",
|
inventory_image = "3d_armor_inv_helmet_cactus.png",
|
||||||
|
@ -102,6 +229,19 @@ if armor.materials.cactus then
|
||||||
armor_groups = {fleshy=5},
|
armor_groups = {fleshy=5},
|
||||||
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
|
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
|
||||||
})
|
})
|
||||||
|
--- Cactus Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_cactus
|
||||||
|
-- @img 3d_armor_inv_chestplate_cactus.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:chestplate_cactus", {
|
armor:register_armor("3d_armor:chestplate_cactus", {
|
||||||
description = S("Cactus Chestplate"),
|
description = S("Cactus Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_cactus.png",
|
inventory_image = "3d_armor_inv_chestplate_cactus.png",
|
||||||
|
@ -109,6 +249,19 @@ if armor.materials.cactus then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
|
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
|
||||||
})
|
})
|
||||||
|
--- Cactus Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_cactus
|
||||||
|
-- @img 3d_armor_inv_leggings_cactus.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:leggings_cactus", {
|
armor:register_armor("3d_armor:leggings_cactus", {
|
||||||
description = S("Cactus Leggings"),
|
description = S("Cactus Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_cactus.png",
|
inventory_image = "3d_armor_inv_leggings_cactus.png",
|
||||||
|
@ -116,6 +269,19 @@ if armor.materials.cactus then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
|
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
|
||||||
})
|
})
|
||||||
|
--- Cactus Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_cactus
|
||||||
|
-- @img 3d_armor_inv_boots_cactus.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @armorgrp fleshy 5
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("3d_armor:boots_cactus", {
|
armor:register_armor("3d_armor:boots_cactus", {
|
||||||
description = S("Cactus Boots"),
|
description = S("Cactus Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_cactus.png",
|
inventory_image = "3d_armor_inv_boots_cactus.png",
|
||||||
|
@ -138,7 +304,29 @@ if armor.materials.cactus then
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Steel
|
||||||
|
--
|
||||||
|
-- Requires setting `armor_material_steel`.
|
||||||
|
--
|
||||||
|
-- @section steel
|
||||||
|
|
||||||
if armor.materials.steel then
|
if armor.materials.steel then
|
||||||
|
--- Steel Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_steel
|
||||||
|
-- @img 3d_armor_inv_helmet_steel.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 800
|
||||||
|
-- @grp physics_speed -0.01
|
||||||
|
-- @grp physica_gravity 0.01
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:helmet_steel", {
|
armor:register_armor("3d_armor:helmet_steel", {
|
||||||
description = S("Steel Helmet"),
|
description = S("Steel Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_steel.png",
|
inventory_image = "3d_armor_inv_helmet_steel.png",
|
||||||
|
@ -147,6 +335,21 @@ if armor.materials.steel then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
|
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
|
||||||
})
|
})
|
||||||
|
--- Steel Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_steel
|
||||||
|
-- @img 3d_armor_inv_chestplate_steel.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 800
|
||||||
|
-- @grp physics_speed
|
||||||
|
-- @grp physics_gravity
|
||||||
|
-- @armorgrp fleshy
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:chestplate_steel", {
|
armor:register_armor("3d_armor:chestplate_steel", {
|
||||||
description = S("Steel Chestplate"),
|
description = S("Steel Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_steel.png",
|
inventory_image = "3d_armor_inv_chestplate_steel.png",
|
||||||
|
@ -155,6 +358,21 @@ if armor.materials.steel then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
|
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
|
||||||
})
|
})
|
||||||
|
--- Steel Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_steel
|
||||||
|
-- @img 3d_armor_inv_leggings_steel.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 800
|
||||||
|
-- @grp physics_speed -0.03
|
||||||
|
-- @grp physics_gravity 0.03
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:leggings_steel", {
|
armor:register_armor("3d_armor:leggings_steel", {
|
||||||
description = S("Steel Leggings"),
|
description = S("Steel Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_steel.png",
|
inventory_image = "3d_armor_inv_leggings_steel.png",
|
||||||
|
@ -163,6 +381,21 @@ if armor.materials.steel then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
|
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
|
||||||
})
|
})
|
||||||
|
--- Steel Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_steel
|
||||||
|
-- @img 3d_armor_inv_boots_steel.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 800
|
||||||
|
-- @grp physics_speed -0.01
|
||||||
|
-- @grp physics_gravity 0.01
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:boots_steel", {
|
armor:register_armor("3d_armor:boots_steel", {
|
||||||
description = S("Steel Boots"),
|
description = S("Steel Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_steel.png",
|
inventory_image = "3d_armor_inv_boots_steel.png",
|
||||||
|
@ -173,7 +406,29 @@ if armor.materials.steel then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Bronze
|
||||||
|
--
|
||||||
|
-- Requires setting `armor_material_bronze`.
|
||||||
|
--
|
||||||
|
-- @section bronze
|
||||||
|
|
||||||
if armor.materials.bronze then
|
if armor.materials.bronze then
|
||||||
|
--- Bronze Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_bronze
|
||||||
|
-- @img 3d_armor_inv_helmet_bronze.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 400
|
||||||
|
-- @grp physics_speed -0.01
|
||||||
|
-- @grp physics_gravity 0.01
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:helmet_bronze", {
|
armor:register_armor("3d_armor:helmet_bronze", {
|
||||||
description = S("Bronze Helmet"),
|
description = S("Bronze Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_bronze.png",
|
inventory_image = "3d_armor_inv_helmet_bronze.png",
|
||||||
|
@ -182,6 +437,21 @@ if armor.materials.bronze then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
|
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
|
||||||
})
|
})
|
||||||
|
--- Bronze Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_bronze
|
||||||
|
-- @img 3d_armor_inv_chestplate_bronze.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 400
|
||||||
|
-- @grp physics_speed -0.04
|
||||||
|
-- @grp physics_gravity 0.04
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:chestplate_bronze", {
|
armor:register_armor("3d_armor:chestplate_bronze", {
|
||||||
description = S("Bronze Chestplate"),
|
description = S("Bronze Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_bronze.png",
|
inventory_image = "3d_armor_inv_chestplate_bronze.png",
|
||||||
|
@ -190,6 +460,21 @@ if armor.materials.bronze then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
|
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
|
||||||
})
|
})
|
||||||
|
--- Bronze Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_bronze
|
||||||
|
-- @img 3d_armor_inv_leggings_bronze.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 400
|
||||||
|
-- @grp physics_speed -0.03
|
||||||
|
-- @grp physics_gravity 0.03
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:leggings_bronze", {
|
armor:register_armor("3d_armor:leggings_bronze", {
|
||||||
description = S("Bronze Leggings"),
|
description = S("Bronze Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_bronze.png",
|
inventory_image = "3d_armor_inv_leggings_bronze.png",
|
||||||
|
@ -198,6 +483,21 @@ if armor.materials.bronze then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
|
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
|
||||||
})
|
})
|
||||||
|
--- Bronze Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_bronze
|
||||||
|
-- @img 3d_armor_inv_boots_bronze.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 400
|
||||||
|
-- @grp physics_speed -0.01
|
||||||
|
-- @grp physics_gravity 0.01
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:boots_bronze", {
|
armor:register_armor("3d_armor:boots_bronze", {
|
||||||
description = S("Bronze Boots"),
|
description = S("Bronze Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_bronze.png",
|
inventory_image = "3d_armor_inv_boots_bronze.png",
|
||||||
|
@ -208,7 +508,26 @@ if armor.materials.bronze then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Diamond
|
||||||
|
--
|
||||||
|
-- Requires setting `armor_material_diamond`.
|
||||||
|
--
|
||||||
|
-- @section diamond
|
||||||
|
|
||||||
if armor.materials.diamond then
|
if armor.materials.diamond then
|
||||||
|
--- Diamond Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_diamond
|
||||||
|
-- @img 3d_armor_inv_helmet_diamond.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp choppy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:helmet_diamond", {
|
armor:register_armor("3d_armor:helmet_diamond", {
|
||||||
description = S("Diamond Helmet"),
|
description = S("Diamond Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_diamond.png",
|
inventory_image = "3d_armor_inv_helmet_diamond.png",
|
||||||
|
@ -216,6 +535,18 @@ if armor.materials.diamond then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Diamond Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_diamond
|
||||||
|
-- @img 3d_armor_inv_chestplate_diamond.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp choppy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:chestplate_diamond", {
|
armor:register_armor("3d_armor:chestplate_diamond", {
|
||||||
description = S("Diamond Chestplate"),
|
description = S("Diamond Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_diamond.png",
|
inventory_image = "3d_armor_inv_chestplate_diamond.png",
|
||||||
|
@ -223,6 +554,18 @@ if armor.materials.diamond then
|
||||||
armor_groups = {fleshy=20},
|
armor_groups = {fleshy=20},
|
||||||
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Diamond Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_diamond
|
||||||
|
-- @img 3d_armor_inv_leggings_diamond.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp choppy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:leggings_diamond", {
|
armor:register_armor("3d_armor:leggings_diamond", {
|
||||||
description = S("Diamond Leggings"),
|
description = S("Diamond Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_diamond.png",
|
inventory_image = "3d_armor_inv_leggings_diamond.png",
|
||||||
|
@ -230,6 +573,18 @@ if armor.materials.diamond then
|
||||||
armor_groups = {fleshy=20},
|
armor_groups = {fleshy=20},
|
||||||
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Diamond Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_diamond
|
||||||
|
-- @img 3d_armor_inv_boots_diamond.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp choppy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:boots_diamond", {
|
armor:register_armor("3d_armor:boots_diamond", {
|
||||||
description = S("Diamond Boots"),
|
description = S("Diamond Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_diamond.png",
|
inventory_image = "3d_armor_inv_boots_diamond.png",
|
||||||
|
@ -239,7 +594,29 @@ if armor.materials.diamond then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Gold
|
||||||
|
--
|
||||||
|
-- Requires `armor_material_gold`.
|
||||||
|
--
|
||||||
|
-- @section gold
|
||||||
|
|
||||||
if armor.materials.gold then
|
if armor.materials.gold then
|
||||||
|
--- Gold Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_gold
|
||||||
|
-- @img 3d_armor_inv_helmet_gold.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 300
|
||||||
|
-- @grp physics_speed -0.02
|
||||||
|
-- @grp physics_gravity 0.02
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 1
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 3
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:helmet_gold", {
|
armor:register_armor("3d_armor:helmet_gold", {
|
||||||
description = S("Gold Helmet"),
|
description = S("Gold Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_gold.png",
|
inventory_image = "3d_armor_inv_helmet_gold.png",
|
||||||
|
@ -248,6 +625,21 @@ if armor.materials.gold then
|
||||||
armor_groups = {fleshy=10},
|
armor_groups = {fleshy=10},
|
||||||
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
})
|
})
|
||||||
|
--- Gold Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_gold
|
||||||
|
-- @img 3d_armor_inv_chestplate_gold.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 300
|
||||||
|
-- @grp physics_speed -0.05
|
||||||
|
-- @grp physics_gravity 0.05
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 1
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 3
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:chestplate_gold", {
|
armor:register_armor("3d_armor:chestplate_gold", {
|
||||||
description = S("Gold Chestplate"),
|
description = S("Gold Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_gold.png",
|
inventory_image = "3d_armor_inv_chestplate_gold.png",
|
||||||
|
@ -256,6 +648,21 @@ if armor.materials.gold then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
})
|
})
|
||||||
|
--- Gold Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_gold
|
||||||
|
-- @img 3d_armor_inv_leggings_gold.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 300
|
||||||
|
-- @grp physics_speed -0.04
|
||||||
|
-- @grp physics_gravity 0.04
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 1
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 3
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:leggings_gold", {
|
armor:register_armor("3d_armor:leggings_gold", {
|
||||||
description = S("Gold Leggings"),
|
description = S("Gold Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_gold.png",
|
inventory_image = "3d_armor_inv_leggings_gold.png",
|
||||||
|
@ -264,6 +671,21 @@ if armor.materials.gold then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
|
||||||
})
|
})
|
||||||
|
--- Gold Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_gold
|
||||||
|
-- @img 3d_armor_inv_boots_gold.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 300
|
||||||
|
-- @grp physics_speed -0.02
|
||||||
|
-- @grp physics_gravity 0.02
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 1
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 3
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("3d_armor:boots_gold", {
|
armor:register_armor("3d_armor:boots_gold", {
|
||||||
description = S("Gold Boots"),
|
description = S("Gold Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_gold.png",
|
inventory_image = "3d_armor_inv_boots_gold.png",
|
||||||
|
@ -274,7 +696,25 @@ if armor.materials.gold then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Mithril
|
||||||
|
--
|
||||||
|
-- Requires `armor_material_mithril`.
|
||||||
|
--
|
||||||
|
-- @section mithril
|
||||||
|
|
||||||
if armor.materials.mithril then
|
if armor.materials.mithril then
|
||||||
|
--- Mithril Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_mithril
|
||||||
|
-- @img 3d_armor_inv_helmet_mithril.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:helmet_mithril", {
|
armor:register_armor("3d_armor:helmet_mithril", {
|
||||||
description = S("Mithril Helmet"),
|
description = S("Mithril Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_mithril.png",
|
inventory_image = "3d_armor_inv_helmet_mithril.png",
|
||||||
|
@ -282,6 +722,17 @@ if armor.materials.mithril then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=2, snappy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Mithril Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_mithril
|
||||||
|
-- @img 3d_armor_inv_chestplate_mithril.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:chestplate_mithril", {
|
armor:register_armor("3d_armor:chestplate_mithril", {
|
||||||
description = S("Mithril Chestplate"),
|
description = S("Mithril Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_mithril.png",
|
inventory_image = "3d_armor_inv_chestplate_mithril.png",
|
||||||
|
@ -289,6 +740,17 @@ if armor.materials.mithril then
|
||||||
armor_groups = {fleshy=20},
|
armor_groups = {fleshy=20},
|
||||||
damage_groups = {cracky=2, snappy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Mithril Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_mithril
|
||||||
|
-- @img 3d_armor_inv_leggings_mithril.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:leggings_mithril", {
|
armor:register_armor("3d_armor:leggings_mithril", {
|
||||||
description = S("Mithril Leggings"),
|
description = S("Mithril Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_mithril.png",
|
inventory_image = "3d_armor_inv_leggings_mithril.png",
|
||||||
|
@ -296,6 +758,17 @@ if armor.materials.mithril then
|
||||||
armor_groups = {fleshy=20},
|
armor_groups = {fleshy=20},
|
||||||
damage_groups = {cracky=2, snappy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Mithril Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_mithril
|
||||||
|
-- @img 3d_armor_inv_boots_mithril.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:boots_mithril", {
|
armor:register_armor("3d_armor:boots_mithril", {
|
||||||
description = S("Mithril Boots"),
|
description = S("Mithril Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_mithril.png",
|
inventory_image = "3d_armor_inv_boots_mithril.png",
|
||||||
|
@ -305,7 +778,26 @@ if armor.materials.mithril then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Crystal
|
||||||
|
--
|
||||||
|
-- Requires `armor_material_crystal`.
|
||||||
|
--
|
||||||
|
-- @section crystal
|
||||||
|
|
||||||
if armor.materials.crystal then
|
if armor.materials.crystal then
|
||||||
|
--- Crystal Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_crystal
|
||||||
|
-- @img 3d_armor_inv_helmet_crystal.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:helmet_crystal", {
|
armor:register_armor("3d_armor:helmet_crystal", {
|
||||||
description = S("Crystal Helmet"),
|
description = S("Crystal Helmet"),
|
||||||
inventory_image = "3d_armor_inv_helmet_crystal.png",
|
inventory_image = "3d_armor_inv_helmet_crystal.png",
|
||||||
|
@ -313,6 +805,18 @@ if armor.materials.crystal then
|
||||||
armor_groups = {fleshy=15},
|
armor_groups = {fleshy=15},
|
||||||
damage_groups = {cracky=2, snappy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Crystal Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_crystal
|
||||||
|
-- @img 3d_armor_inv_chestplate_crystal.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:chestplate_crystal", {
|
armor:register_armor("3d_armor:chestplate_crystal", {
|
||||||
description = S("Crystal Chestplate"),
|
description = S("Crystal Chestplate"),
|
||||||
inventory_image = "3d_armor_inv_chestplate_crystal.png",
|
inventory_image = "3d_armor_inv_chestplate_crystal.png",
|
||||||
|
@ -320,6 +824,18 @@ if armor.materials.crystal then
|
||||||
armor_groups = {fleshy=20},
|
armor_groups = {fleshy=20},
|
||||||
damage_groups = {cracky=2, snappy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Crystal Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_crystal
|
||||||
|
-- @img 3d_armor_inv_leggings_crystal.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:leggings_crystal", {
|
armor:register_armor("3d_armor:leggings_crystal", {
|
||||||
description = S("Crystal Leggings"),
|
description = S("Crystal Leggings"),
|
||||||
inventory_image = "3d_armor_inv_leggings_crystal.png",
|
inventory_image = "3d_armor_inv_leggings_crystal.png",
|
||||||
|
@ -327,6 +843,20 @@ if armor.materials.crystal then
|
||||||
armor_groups = {fleshy=20},
|
armor_groups = {fleshy=20},
|
||||||
damage_groups = {cracky=2, snappy=1, level=3},
|
damage_groups = {cracky=2, snappy=1, level=3},
|
||||||
})
|
})
|
||||||
|
--- Crystal Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_crystal
|
||||||
|
-- @img 3d_armor_inv_boots_crystal.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @grp physics_speed 1
|
||||||
|
-- @grp physics_jump 0.5
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("3d_armor:boots_crystal", {
|
armor:register_armor("3d_armor:boots_crystal", {
|
||||||
description = S("Crystal Boots"),
|
description = S("Crystal Boots"),
|
||||||
inventory_image = "3d_armor_inv_boots_crystal.png",
|
inventory_image = "3d_armor_inv_boots_crystal.png",
|
||||||
|
@ -337,6 +867,44 @@ if armor.materials.crystal then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Crafting
|
||||||
|
--
|
||||||
|
-- @section craft
|
||||||
|
|
||||||
|
--- Craft recipes for helmets, chestplates, leggings, boots, & shields.
|
||||||
|
--
|
||||||
|
-- @craft armor
|
||||||
|
-- @usage
|
||||||
|
-- Key:
|
||||||
|
-- - m: material
|
||||||
|
-- - wood: group:wood
|
||||||
|
-- - cactus: default:cactus
|
||||||
|
-- - steel: default:steel_ingot
|
||||||
|
-- - bronze: default:bronze_ingot
|
||||||
|
-- - diamond: default:diamond
|
||||||
|
-- - gold: default:gold_ingot
|
||||||
|
-- - mithril: moreores:mithril_ingot
|
||||||
|
-- - crystal: ethereal:crystal_ingot
|
||||||
|
--
|
||||||
|
-- helmet: chestplate: leggings:
|
||||||
|
-- ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||||
|
-- │ m │ m │ m │ │ m │ │ m │ │ m │ m │ m │
|
||||||
|
-- ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤
|
||||||
|
-- │ m │ │ m │ │ m │ m │ m │ │ m │ │ m │
|
||||||
|
-- ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤
|
||||||
|
-- │ │ │ │ │ m │ m │ m │ │ m │ │ m │
|
||||||
|
-- └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘
|
||||||
|
--
|
||||||
|
-- boots: shield:
|
||||||
|
-- ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||||
|
-- │ │ │ │ │ m │ m │ m │
|
||||||
|
-- ├───┼───┼───┤ ├───┼───┼───┤
|
||||||
|
-- │ m │ │ m │ │ m │ m │ m │
|
||||||
|
-- ├───┼───┼───┤ ├───┼───┼───┤
|
||||||
|
-- │ m │ │ m │ │ │ m │ │
|
||||||
|
-- └───┴───┴───┘ └───┴───┴───┘
|
||||||
|
|
||||||
for k, v in pairs(armor.materials) do
|
for k, v in pairs(armor.materials) do
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "3d_armor:helmet_"..k,
|
output = "3d_armor:helmet_"..k,
|
||||||
|
|
|
@ -51,6 +51,8 @@ see armor.conf.example for all available options.
|
||||||
|
|
||||||
For mod installation instructions, please visit: http://wiki.minetest.com/wiki/Installing_Mods
|
For mod installation instructions, please visit: http://wiki.minetest.com/wiki/Installing_Mods
|
||||||
|
|
||||||
|
[API Reference](https://minetest-mods.github.io/3d_armor/reference/)
|
||||||
|
|
||||||
[mod] Visible Wielded Items [wieldview]
|
[mod] Visible Wielded Items [wieldview]
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1 @@
|
||||||
name = minetest-3d_armor
|
|
||||||
description = Visible player armor & wielded items.
|
description = Visible player armor & wielded items.
|
||||||
|
|
|
@ -58,7 +58,7 @@ armor_punch_damage (Enable damage effects) bool true
|
||||||
# Enable migration of old armor inventories.
|
# Enable migration of old armor inventories.
|
||||||
armor_migrate_old_inventory (Migrate old armor inventories) bool true
|
armor_migrate_old_inventory (Migrate old armor inventories) bool true
|
||||||
|
|
||||||
# Don't show armor on character model.
|
# Armor is not visible on player model when enabled.
|
||||||
armor_transparent (Transparent armor) bool false
|
armor_transparent (Transparent armor) bool false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
|
||||||
|
--- 3D Armor Shields
|
||||||
|
--
|
||||||
|
-- @topic shields
|
||||||
|
|
||||||
|
|
||||||
-- support for i18n
|
-- support for i18n
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
|
@ -21,6 +27,14 @@ end
|
||||||
|
|
||||||
-- Regisiter Shields
|
-- Regisiter Shields
|
||||||
|
|
||||||
|
--- Admin Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_admin
|
||||||
|
-- @img shields_inv_shield_admin.png
|
||||||
|
-- @grp armor_shield 1000
|
||||||
|
-- @grp armor_heal 100
|
||||||
|
-- @grp armor_use 0
|
||||||
|
-- @grp not_int_creative_inventory 1
|
||||||
armor:register_armor("shields:shield_admin", {
|
armor:register_armor("shields:shield_admin", {
|
||||||
description = S("Admin Shield"),
|
description = S("Admin Shield"),
|
||||||
inventory_image = "shields_inv_shield_admin.png",
|
inventory_image = "shields_inv_shield_admin.png",
|
||||||
|
@ -29,7 +43,22 @@ armor:register_armor("shields:shield_admin", {
|
||||||
|
|
||||||
minetest.register_alias("adminshield", "shields:shield_admin")
|
minetest.register_alias("adminshield", "shields:shield_admin")
|
||||||
|
|
||||||
|
|
||||||
if armor.materials.wood then
|
if armor.materials.wood then
|
||||||
|
--- Wood Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_wood
|
||||||
|
-- @img shields_inv_shield_wood.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 2000
|
||||||
|
-- @grp flammable 1
|
||||||
|
-- @armorgrp fleshy 5
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 3
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("shields:shield_wood", {
|
armor:register_armor("shields:shield_wood", {
|
||||||
description = S("Wooden Shield"),
|
description = S("Wooden Shield"),
|
||||||
inventory_image = "shields_inv_shield_wood.png",
|
inventory_image = "shields_inv_shield_wood.png",
|
||||||
|
@ -44,6 +73,19 @@ if armor.materials.wood then
|
||||||
play_sound_effect(player, "default_wood_footstep")
|
play_sound_effect(player, "default_wood_footstep")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
--- Enhanced Wood Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_enhanced_wood
|
||||||
|
-- @img shields_inv_shield_enhanced_wood.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 2000
|
||||||
|
-- @armorgrp fleshy 8
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 3
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("shields:shield_enhanced_wood", {
|
armor:register_armor("shields:shield_enhanced_wood", {
|
||||||
description = S("Enhanced Wood Shield"),
|
description = S("Enhanced Wood Shield"),
|
||||||
inventory_image = "shields_inv_shield_enhanced_wood.png",
|
inventory_image = "shields_inv_shield_enhanced_wood.png",
|
||||||
|
@ -74,6 +116,19 @@ if armor.materials.wood then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.cactus then
|
if armor.materials.cactus then
|
||||||
|
--- Cactus Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_cactus
|
||||||
|
-- @img shields_inv_shield_cactus.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @armorgrp fleshy 5
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 1
|
||||||
armor:register_armor("shields:shield_cactus", {
|
armor:register_armor("shields:shield_cactus", {
|
||||||
description = S("Cactus Shield"),
|
description = S("Cactus Shield"),
|
||||||
inventory_image = "shields_inv_shield_cactus.png",
|
inventory_image = "shields_inv_shield_cactus.png",
|
||||||
|
@ -88,6 +143,19 @@ if armor.materials.cactus then
|
||||||
play_sound_effect(player, "default_wood_footstep")
|
play_sound_effect(player, "default_wood_footstep")
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
--- Enhanced Cactus Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_enhanced_cactus
|
||||||
|
-- @img shields_inv_shield_enhanced_cactus.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 1000
|
||||||
|
-- @armorgrp fleshy 8
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 2
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("shields:shield_enhanced_cactus", {
|
armor:register_armor("shields:shield_enhanced_cactus", {
|
||||||
description = S("Enhanced Cactus Shield"),
|
description = S("Enhanced Cactus Shield"),
|
||||||
inventory_image = "shields_inv_shield_enhanced_cactus.png",
|
inventory_image = "shields_inv_shield_enhanced_cactus.png",
|
||||||
|
@ -118,6 +186,21 @@ if armor.materials.cactus then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.steel then
|
if armor.materials.steel then
|
||||||
|
--- Steel Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_steel
|
||||||
|
-- @img shields_inv_shield_steel.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 0
|
||||||
|
-- @grp armor_use 800
|
||||||
|
-- @grp physics_speed -0.03
|
||||||
|
-- @grp physics_gravity 0.03
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("shields:shield_steel", {
|
armor:register_armor("shields:shield_steel", {
|
||||||
description = S("Steel Shield"),
|
description = S("Steel Shield"),
|
||||||
inventory_image = "shields_inv_shield_steel.png",
|
inventory_image = "shields_inv_shield_steel.png",
|
||||||
|
@ -136,6 +219,21 @@ if armor.materials.steel then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.bronze then
|
if armor.materials.bronze then
|
||||||
|
--- Bronze Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_bronze
|
||||||
|
-- @img shields_inv_shield_bronze.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 400
|
||||||
|
-- @grp physics_speed -0.03
|
||||||
|
-- @grp physics_gravity 0.03
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 3
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 1
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("shields:shield_bronze", {
|
armor:register_armor("shields:shield_bronze", {
|
||||||
description = S("Bronze Shield"),
|
description = S("Bronze Shield"),
|
||||||
inventory_image = "shields_inv_shield_bronze.png",
|
inventory_image = "shields_inv_shield_bronze.png",
|
||||||
|
@ -154,6 +252,18 @@ if armor.materials.bronze then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.diamond then
|
if armor.materials.diamond then
|
||||||
|
--- Diamond Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_diamond
|
||||||
|
-- @img shields_inv_shield_diamond.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp choppy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("shields:shield_diamond", {
|
armor:register_armor("shields:shield_diamond", {
|
||||||
description = S("Diamond Shield"),
|
description = S("Diamond Shield"),
|
||||||
inventory_image = "shields_inv_shield_diamond.png",
|
inventory_image = "shields_inv_shield_diamond.png",
|
||||||
|
@ -171,6 +281,21 @@ if armor.materials.diamond then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.gold then
|
if armor.materials.gold then
|
||||||
|
--- Gold Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_gold
|
||||||
|
-- @img shields_inv_shield_gold.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 6
|
||||||
|
-- @grp armor_use 300
|
||||||
|
-- @grp physics_speed -0.04
|
||||||
|
-- @grp physics_gravity 0.04
|
||||||
|
-- @armorgrp fleshy 10
|
||||||
|
-- @damagegrp cracky 1
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp choppy 2
|
||||||
|
-- @damagegrp crumbly 3
|
||||||
|
-- @damagegrp level 2
|
||||||
armor:register_armor("shields:shield_gold", {
|
armor:register_armor("shields:shield_gold", {
|
||||||
description = S("Gold Shield"),
|
description = S("Gold Shield"),
|
||||||
inventory_image = "shields_inv_shield_gold.png",
|
inventory_image = "shields_inv_shield_gold.png",
|
||||||
|
@ -189,6 +314,17 @@ if armor.materials.gold then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.mithril then
|
if armor.materials.mithril then
|
||||||
|
--- Mithril Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_mithril
|
||||||
|
-- @img shields_inv_shield_mithril.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("shields:shield_mithril", {
|
armor:register_armor("shields:shield_mithril", {
|
||||||
description = S("Mithril Shield"),
|
description = S("Mithril Shield"),
|
||||||
inventory_image = "shields_inv_shield_mithril.png",
|
inventory_image = "shields_inv_shield_mithril.png",
|
||||||
|
@ -206,6 +342,18 @@ if armor.materials.mithril then
|
||||||
end
|
end
|
||||||
|
|
||||||
if armor.materials.crystal then
|
if armor.materials.crystal then
|
||||||
|
--- Crystal Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_crystal
|
||||||
|
-- @img shields_inv_shield_crystal.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 12
|
||||||
|
-- @grp armor_use 100
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 15
|
||||||
|
-- @damagegrp cracky 2
|
||||||
|
-- @damagegrp snappy 1
|
||||||
|
-- @damagegrp level 3
|
||||||
armor:register_armor("shields:shield_crystal", {
|
armor:register_armor("shields:shield_crystal", {
|
||||||
description = S("Crystal Shield"),
|
description = S("Crystal Shield"),
|
||||||
inventory_image = "shields_inv_shield_crystal.png",
|
inventory_image = "shields_inv_shield_crystal.png",
|
||||||
|
|
|
@ -8,7 +8,7 @@ https://forum.minetest.net/viewtopic.php?id=8890
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
- 1.0 - Added glazed terracotta blocks when you cook baked clay in furnace (thanks D3monPixel)
|
- 1.0 - Re-Added glazed terracotta blocks when you cook baked clay in furnace (thanks Amara2_MK), added support for sofar's flowerpot mod
|
||||||
- 0.9 - Baked clay now works in the technic cnc machine
|
- 0.9 - Baked clay now works in the technic cnc machine
|
||||||
- 0.8 - Cooking clay block in furnace gives natural baked clay which you can dye
|
- 0.8 - Cooking clay block in furnace gives natural baked clay which you can dye
|
||||||
- 0.7 - Added support for stairsplus so that stairs are registered properly
|
- 0.7 - Added support for stairsplus so that stairs are registered properly
|
||||||
|
|
|
@ -3,3 +3,4 @@ stairs
|
||||||
moreblocks?
|
moreblocks?
|
||||||
lucky_block?
|
lucky_block?
|
||||||
technic_cnc?
|
technic_cnc?
|
||||||
|
flowerpot?
|
||||||
|
|
|
@ -131,24 +131,7 @@ for _, clay in pairs(clay) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- special light blue glazed terracotta block
|
minetest.register_alias("bakedclay:terracotta_light_blue", "bakedclay:terracotta_cyan")
|
||||||
local texture = "baked_clay_terracotta_light_blue.png"
|
|
||||||
|
|
||||||
minetest.register_node("bakedclay:terracotta_light_blue", {
|
|
||||||
description = "Light Blue Glazed Terracotta",
|
|
||||||
tiles = {
|
|
||||||
texture .. "",
|
|
||||||
texture .. "",
|
|
||||||
texture .. "^[transformR180",
|
|
||||||
texture .. "",
|
|
||||||
texture .. "^[transformR270",
|
|
||||||
texture .. "^[transformR90",
|
|
||||||
},
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
groups = {cracky = 3, terracotta = 1},
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
on_place = minetest.rotate_node
|
|
||||||
})
|
|
||||||
|
|
||||||
-- cook clay block into white baked clay
|
-- cook clay block into white baked clay
|
||||||
|
|
||||||
|
@ -365,7 +348,6 @@ p = "bakedclay:terracotta_"
|
||||||
|
|
||||||
lucky_block:add_blocks({
|
lucky_block:add_blocks({
|
||||||
{"nod", "default:chest", 0, {
|
{"nod", "default:chest", 0, {
|
||||||
{name = p.."light_blue", max = 20},
|
|
||||||
{name = p.."black", max = 20},
|
{name = p.."black", max = 20},
|
||||||
{name = p.."blue", max = 20},
|
{name = p.."blue", max = 20},
|
||||||
{name = p.."brown", max = 20},
|
{name = p.."brown", max = 20},
|
||||||
|
@ -423,5 +405,14 @@ end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- flowerpot mod
|
||||||
|
|
||||||
|
if minetest.get_modpath("flowerpot") then
|
||||||
|
flowerpot.register_node("bakedclay:delphinium")
|
||||||
|
flowerpot.register_node("bakedclay:thistle")
|
||||||
|
flowerpot.register_node("bakedclay:lazarus")
|
||||||
|
flowerpot.register_node("bakedclay:mannagrass")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
print ("[MOD] Baked Clay loaded")
|
print ("[MOD] Baked Clay loaded")
|
||||||
|
|
|
@ -21,5 +21,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
Textures by D3monPixel (https://mcpedl.com/better-glazed-terracotta-pack)
|
Textures by Amara2_MK (Creative Commons)
|
||||||
|
https://www.curseforge.com/minecraft/texture-packs/glazed-terracotta-revamp
|
||||||
baked_clay_terracotta*.png
|
baked_clay_terracotta*.png
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name = bakedclay
|
name = bakedclay
|
||||||
depends = default
|
depends = default
|
||||||
optional_depends = stairs, moreblocks, lucky_block, technic_cnc
|
optional_depends = stairs, moreblocks, lucky_block, technic_cnc, flowerpot
|
||||||
description = Adds the ability to bake clay into blocks and colour them with dye.
|
description = Adds the ability to bake clay into blocks and colour them with dye.
|
||||||
|
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 573 B |
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 573 B |
Before Width: | Height: | Size: 718 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 591 B |
Before Width: | Height: | Size: 714 B After Width: | Height: | Size: 664 B |
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 575 B After Width: | Height: | Size: 664 B |
Before Width: | Height: | Size: 659 B After Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 490 B |
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 530 B |
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 385 B |
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 641 B |
Before Width: | Height: | Size: 512 B After Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 676 B After Width: | Height: | Size: 530 B |
|
@ -8,7 +8,7 @@ local use_cmi = minetest.global_exists("cmi")
|
||||||
|
|
||||||
mobs = {
|
mobs = {
|
||||||
mod = "redo",
|
mod = "redo",
|
||||||
version = "20210722",
|
version = "20210801",
|
||||||
intllib = S,
|
intllib = S,
|
||||||
invis = minetest.global_exists("invisibility") and invisibility or {}
|
invis = minetest.global_exists("invisibility") and invisibility or {}
|
||||||
}
|
}
|
||||||
|
@ -2703,6 +2703,12 @@ function mob_class:do_states(dtime)
|
||||||
local obj = minetest.add_entity(p, self.arrow)
|
local obj = minetest.add_entity(p, self.arrow)
|
||||||
local ent = obj:get_luaentity()
|
local ent = obj:get_luaentity()
|
||||||
local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5
|
local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5
|
||||||
|
|
||||||
|
-- check for custom override for arrow
|
||||||
|
if self.arrow_override then
|
||||||
|
self.arrow_override(ent)
|
||||||
|
end
|
||||||
|
|
||||||
local v = ent.velocity or 1 -- or set to default
|
local v = ent.velocity or 1 -- or set to default
|
||||||
|
|
||||||
ent.switch = 1
|
ent.switch = 1
|
||||||
|
@ -3263,7 +3269,7 @@ function mob_class:mob_activate(staticdata, def, dtime)
|
||||||
self.object:set_texture_mod(self.texture_mods)
|
self.object:set_texture_mod(self.texture_mods)
|
||||||
|
|
||||||
-- set 5.x flag to remove monsters when map area unloaded
|
-- set 5.x flag to remove monsters when map area unloaded
|
||||||
if remove_far and self.type == "monster" then
|
if remove_far and self.type == "monster" and not self.tamed then
|
||||||
self.static_save = false
|
self.static_save = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -3573,6 +3579,7 @@ minetest.register_entity(name, setmetatable({
|
||||||
armor = def.armor,
|
armor = def.armor,
|
||||||
on_rightclick = def.on_rightclick,
|
on_rightclick = def.on_rightclick,
|
||||||
arrow = def.arrow,
|
arrow = def.arrow,
|
||||||
|
arrow_override = def.arrow_override,
|
||||||
shoot_interval = def.shoot_interval,
|
shoot_interval = def.shoot_interval,
|
||||||
sounds = def.sounds,
|
sounds = def.sounds,
|
||||||
animation = def.animation,
|
animation = def.animation,
|
||||||
|
@ -4693,6 +4700,7 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.tamed = true
|
self.tamed = true
|
||||||
|
self.static_save = true
|
||||||
|
|
||||||
if not self.owner or self.owner == "" then
|
if not self.owner or self.owner == "" then
|
||||||
self.owner = clicker:get_player_name()
|
self.owner = clicker:get_player_name()
|
||||||
|
|
|
@ -123,6 +123,8 @@ functions needed for the mob to work properly which contains the following:
|
||||||
continue chasing.
|
continue chasing.
|
||||||
'arrow' holds the pre-defined arrow object to shoot when
|
'arrow' holds the pre-defined arrow object to shoot when
|
||||||
attacking.
|
attacking.
|
||||||
|
'arrow_override' function that allows tweaking of arrow entity from
|
||||||
|
inside mob definition (self) passed to function.
|
||||||
'dogshoot_switch' allows switching between attack types by using timers
|
'dogshoot_switch' allows switching between attack types by using timers
|
||||||
(1 for shoot, 2 for dogfight)
|
(1 for shoot, 2 for dogfight)
|
||||||
'dogshoot_count_max' contains how many seconds before switching from
|
'dogshoot_count_max' contains how many seconds before switching from
|
||||||
|
|
|
@ -23,6 +23,7 @@ Lucky Blocks: 9
|
||||||
|
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
- 1.56 - Added arrow_override function to mob definition to tweak arrow entity settings, tamed monsters no longer despawn when outside loaded map area.
|
||||||
- 1.55 - Add 'peaceful_player' privelage and setting so mobs don't attack specific players (thanks sfence), add support for MarkBu's pathfinder mod, remove need for default mod
|
- 1.55 - Add 'peaceful_player' privelage and setting so mobs don't attack specific players (thanks sfence), add support for MarkBu's pathfinder mod, remove need for default mod
|
||||||
- 1.54 - Simplified animal breeding function, added editable settings (thanks Wuzzy), Child mobs now take 20 mins to grow up, reverted to simple mob spawning with setting to use area checks, on_flop added, air_damage added.
|
- 1.54 - Simplified animal breeding function, added editable settings (thanks Wuzzy), Child mobs now take 20 mins to grow up, reverted to simple mob spawning with setting to use area checks, on_flop added, air_damage added.
|
||||||
- 1.53 - Added 'on_map_load' settings to mobs:spawn so that mobs will only spawn when new areas of map are loaded.
|
- 1.53 - Added 'on_map_load' settings to mobs:spawn so that mobs will only spawn when new areas of map are loaded.
|
||||||
|
|
|
@ -1,17 +1,23 @@
|
||||||
# morelights
|
# morelights
|
||||||
|
|
||||||
[![ContentDB](https://content.minetest.net/packages/random_geek/morelights/shields/downloads/)](https://content.minetest.net/packages/random_geek/morelights/)
|
[![ContentDB](https://content.minetest.net/packages/random_geek/morelights/shields/downloads/)](https://content.minetest.net/packages/random_geek/morelights/)
|
||||||
|
[![](https://img.shields.io/badge/Minetest%20Forums-Morelights-4E9A06)](https://forum.minetest.net/viewtopic.php?f=11&t=21464)
|
||||||
|
|
||||||
Minetest mod adding additional lighting nodes.
|
Minetest mod adding additional lighting nodes.
|
||||||
|
|
||||||
![Screenshot](screenshot.png)
|
![Screenshot](screenshot.png)
|
||||||
|
|
||||||
The Morelights modpack adds over 30 lighting and accessory nodes to suit various styles of builds, both interior and exterior.
|
The Morelights modpack adds over 30 lighting and accessory nodes to suit
|
||||||
Includes basic light blocks, modern and historical-style lighting, and customizable street lamps.
|
various styles of builds, both interior and exterior. Includes basic light
|
||||||
|
blocks, modern and historical-style lighting, and customizable street lamps.
|
||||||
|
|
||||||
Some nodes (ceiling lights, bar lights, poles) can be rotated to serve different purposes.
|
The modpack is lightweight, with only about **60 kB** of media, including 3D
|
||||||
|
models.
|
||||||
|
|
||||||
The modpack currently supports both Minetest Game and MineClone 2.
|
Some nodes (ceiling lights, bar lights, poles) can be rotated to serve
|
||||||
|
different purposes.
|
||||||
|
|
||||||
|
Morelights currently supports both Minetest Game and MineClone 2.
|
||||||
|
|
||||||
## Craft Recipes
|
## Craft Recipes
|
||||||
|
|
||||||
|
@ -19,5 +25,5 @@ Craft recipes for all items can be found in [crafts.md](crafts.md).
|
||||||
|
|
||||||
## Licenses
|
## Licenses
|
||||||
|
|
||||||
Source code is licensed under the LGPL v3.0 license.
|
Source code is licensed under the LGPL v3.0 license. All other media and assets
|
||||||
All other media and assets are licensed under the CC BY-SA 4.0 license.
|
are licensed under the CC BY-SA 4.0 license.
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
name = mp_morelights
|
name = morelights
|
||||||
description = A lightweight modpack providing flexible interior and exterior lighting options for different styles of builds.
|
description = A lightweight modpack providing flexible interior and exterior lighting options for different styles of builds.
|
||||||
|
|
BIN
mods/morelights/morelights/models/chains.blend
Normal file
|
@ -21,7 +21,12 @@ do
|
||||||
},
|
},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
light_source = 12,
|
light_source = 12,
|
||||||
groups = {cracky = 2, oddly_breakable_by_hand = 3, handy = 1},
|
groups = {
|
||||||
|
cracky = 2,
|
||||||
|
oddly_breakable_by_hand = 3,
|
||||||
|
handy = 1,
|
||||||
|
soil = 1,
|
||||||
|
},
|
||||||
_mcl_hardness = 0.3,
|
_mcl_hardness = 0.3,
|
||||||
sounds = morelights.sounds.glass
|
sounds = morelights.sounds.glass
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,100 +1,115 @@
|
||||||
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T18:42:48Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'modern_can_2.blend'
|
# Blender v2.79 (sub 0) OBJ File: 'modern_can_2.blend'
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cylinder_Cylinder.002
|
|
||||||
v -0.051777 -0.000000 -0.125000
|
# vertices [32]
|
||||||
v -0.051777 0.500000 -0.125000
|
|
||||||
v 0.051777 0.500000 -0.125000
|
v -0.051777 0 -0.125
|
||||||
v 0.051777 -0.000000 -0.125000
|
v -0.051777 0.5 -0.125
|
||||||
v 0.125000 -0.000000 0.051777
|
v 0.051777 0.5 -0.125
|
||||||
v 0.051777 -0.000000 0.125000
|
v 0.051777 0 -0.125
|
||||||
v -0.051777 -0.000000 0.125000
|
v 0.125 0 0.051777
|
||||||
v -0.125000 -0.000000 0.051777
|
v 0.051777 0 0.125
|
||||||
v -0.125000 -0.000000 -0.051777
|
v -0.051777 0 0.125
|
||||||
v -0.100000 -0.000000 -0.041421
|
v -0.125 0 0.051777
|
||||||
v -0.100000 -0.000000 0.041421
|
v -0.125 0 -0.051777
|
||||||
v -0.041421 -0.000000 0.100000
|
v -0.1 0 -0.041421
|
||||||
v 0.041421 -0.000000 0.100000
|
v -0.1 0 0.041421
|
||||||
v 0.100000 -0.000000 0.041421
|
v -0.041421 0 0.1
|
||||||
v 0.125000 -0.000000 -0.051777
|
v 0.041421 0 0.1
|
||||||
v 0.100000 -0.000000 -0.041421
|
v 0.1 0 0.041421
|
||||||
v 0.041421 -0.000000 -0.100000
|
v 0.125 0 -0.051777
|
||||||
v -0.041421 -0.000000 -0.100000
|
v 0.1 0 -0.041421
|
||||||
v -0.125000 0.500000 -0.051777
|
v 0.041421 0 -0.1
|
||||||
v -0.125000 0.500000 0.051777
|
v -0.041421 0 -0.1
|
||||||
v -0.051777 0.500000 0.125000
|
v -0.125 0.5 -0.051777
|
||||||
v 0.051777 0.500000 0.125000
|
v -0.125 0.5 0.051777
|
||||||
v 0.125000 0.500000 0.051777
|
v -0.051777 0.5 0.125
|
||||||
v 0.125000 0.500000 -0.051777
|
v 0.051777 0.5 0.125
|
||||||
v 0.041421 0.125000 -0.100000
|
v 0.125 0.5 0.051777
|
||||||
v -0.041421 0.125000 -0.100000
|
v 0.125 0.5 -0.051777
|
||||||
v -0.100000 0.125000 -0.041421
|
v 0.041421 0.125 -0.1
|
||||||
v 0.100000 0.125000 -0.041421
|
v -0.041421 0.125 -0.1
|
||||||
v 0.100000 0.125000 0.041421
|
v -0.1 0.125 -0.041421
|
||||||
v 0.041421 0.125000 0.100000
|
v 0.1 0.125 -0.041421
|
||||||
v -0.041421 0.125000 0.100000
|
v 0.1 0.125 0.041421
|
||||||
v -0.100000 0.125000 0.041421
|
v 0.041421 0.125 0.1
|
||||||
vt 0.375000 0.500000
|
v -0.041421 0.125 0.1
|
||||||
vt 0.375000 1.000000
|
v -0.1 0.125 0.041421
|
||||||
vt 0.250000 1.000000
|
|
||||||
vt 0.250000 0.500000
|
# normals [10]
|
||||||
vt 0.500000 0.500000
|
|
||||||
vt 0.500000 1.000000
|
vn 0 0 -1
|
||||||
vt 0.239277 0.937500
|
vn -0.7071 0 -0.7071
|
||||||
vt 0.135723 0.937500
|
vn 0 1 0
|
||||||
vt 0.062500 0.864257
|
vn 0.7071 0 -0.7071
|
||||||
vt 0.062500 0.760704
|
vn 1 0 0
|
||||||
vt 0.135723 0.687500
|
vn 0.7071 0 0.7071
|
||||||
vt 0.239277 0.687500
|
vn 0 0 1
|
||||||
vt 0.312500 0.760704
|
vn -0.7071 0 0.7071
|
||||||
vt 0.312500 0.864257
|
vn -1 0 0
|
||||||
vt 0.125000 1.000000
|
vn 0 -1 0
|
||||||
vt 0.125000 0.500000
|
|
||||||
vt 0.000000 1.000000
|
# uvs [52]
|
||||||
vt 0.000000 0.500000
|
|
||||||
vt 1.000000 0.500000
|
vt 0.375 0.5
|
||||||
vt 1.000000 1.000000
|
vt 0.375 1
|
||||||
vt 0.875000 1.000000
|
vt 0.25 1
|
||||||
vt 0.875000 0.500000
|
vt 0.25 0.5
|
||||||
vt 0.750000 1.000000
|
vt 0.5 0.5
|
||||||
vt 0.750000 0.500000
|
vt 0.5 1
|
||||||
vt 0.625000 1.000000
|
vt 0.239277 0.9375
|
||||||
vt 0.625000 0.500000
|
vt 0.135723 0.9375
|
||||||
vt 0.375000 0.437500
|
vt 0.0625 0.864257
|
||||||
vt 0.250000 0.437500
|
vt 0.0625 0.760704
|
||||||
vt 0.250000 0.312500
|
vt 0.135723 0.6875
|
||||||
vt 0.375000 0.312500
|
vt 0.239277 0.6875
|
||||||
vt 0.500000 0.437500
|
vt 0.3125 0.760704
|
||||||
vt 0.500000 0.312500
|
vt 0.3125 0.864257
|
||||||
vt 0.176777 0.000000
|
vt 0.125 1
|
||||||
vt 0.250000 0.073223
|
vt 0.125 0.5
|
||||||
vt 0.250000 0.176777
|
vt 0 1
|
||||||
vt 0.176777 0.250000
|
vt 0 0.5
|
||||||
vt 0.073223 0.250000
|
vt 1 0.5
|
||||||
vt 0.000000 0.176777
|
vt 1 1
|
||||||
vt 0.000000 0.073223
|
vt 0.875 1
|
||||||
vt 0.073223 0.000000
|
vt 0.875 0.5
|
||||||
vt 0.125000 0.437500
|
vt 0.75 1
|
||||||
vt 0.125000 0.312500
|
vt 0.75 0.5
|
||||||
vt 0.625000 0.437500
|
vt 0.625 1
|
||||||
vt 0.625000 0.312500
|
vt 0.625 0.5
|
||||||
vt 0.750000 0.437500
|
vt 0.375 0.4375
|
||||||
vt 0.750000 0.312500
|
vt 0.25 0.4375
|
||||||
vt 0.875000 0.437500
|
vt 0.25 0.3125
|
||||||
vt 0.875000 0.312500
|
vt 0.375 0.3125
|
||||||
vt 1.000000 0.437500
|
vt 0.5 0.4375
|
||||||
vt 1.000000 0.312500
|
vt 0.5 0.3125
|
||||||
vt 0.000000 0.437500
|
vt 0.176777 0
|
||||||
vt 0.000000 0.312500
|
vt 0.25 0.073223
|
||||||
vn 0.0000 0.0000 -1.0000
|
vt 0.25 0.176777
|
||||||
vn -0.7071 0.0000 -0.7071
|
vt 0.176777 0.25
|
||||||
vn 0.0000 1.0000 -0.0000
|
vt 0.073223 0.25
|
||||||
vn 0.7071 0.0000 -0.7071
|
vt 0 0.176777
|
||||||
vn 1.0000 0.0000 0.0000
|
vt 0 0.073223
|
||||||
vn 0.7071 0.0000 0.7071
|
vt 0.073223 0
|
||||||
vn -0.0000 0.0000 1.0000
|
vt 0.125 0.4375
|
||||||
vn -0.7071 0.0000 0.7071
|
vt 0.125 0.3125
|
||||||
vn -1.0000 0.0000 0.0000
|
vt 0.625 0.4375
|
||||||
vn 0.0000 -1.0000 0.0000
|
vt 0.625 0.3125
|
||||||
|
vt 0.75 0.4375
|
||||||
|
vt 0.75 0.3125
|
||||||
|
vt 0.875 0.4375
|
||||||
|
vt 0.875 0.3125
|
||||||
|
vt 1 0.4375
|
||||||
|
vt 1 0.3125
|
||||||
|
vt 0 0.4375
|
||||||
|
vt 0 0.3125
|
||||||
|
|
||||||
|
# objects [1]
|
||||||
|
|
||||||
|
o CanLight
|
||||||
|
|
||||||
s off
|
s off
|
||||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
f 9/5/2 19/6/2 2/2/2 1/1/2
|
f 9/5/2 19/6/2 2/2/2 1/1/2
|
||||||
|
@ -122,3 +137,4 @@ f 14/49/10 5/19/10 6/22/10 13/47/10
|
||||||
f 13/47/10 6/22/10 7/24/10 12/45/10
|
f 13/47/10 6/22/10 7/24/10 12/45/10
|
||||||
f 7/24/10 8/26/10 11/43/10 12/45/10
|
f 7/24/10 8/26/10 11/43/10 12/45/10
|
||||||
f 11/43/10 8/26/10 9/5/10 10/31/10
|
f 11/43/10 8/26/10 9/5/10 10/31/10
|
||||||
|
|
||||||
|
|
|
@ -1,204 +1,146 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'modern_tablelamp_joined.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T06:56:07Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o support_Plane.001
|
|
||||||
v 0.031250 0.312500 0.031250
|
# vertices [44]
|
||||||
v 0.218750 0.312500 0.031250
|
|
||||||
v 0.031250 0.343750 0.000000
|
v -0.1875 -0.5 0.1875
|
||||||
v 0.218750 0.343750 0.000000
|
v -0.1875 -0.4375 0.1875
|
||||||
v 0.031250 0.312500 -0.031250
|
v -0.1875 -0.4375 -0.1875
|
||||||
v 0.218750 0.312500 -0.031250
|
v -0.1875 -0.5 -0.1875
|
||||||
v -0.218750 0.312500 0.031250
|
v 0.1875 -0.4375 -0.1875
|
||||||
v -0.031250 0.312500 0.031250
|
v 0.1875 -0.5 -0.1875
|
||||||
v -0.218750 0.343750 0.000000
|
v 0.1875 -0.4375 0.1875
|
||||||
v -0.031250 0.343750 0.000000
|
v 0.1875 -0.5 0.1875
|
||||||
v -0.218750 0.312500 -0.031250
|
v 0.03125 0.3125 0.03125
|
||||||
v -0.031250 0.312500 -0.031250
|
v 0.21875 0.3125 0.03125
|
||||||
vt 0.531250 0.468748
|
v 0.21875 0.34375 0
|
||||||
vt 0.718750 0.468748
|
v 0.03125 0.34375 0
|
||||||
vt 0.718750 0.499998
|
v 0.21875 0.3125 -0.03125
|
||||||
vt 0.531250 0.499998
|
v 0.03125 0.3125 -0.03125
|
||||||
vt 0.718750 0.531248
|
v -0.21875 0.3125 0.03125
|
||||||
vt 0.531250 0.531248
|
v -0.03125 0.3125 0.03125
|
||||||
vt 0.281250 0.468748
|
v -0.03125 0.34375 0
|
||||||
vt 0.468750 0.468748
|
v -0.21875 0.34375 0
|
||||||
vt 0.468750 0.499998
|
v -0.03125 0.3125 -0.03125
|
||||||
vt 0.281250 0.499998
|
v -0.21875 0.3125 -0.03125
|
||||||
vt 0.468750 0.531248
|
v -0.03125 -0.4375 0.03125
|
||||||
vt 0.281250 0.531248
|
v -0.03125 0.375 0.03125
|
||||||
vn 0.0000 0.7071 0.7071
|
v -0.03125 0.375 -0.03125
|
||||||
vn 0.0000 0.7071 -0.7071
|
v -0.03125 -0.4375 -0.03125
|
||||||
g Material.000
|
v 0.03125 0.375 -0.03125
|
||||||
s off
|
v 0.03125 -0.4375 -0.03125
|
||||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
v 0.03125 0.375 0.03125
|
||||||
f 3/4/2 4/3/2 6/5/2 5/6/2
|
v 0.03125 -0.4375 0.03125
|
||||||
f 7/7/1 8/8/1 10/9/1 9/10/1
|
v -0.25 -0.0625 0.25
|
||||||
f 9/10/2 10/9/2 12/11/2 11/12/2
|
v -0.25 0.4375 0.25
|
||||||
o pole_Cube.007
|
v -0.25 0.4375 -0.25
|
||||||
v -0.031250 -0.437500 0.031250
|
v -0.25 -0.0625 -0.25
|
||||||
v -0.031250 0.375000 0.031250
|
v 0.25 0.4375 -0.25
|
||||||
v -0.031250 -0.437500 -0.031250
|
v 0.25 -0.0625 -0.25
|
||||||
v -0.031250 0.375000 -0.031250
|
v 0.25 0.4375 0.25
|
||||||
v 0.031250 -0.437500 0.031250
|
v 0.25 -0.0625 0.25
|
||||||
v 0.031250 0.375000 0.031250
|
v -0.21875 -0.0625 -0.21875
|
||||||
v 0.031250 -0.437500 -0.031250
|
v -0.21875 0.4375 -0.21875
|
||||||
v 0.031250 0.375000 -0.031250
|
v 0.21875 0.4375 -0.21875
|
||||||
vt 0.312500 0.062500
|
v 0.21875 -0.0625 -0.21875
|
||||||
vt 0.312500 0.875000
|
v -0.21875 -0.0625 0.21875
|
||||||
vt 0.250000 0.875000
|
v -0.21875 0.4375 0.21875
|
||||||
vt 0.250000 0.062500
|
v 0.21875 0.4375 0.21875
|
||||||
vt 0.312500 0.062500
|
v 0.21875 -0.0625 0.21875
|
||||||
vt 0.312500 0.875000
|
|
||||||
vt 0.250000 0.875000
|
# normals [8]
|
||||||
vt 0.250000 0.062500
|
|
||||||
vt 0.312500 0.062500
|
vn -1 0 0
|
||||||
vt 0.312500 0.875000
|
vn 0 0 -1
|
||||||
vt 0.250000 0.875000
|
vn 1 0 0
|
||||||
vt 0.250000 0.062500
|
vn 0 0 1
|
||||||
vt 0.312501 0.062500
|
vn 0 -1 0
|
||||||
vt 0.312499 0.875000
|
vn 0 1 0
|
||||||
vt 0.250000 0.875000
|
vn 0 0.7071 0.7071
|
||||||
vt 0.250000 0.062500
|
vn 0 0.7071 -0.7071
|
||||||
vt 0.312500 0.531250
|
|
||||||
vt 0.250000 0.531250
|
# uvs [39]
|
||||||
vt 0.250000 0.468750
|
|
||||||
vt 0.312500 0.468750
|
vt 0.3125 0.0625
|
||||||
vn -1.0000 0.0000 0.0000
|
vt 0.3125 0
|
||||||
vn 0.0000 0.0000 -1.0000
|
vt 0.6875 0
|
||||||
vn 1.0000 0.0000 0.0000
|
vt 0.6875 0.0625
|
||||||
vn 0.0000 0.0000 1.0000
|
vt 0.6875 0.3125
|
||||||
vn 0.0000 1.0000 0.0000
|
vt 0.6875 0.6875
|
||||||
g Material.000
|
vt 0.3125 0.6875
|
||||||
s off
|
vt 0.3125 0.3125
|
||||||
f 13/13/3 14/14/3 16/15/3 15/16/3
|
vt 0.53125 0.46875
|
||||||
f 15/17/4 16/18/4 20/19/4 19/20/4
|
vt 0.71875 0.46875
|
||||||
f 19/21/5 20/22/5 18/23/5 17/24/5
|
vt 0.71875 0.5
|
||||||
f 17/25/6 18/26/6 14/27/6 13/28/6
|
vt 0.53125 0.5
|
||||||
f 20/29/7 16/30/7 14/31/7 18/32/7
|
vt 0.71875 0.53125
|
||||||
o base_Cube.006
|
vt 0.53125 0.53125
|
||||||
v -0.187500 -0.500000 0.187500
|
vt 0.28125 0.46875
|
||||||
v -0.187500 -0.437500 0.187500
|
vt 0.46875 0.46875
|
||||||
v -0.187500 -0.500000 -0.187500
|
vt 0.46875 0.5
|
||||||
v -0.187500 -0.437500 -0.187500
|
vt 0.28125 0.5
|
||||||
v 0.187500 -0.500000 0.187500
|
vt 0.46875 0.53125
|
||||||
v 0.187500 -0.437500 0.187500
|
vt 0.28125 0.53125
|
||||||
v 0.187500 -0.500000 -0.187500
|
vt 0.3125 0.875
|
||||||
v 0.187500 -0.437500 -0.187500
|
vt 0.25 0.875
|
||||||
vt 0.312500 0.062500
|
vt 0.25 0.0625
|
||||||
vt 0.312500 0.000000
|
vt 0.3125 0.53125
|
||||||
vt 0.687500 0.000000
|
vt 0.25 0.53125
|
||||||
vt 0.687500 0.062500
|
vt 0.25 0.46875
|
||||||
vt 0.312500 0.062500
|
vt 0.3125 0.46875
|
||||||
vt 0.312500 0.000000
|
vt 0 0
|
||||||
vt 0.687500 0.000000
|
vt 0 1
|
||||||
vt 0.687500 0.062500
|
vt 1 1
|
||||||
vt 0.687500 0.000000
|
vt 1 0
|
||||||
vt 0.687500 0.062500
|
vt 0.0625 0
|
||||||
vt 0.312500 0.062500
|
vt 0.0625 1
|
||||||
vt 0.312500 0.000000
|
vt 0.9375 1
|
||||||
vt 0.687500 0.000000
|
vt 0.9375 0
|
||||||
vt 0.687500 0.062500
|
vt 0.9375 0.0625
|
||||||
vt 0.312500 0.062500
|
vt 0.0625 0.0625
|
||||||
vt 0.312500 0.000000
|
vt 0.0625 0.9375
|
||||||
vt 0.687500 0.312500
|
vt 0.9375 0.9375
|
||||||
vt 0.687500 0.687500
|
|
||||||
vt 0.312500 0.687500
|
# objects [2]
|
||||||
vt 0.312500 0.312500
|
|
||||||
vt 0.687500 0.312500
|
g LampBase
|
||||||
vt 0.687500 0.687500
|
|
||||||
vt 0.312500 0.687500
|
s 1
|
||||||
vt 0.312500 0.312500
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
vn -1.0000 0.0000 0.0000
|
f 4/1/2 3/2/2 5/3/2 6/4/2
|
||||||
vn 0.0000 0.0000 -1.0000
|
f 6/3/3 5/4/3 7/1/3 8/2/3
|
||||||
vn 1.0000 0.0000 0.0000
|
f 8/3/4 7/4/4 2/1/4 1/2/4
|
||||||
vn 0.0000 0.0000 1.0000
|
f 4/5/5 6/6/5 8/7/5 1/8/5
|
||||||
vn 0.0000 -1.0000 0.0000
|
f 5/5/6 3/6/6 2/7/6 7/8/6
|
||||||
vn 0.0000 1.0000 0.0000
|
f 9/9/7 10/10/7 11/11/7 12/12/7
|
||||||
g Material.000
|
f 12/12/8 11/11/8 13/13/8 14/14/8
|
||||||
s off
|
f 15/15/7 16/16/7 17/17/7 18/18/7
|
||||||
f 21/33/8 22/34/8 24/35/8 23/36/8
|
f 18/18/8 17/17/8 19/19/8 20/20/8
|
||||||
f 23/37/9 24/38/9 28/39/9 27/40/9
|
f 21/1/1 22/21/1 23/22/1 24/23/1
|
||||||
f 27/41/10 28/42/10 26/43/10 25/44/10
|
f 24/1/2 23/21/2 25/22/2 26/23/2
|
||||||
f 25/45/11 26/46/11 22/47/11 21/48/11
|
f 26/1/3 25/21/3 27/22/3 28/23/3
|
||||||
f 23/49/12 27/50/12 25/51/12 21/52/12
|
f 28/1/4 27/21/4 22/22/4 21/23/4
|
||||||
f 28/53/13 24/54/13 22/55/13 26/56/13
|
f 25/24/6 23/25/6 22/26/6 27/27/6
|
||||||
o shade_Cube.005
|
|
||||||
v -0.250000 -0.062500 0.250000
|
g LampShade
|
||||||
v -0.250000 0.437500 0.250000
|
|
||||||
v -0.250000 -0.062500 -0.250000
|
s 1
|
||||||
v -0.250000 0.437500 -0.250000
|
f 29/28/1 30/29/1 31/30/1 32/31/1
|
||||||
v 0.250000 -0.062500 0.250000
|
f 32/28/2 31/29/2 33/30/2 34/31/2
|
||||||
v 0.250000 0.437500 0.250000
|
f 34/31/3 33/30/3 35/29/3 36/28/3
|
||||||
v 0.250000 -0.062500 -0.250000
|
f 36/31/4 35/30/4 30/29/4 29/28/4
|
||||||
v 0.250000 0.437500 -0.250000
|
f 37/32/2 38/33/2 39/34/2 40/35/2
|
||||||
v -0.218750 -0.062500 0.218750
|
f 41/32/1 42/33/1 38/34/1 37/35/1
|
||||||
v -0.218750 0.437500 0.218750
|
f 40/32/3 39/33/3 43/34/3 44/35/3
|
||||||
v -0.218750 -0.062500 -0.218750
|
f 44/32/4 43/33/4 42/34/4 41/35/4
|
||||||
v -0.218750 0.437500 -0.218750
|
f 30/28/6 35/31/6 43/36/6 42/37/6
|
||||||
v 0.218750 -0.062500 0.218750
|
f 31/29/6 30/28/6 42/37/6 38/38/6
|
||||||
v 0.218750 0.437500 0.218750
|
f 33/30/6 31/29/6 38/38/6 39/39/6
|
||||||
v 0.218750 -0.062500 -0.218750
|
f 35/31/6 33/30/6 39/39/6 43/36/6
|
||||||
v 0.218750 0.437500 -0.218750
|
f 29/29/5 32/28/5 37/37/5 41/38/5
|
||||||
vt 0.000000 0.000000
|
f 32/28/5 34/31/5 40/36/5 37/37/5
|
||||||
vt 0.000000 1.000000
|
f 34/31/5 36/30/5 44/39/5 40/36/5
|
||||||
vt 1.000000 1.000000
|
f 36/30/5 29/29/5 41/38/5 44/39/5
|
||||||
vt 1.000000 0.000000
|
|
||||||
vt 0.000000 0.000000
|
|
||||||
vt 0.000000 1.000000
|
|
||||||
vt 1.000000 1.000000
|
|
||||||
vt 1.000000 0.000000
|
|
||||||
vt 0.000000 1.000000
|
|
||||||
vt 0.000000 0.000000
|
|
||||||
vt 1.000000 0.000000
|
|
||||||
vt 1.000000 1.000000
|
|
||||||
vt 0.062500 0.000000
|
|
||||||
vt 0.062500 1.000000
|
|
||||||
vt 0.937500 1.000000
|
|
||||||
vt 0.937500 0.000000
|
|
||||||
vt 0.062500 0.000000
|
|
||||||
vt 0.062500 1.000000
|
|
||||||
vt 0.937500 1.000000
|
|
||||||
vt 0.937500 0.000000
|
|
||||||
vt 0.062500 0.000000
|
|
||||||
vt 0.062500 1.000000
|
|
||||||
vt 0.937500 1.000000
|
|
||||||
vt 0.937500 0.000000
|
|
||||||
vt 0.062500 0.000000
|
|
||||||
vt 0.062500 1.000000
|
|
||||||
vt 0.937500 1.000000
|
|
||||||
vt 0.937500 0.000000
|
|
||||||
vt 0.000000 0.000000
|
|
||||||
vt 1.000000 0.000000
|
|
||||||
vt 0.937500 0.062500
|
|
||||||
vt 0.062500 0.062500
|
|
||||||
vt 0.062500 0.937500
|
|
||||||
vt 0.937500 0.937500
|
|
||||||
vt 0.000000 1.000000
|
|
||||||
vt 0.062500 0.062500
|
|
||||||
vt 0.062500 0.937500
|
|
||||||
vt 0.937500 0.062500
|
|
||||||
vt 1.000000 1.000000
|
|
||||||
vt 0.937500 0.937500
|
|
||||||
vn -1.0000 0.0000 0.0000
|
|
||||||
vn 0.0000 0.0000 -1.0000
|
|
||||||
vn 1.0000 0.0000 0.0000
|
|
||||||
vn 0.0000 0.0000 1.0000
|
|
||||||
vn 0.0000 1.0000 0.0000
|
|
||||||
vn 0.0000 -1.0000 0.0000
|
|
||||||
g Material.001
|
|
||||||
s off
|
|
||||||
f 29/57/14 30/58/14 32/59/14 31/60/14
|
|
||||||
f 31/61/15 32/62/15 36/63/15 35/64/15
|
|
||||||
f 35/64/16 36/63/16 34/65/16 33/66/16
|
|
||||||
f 33/67/17 34/68/17 30/58/17 29/57/17
|
|
||||||
f 39/69/15 40/70/15 44/71/15 43/72/15
|
|
||||||
f 37/73/14 38/74/14 40/75/14 39/76/14
|
|
||||||
f 43/77/16 44/78/16 42/79/16 41/80/16
|
|
||||||
f 41/81/17 42/82/17 38/83/17 37/84/17
|
|
||||||
f 30/85/18 34/86/18 42/87/18 38/88/18
|
|
||||||
f 32/62/18 30/85/18 38/88/18 40/89/18
|
|
||||||
f 36/63/18 32/62/18 40/89/18 44/90/18
|
|
||||||
f 34/86/18 36/63/18 44/90/18 42/87/18
|
|
||||||
f 29/91/19 31/61/19 39/92/19 37/93/19
|
|
||||||
f 31/61/19 35/64/19 43/94/19 39/92/19
|
|
||||||
f 35/64/19 33/95/19 41/96/19 43/94/19
|
|
||||||
f 33/95/19 29/91/19 37/93/19 41/96/19
|
|
||||||
|
|
|
@ -1,132 +1,115 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'walllamp.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T19:07:59Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cube.003
|
|
||||||
v 0.031250 -0.343750 0.437500
|
# vertices [28]
|
||||||
v 0.031250 -0.281250 0.437500
|
|
||||||
v -0.031250 -0.343750 0.437500
|
v 0.125 -0.25 0.375
|
||||||
v -0.031250 -0.281250 0.437500
|
v 0.125 0.25 0.375
|
||||||
v 0.031250 -0.343750 0.218750
|
v -0.125 0.25 0.375
|
||||||
v 0.031250 -0.281250 0.281250
|
v -0.125 -0.25 0.375
|
||||||
v -0.031250 -0.343750 0.218750
|
v -0.125 0.25 0.125
|
||||||
v -0.031250 -0.281250 0.281250
|
v -0.125 -0.25 0.125
|
||||||
v 0.031250 -0.250000 0.218750
|
v 0.125 0.25 0.125
|
||||||
v 0.031250 -0.250000 0.281250
|
v 0.125 -0.25 0.125
|
||||||
v -0.031250 -0.250000 0.218750
|
v -0.03125 -0.34375 0.4375
|
||||||
v -0.031250 -0.250000 0.281250
|
v -0.03125 -0.28125 0.4375
|
||||||
vt 0.031250 0.062500
|
v -0.03125 -0.28125 0.28125
|
||||||
vt 0.031250 0.125000
|
v -0.03125 -0.34375 0.21875
|
||||||
vt 0.187500 0.125000
|
v -0.03125 -0.25 0.28125
|
||||||
vt 0.250000 0.062500
|
v -0.03125 -0.25 0.21875
|
||||||
vt 0.187500 0.156250
|
v 0.03125 -0.34375 0.21875
|
||||||
vt 0.250000 0.156250
|
v 0.03125 -0.28125 0.28125
|
||||||
vt 0.250000 0.062500
|
v 0.03125 -0.28125 0.4375
|
||||||
vt 0.187500 0.125000
|
v 0.03125 -0.34375 0.4375
|
||||||
vt 0.031250 0.125000
|
v 0.03125 -0.25 0.21875
|
||||||
vt 0.031250 0.062500
|
v 0.03125 -0.25 0.28125
|
||||||
vt 0.250000 0.000000
|
v 0.125 -0.375 0.5
|
||||||
vt 0.031250 0.000000
|
v 0.125 0.125 0.5
|
||||||
vt 0.187500 0.250000
|
v -0.125 0.125 0.5
|
||||||
vt 0.031250 0.250000
|
v -0.125 -0.375 0.5
|
||||||
vt 0.031250 0.187500
|
v -0.125 0.125 0.4375
|
||||||
vt 0.187500 0.187500
|
v -0.125 -0.375 0.4375
|
||||||
vt 0.250000 0.156250
|
v 0.125 0.125 0.4375
|
||||||
vt 0.187500 0.156250
|
v 0.125 -0.375 0.4375
|
||||||
vt 0.343750 0.062500
|
|
||||||
vt 0.343750 0.000000
|
# normals [6]
|
||||||
vt 0.218750 0.187500
|
|
||||||
vt 0.218750 0.250000
|
vn 0 0 1
|
||||||
vn -1.0000 -0.0000 -0.0000
|
vn -1 0 0
|
||||||
vn 1.0000 -0.0000 0.0000
|
vn 0 0 -1
|
||||||
vn 0.0000 -1.0000 -0.0000
|
vn 1 0 0
|
||||||
vn 0.0000 1.0000 -0.0000
|
vn 0 -1 0
|
||||||
vn 0.0000 0.0000 -1.0000
|
vn 0 1 0
|
||||||
vn 0.0000 0.0000 1.0000
|
|
||||||
s off
|
# uvs [41]
|
||||||
f 3/1/1 4/2/1 8/3/1 7/4/1
|
|
||||||
f 7/4/1 8/3/1 12/5/1 11/6/1
|
vt 1 0.5
|
||||||
f 5/7/2 6/8/2 2/9/2 1/10/2
|
vt 1 1
|
||||||
f 3/1/3 7/4/3 5/11/3 1/12/3
|
vt 0.75 1
|
||||||
f 8/13/4 4/14/4 2/15/4 6/16/4
|
vt 0.75 0.5
|
||||||
f 6/8/2 5/7/2 9/17/2 10/18/2
|
vt 0.5 1
|
||||||
f 5/11/5 7/4/5 11/19/5 9/20/5
|
vt 0.5 0.5
|
||||||
f 8/13/6 6/16/6 10/21/6 12/22/6
|
vt 0.25 1
|
||||||
o Cube.002
|
vt 0.25 0.5
|
||||||
v 0.125000 -0.375000 0.500000
|
vt 0 1
|
||||||
v 0.125000 0.125000 0.500000
|
vt 0 0.5
|
||||||
v -0.125000 -0.375000 0.500000
|
vt 0 0.25
|
||||||
v -0.125000 0.125000 0.500000
|
vt 0.25 0.25
|
||||||
v 0.125000 -0.375000 0.437500
|
vt 0.03125 0.0625
|
||||||
v 0.125000 0.125000 0.437500
|
vt 0.03125 0.125
|
||||||
v -0.125000 -0.375000 0.437500
|
vt 0.1875 0.125
|
||||||
v -0.125000 0.125000 0.437500
|
vt 0.25 0.0625
|
||||||
vt 0.937500 0.000000
|
vt 0.1875 0.15625
|
||||||
vt 0.937500 0.500000
|
vt 0.25 0.15625
|
||||||
vt 0.687500 0.500000
|
vt 0.25 0
|
||||||
vt 0.687500 0.000000
|
vt 0.03125 0
|
||||||
vt 0.625000 0.500000
|
vt 0.1875 0.25
|
||||||
vt 0.625000 0.000000
|
vt 0.03125 0.25
|
||||||
vt 0.375000 0.500000
|
vt 0.03125 0.1875
|
||||||
vt 0.375000 0.000000
|
vt 0.1875 0.1875
|
||||||
vt 0.312500 0.500000
|
vt 0.34375 0.0625
|
||||||
vt 0.312500 0.000000
|
vt 0.34375 0
|
||||||
vt 0.937500 0.250000
|
vt 0.21875 0.1875
|
||||||
vt 1.000000 0.250000
|
vt 0.21875 0.25
|
||||||
vt 1.000000 0.500000
|
vt 0.9375 0
|
||||||
vt 0.937500 0.500000
|
vt 0.9375 0.5
|
||||||
vt 0.937500 0.000000
|
vt 0.6875 0.5
|
||||||
vt 1.000000 0.000000
|
vt 0.6875 0
|
||||||
vt 1.000000 0.250000
|
vt 0.625 0.5
|
||||||
vt 0.937500 0.250000
|
vt 0.625 0
|
||||||
vn 0.0000 0.0000 1.0000
|
vt 0.375 0.5
|
||||||
vn -1.0000 0.0000 0.0000
|
vt 0.375 0
|
||||||
vn 0.0000 0.0000 -1.0000
|
vt 0.3125 0.5
|
||||||
vn 1.0000 0.0000 0.0000
|
vt 0.3125 0
|
||||||
vn 0.0000 -1.0000 0.0000
|
vt 0.9375 0.25
|
||||||
vn 0.0000 1.0000 0.0000
|
vt 1 0.25
|
||||||
s off
|
vt 1 0
|
||||||
f 13/23/7 14/24/7 16/25/7 15/26/7
|
|
||||||
f 15/26/8 16/25/8 20/27/8 19/28/8
|
# objects [1]
|
||||||
f 19/28/9 20/27/9 18/29/9 17/30/9
|
|
||||||
f 17/30/10 18/29/10 14/31/10 13/32/10
|
o WallLamp
|
||||||
f 15/33/11 19/34/11 17/35/11 13/36/11
|
|
||||||
f 20/37/12 16/38/12 14/39/12 18/40/12
|
s 1
|
||||||
o Cube.001
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
v 0.125000 -0.250000 0.375000
|
f 4/4/2 3/3/2 5/5/2 6/6/2
|
||||||
v 0.125000 0.250000 0.375000
|
f 6/6/3 5/5/3 7/7/3 8/8/3
|
||||||
v -0.125000 -0.250000 0.375000
|
f 8/8/4 7/7/4 2/9/4 1/10/4
|
||||||
v -0.125000 0.250000 0.375000
|
f 4/8/5 6/10/5 8/11/5 1/12/5
|
||||||
v 0.125000 -0.250000 0.125000
|
f 5/8/6 3/10/6 2/11/6 7/12/6
|
||||||
v 0.125000 0.250000 0.125000
|
f 9/13/2 10/14/2 11/15/2 12/16/2
|
||||||
v -0.125000 -0.250000 0.125000
|
f 12/16/2 11/15/2 13/17/2 14/18/2
|
||||||
v -0.125000 0.250000 0.125000
|
f 15/16/4 16/15/4 17/14/4 18/13/4
|
||||||
vt 1.000000 0.500000
|
f 9/13/5 12/16/5 15/19/5 18/20/5
|
||||||
vt 1.000000 1.000000
|
f 11/21/6 10/22/6 17/23/6 16/24/6
|
||||||
vt 0.750000 1.000000
|
f 16/15/4 15/16/4 19/18/4 20/17/4
|
||||||
vt 0.750000 0.500000
|
f 15/19/3 12/16/3 14/25/3 19/26/3
|
||||||
vt 0.500000 1.000000
|
f 11/21/1 16/24/1 20/27/1 13/28/1
|
||||||
vt 0.500000 0.500000
|
f 21/29/1 22/30/1 23/31/1 24/32/1
|
||||||
vt 0.250000 1.000000
|
f 24/32/2 23/31/2 25/33/2 26/34/2
|
||||||
vt 0.250000 0.500000
|
f 26/34/3 25/33/3 27/35/3 28/36/3
|
||||||
vt 0.000000 1.000000
|
f 28/36/4 27/35/4 22/37/4 21/38/4
|
||||||
vt 0.000000 0.500000
|
f 24/39/5 26/40/5 28/1/5 21/30/5
|
||||||
vt 0.250000 0.500000
|
f 25/29/6 23/41/6 22/40/6 27/39/6
|
||||||
vt 0.000000 0.500000
|
|
||||||
vt 0.000000 0.250000
|
|
||||||
vt 0.250000 0.250000
|
|
||||||
vt 0.250000 0.500000
|
|
||||||
vt 0.000000 0.500000
|
|
||||||
vt 0.000000 0.250000
|
|
||||||
vt 0.250000 0.250000
|
|
||||||
vn 0.0000 0.0000 1.0000
|
|
||||||
vn -1.0000 0.0000 -0.0000
|
|
||||||
vn 0.0000 0.0000 -1.0000
|
|
||||||
vn 1.0000 0.0000 0.0000
|
|
||||||
vn 0.0000 -1.0000 0.0000
|
|
||||||
vn 0.0000 1.0000 0.0000
|
|
||||||
s off
|
|
||||||
f 21/41/13 22/42/13 24/43/13 23/44/13
|
|
||||||
f 23/44/14 24/43/14 28/45/14 27/46/14
|
|
||||||
f 27/46/15 28/45/15 26/47/15 25/48/15
|
|
||||||
f 25/48/16 26/47/16 22/49/16 21/50/16
|
|
||||||
f 23/51/17 27/52/17 25/53/17 21/54/17
|
|
||||||
f 28/55/18 24/56/18 22/57/18 26/58/18
|
|
||||||
|
|
Before Width: | Height: | Size: 125 B After Width: | Height: | Size: 112 B |
|
@ -97,6 +97,7 @@ minetest.register_node("morelights_vintage:smallblock", {
|
||||||
"morelights_vintage_block.png",
|
"morelights_vintage_block.png",
|
||||||
"[combine:16x16:0,4=morelights_vintage_block.png"
|
"[combine:16x16:0,4=morelights_vintage_block.png"
|
||||||
},
|
},
|
||||||
|
use_texture_alpha = "opaque",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
@ -118,6 +119,7 @@ minetest.register_node("morelights_vintage:lantern_f", {
|
||||||
"morelights_vintage_lantern.png",
|
"morelights_vintage_lantern.png",
|
||||||
"morelights_metal_dark_32.png"
|
"morelights_metal_dark_32.png"
|
||||||
},
|
},
|
||||||
|
use_texture_alpha = "opaque",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-3/16, -1/2, -3/16, 3/16, 1/16, 3/16}
|
fixed = {-3/16, -1/2, -3/16, 3/16, 1/16, 3/16}
|
||||||
|
@ -160,6 +162,7 @@ minetest.register_node("morelights_vintage:lantern_c", {
|
||||||
"morelights_vintage_lantern.png",
|
"morelights_vintage_lantern.png",
|
||||||
"morelights_metal_dark_32.png"
|
"morelights_metal_dark_32.png"
|
||||||
},
|
},
|
||||||
|
use_texture_alpha = "opaque",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-3/16, -1/16, -3/16, 3/16, 1/2, 3/16}
|
fixed = {-3/16, -1/16, -3/16, 3/16, 1/2, 3/16}
|
||||||
|
@ -185,6 +188,7 @@ minetest.register_node("morelights_vintage:lantern_w", {
|
||||||
"morelights_vintage_lantern.png",
|
"morelights_vintage_lantern.png",
|
||||||
"morelights_metal_dark_32.png"
|
"morelights_metal_dark_32.png"
|
||||||
},
|
},
|
||||||
|
use_texture_alpha = "clip",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-3/16, -1/4, -5/16, 3/16, 1/8, 3/16}
|
fixed = {-3/16, -1/4, -5/16, 3/16, 1/8, 3/16}
|
||||||
|
@ -214,7 +218,7 @@ minetest.register_node("morelights_vintage:hangingbulb", {
|
||||||
},
|
},
|
||||||
inventory_image = "morelights_vintage_hangingbulb_inv.png",
|
inventory_image = "morelights_vintage_hangingbulb_inv.png",
|
||||||
wield_image = "morelights_vintage_hangingbulb_inv.png",
|
wield_image = "morelights_vintage_hangingbulb_inv.png",
|
||||||
use_texture_alpha = true,
|
use_texture_alpha = "blend",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-1/8, -1/8, -1/8, 1/8, 1/2, 1/8}
|
fixed = {-1/8, -1/8, -1/8, 1/8, 1/2, 1/8}
|
||||||
|
@ -248,6 +252,7 @@ minetest.register_node("morelights_vintage:oillamp", {
|
||||||
"morelights_vintage_oillamp.png",
|
"morelights_vintage_oillamp.png",
|
||||||
"morelights_vintage_brass_32.png"
|
"morelights_vintage_brass_32.png"
|
||||||
},
|
},
|
||||||
|
use_texture_alpha = "clip",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-1/8, -1/2, -1/8, 1/8, 1/4, 1/8}
|
fixed = {-1/8, -1/2, -1/8, 1/8, 1/4, 1/8}
|
||||||
|
@ -272,6 +277,7 @@ minetest.register_node("morelights_vintage:chandelier", {
|
||||||
"morelights_vintage_chandelier.png",
|
"morelights_vintage_chandelier.png",
|
||||||
"morelights_vintage_brass_32.png^[multiply:#DFDFDF"
|
"morelights_vintage_brass_32.png^[multiply:#DFDFDF"
|
||||||
},
|
},
|
||||||
|
use_texture_alpha = "clip",
|
||||||
collision_box = {
|
collision_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-3/8, -1/2, -3/8, 3/8, 1/2, 3/8}
|
fixed = {-3/8, -1/2, -3/8, 3/8, 1/2, 3/8}
|
||||||
|
|
|
@ -1,79 +1,86 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'vintage_chandelier.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T19:28:47Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Plane.001_Plane.005
|
|
||||||
v 0.250000 -0.500000 -0.433013
|
# vertices [22]
|
||||||
v -0.250000 -0.500000 0.433013
|
|
||||||
v 0.250000 0.500000 -0.433013
|
v 0.25 -0.5 -0.433013
|
||||||
v -0.250000 0.500000 0.433013
|
v 0 -0.5 0
|
||||||
v -0.250000 -0.500000 -0.433013
|
v 0 0.5 0
|
||||||
v 0.250000 -0.500000 0.433013
|
v 0.25 0.5 -0.433013
|
||||||
v -0.250000 0.500000 -0.433013
|
v -0.25 -0.5 -0.433013
|
||||||
v 0.250000 0.500000 0.433013
|
v -0.25 0.5 -0.433013
|
||||||
v 0.500000 -0.500000 0.000000
|
v 0.5 -0.5 0
|
||||||
v -0.500000 -0.500000 0.000000
|
v 0.5 0.5 0
|
||||||
v 0.500000 0.500000 -0.000000
|
v -0.25 -0.5 0.433013
|
||||||
v -0.500000 0.500000 0.000000
|
v -0.25 0.5 0.433013
|
||||||
v 0.000000 -0.500000 0.000000
|
v 0.25 -0.5 0.433013
|
||||||
v -0.000000 0.500000 -0.000000
|
v 0.25 0.5 0.433013
|
||||||
vt 0.000000 0.000000
|
v -0.5 -0.5 0
|
||||||
vt 0.500000 0.000000
|
v -0.5 0.5 0
|
||||||
vt 0.500000 1.000000
|
v 0.03125 -0.375 -0.03125
|
||||||
vt 0.000000 1.000000
|
v 0.03125 -0.375 0.03125
|
||||||
vt 0.000000 0.000000
|
v -0.03125 -0.375 0.03125
|
||||||
vt 0.000000 1.000000
|
v -0.03125 -0.375 -0.03125
|
||||||
vt 0.000000 0.000000
|
v 0.03125 0.5 -0.03125
|
||||||
vt 0.000000 1.000000
|
v -0.03125 0.5 -0.03125
|
||||||
vt 1.000000 0.000000
|
v -0.03125 0.5 0.03125
|
||||||
vt 1.000000 1.000000
|
v 0.03125 0.5 0.03125
|
||||||
vt 1.000000 0.000000
|
|
||||||
vt 1.000000 1.000000
|
# normals [8]
|
||||||
vt 1.000000 0.000000
|
|
||||||
vt 1.000000 1.000000
|
vn -0.866 0 -0.5
|
||||||
vn -0.8660 -0.0000 -0.5000
|
vn -0.866 0 0.5
|
||||||
vn -0.8660 -0.0000 0.5000
|
vn 0 0 -1
|
||||||
vn -0.0000 -0.0000 -1.0000
|
vn 0 -1 0
|
||||||
g Plane.001_Plane.005_Material.001
|
vn 0 1 0
|
||||||
s off
|
vn 1 0 0
|
||||||
f 1/1/1 13/2/1 14/3/1 3/4/1
|
vn 0 0 1
|
||||||
f 5/5/2 13/2/2 14/3/2 7/6/2
|
vn -1 0 0
|
||||||
f 9/7/3 13/2/3 14/3/3 11/8/3
|
|
||||||
f 14/3/1 13/2/1 2/9/1 4/10/1
|
# uvs [20]
|
||||||
f 14/3/2 13/2/2 6/11/2 8/12/2
|
|
||||||
f 14/3/3 13/2/3 10/13/3 12/14/3
|
vt 0 0
|
||||||
o Cube
|
vt 0.5 0
|
||||||
v 0.031250 -0.375000 -0.031250
|
vt 0.5 1
|
||||||
v 0.031250 -0.375000 0.031250
|
vt 0 1
|
||||||
v -0.031250 -0.375000 0.031250
|
vt 1 0
|
||||||
v -0.031250 -0.375000 -0.031250
|
vt 1 1
|
||||||
v 0.031250 0.500000 -0.031250
|
vt 0.4375 0.0625
|
||||||
v 0.031250 0.500000 0.031250
|
vt 0.375 0.0625
|
||||||
v -0.031250 0.500000 0.031250
|
vt 0.375 0
|
||||||
v -0.031250 0.500000 -0.031250
|
vt 0.4375 0
|
||||||
vt 0.437500 0.062500
|
vt 0.4375 0.9375
|
||||||
vt 0.375000 0.062500
|
vt 0.4375 1
|
||||||
vt 0.375000 0.000000
|
vt 0.375 1
|
||||||
vt 0.437500 0.000000
|
vt 0.375 0.9375
|
||||||
vt 0.437500 0.937500
|
vt 0.625 0.0625
|
||||||
vt 0.437500 1.000000
|
vt 0.625 0.9375
|
||||||
vt 0.375000 1.000000
|
vt 0.5625 0.9375
|
||||||
vt 0.375000 0.937500
|
vt 0.5625 0.0625
|
||||||
vt 0.625000 0.062500
|
vt 0.5 0.9375
|
||||||
vt 0.625000 0.937500
|
vt 0.5 0.0625
|
||||||
vt 0.562500 0.937500
|
|
||||||
vt 0.562500 0.062500
|
# objects [2]
|
||||||
vt 0.500000 0.937500
|
|
||||||
vt 0.500000 0.062500
|
g Chandelier
|
||||||
vn 0.0000 -1.0000 0.0000
|
|
||||||
vn 0.0000 1.0000 0.0000
|
s 1
|
||||||
vn 1.0000 0.0000 0.0000
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
vn -0.0000 -0.0000 1.0000
|
f 5/1/2 2/2/2 3/3/2 6/4/2
|
||||||
vn -1.0000 -0.0000 -0.0000
|
f 7/1/3 2/2/3 3/3/3 8/4/3
|
||||||
vn 0.0000 0.0000 -1.0000
|
f 3/3/1 2/2/1 9/5/1 10/6/1
|
||||||
g Cube_Cube_Material
|
f 3/3/2 2/2/2 11/5/2 12/6/2
|
||||||
s off
|
f 3/3/3 2/2/3 13/5/3 14/6/3
|
||||||
f 15/15/4 16/16/4 17/17/4 18/18/4
|
|
||||||
f 19/19/5 22/20/5 21/21/5 20/22/5
|
g Pole
|
||||||
f 15/15/6 19/19/6 20/22/6 16/16/6
|
|
||||||
f 16/23/7 20/24/7 21/25/7 17/26/7
|
s 1
|
||||||
f 17/26/8 21/25/8 22/27/8 18/28/8
|
f 15/7/4 16/8/4 17/9/4 18/10/4
|
||||||
f 19/19/9 15/15/9 18/28/9 22/27/9
|
f 19/11/5 20/12/5 21/13/5 22/14/5
|
||||||
|
f 15/7/6 19/11/6 22/14/6 16/8/6
|
||||||
|
f 16/15/7 22/16/7 21/17/7 17/18/7
|
||||||
|
f 17/18/8 21/17/8 20/19/8 18/20/8
|
||||||
|
f 19/11/3 15/7/3 18/20/3 20/19/3
|
||||||
|
|
||||||
|
|
|
@ -1,108 +1,57 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'bulb.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T20:35:12Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cube_Cube.009
|
|
||||||
v -0.031250 0.093750 0.031250
|
# vertices [38]
|
||||||
v -0.031250 0.343750 0.031250
|
|
||||||
v -0.031250 0.093750 -0.031250
|
v -0.03125 0.34375 -0.03125
|
||||||
v -0.031250 0.343750 -0.031250
|
v -0.03125 0.09375 -0.03125
|
||||||
v 0.031250 0.093750 0.031250
|
v 0 0.09375 0
|
||||||
v 0.031250 0.343750 0.031250
|
v 0 0.34375 0
|
||||||
v 0.031250 0.093750 -0.031250
|
v -0.03125 0.09375 0.03125
|
||||||
v 0.031250 0.343750 -0.031250
|
v -0.03125 0.34375 0.03125
|
||||||
v 0.000000 0.343750 0.000000
|
v 0.03125 0.09375 0.03125
|
||||||
v 0.000000 0.093750 0.000000
|
v 0.03125 0.34375 0.03125
|
||||||
vt 0.000000 1.000000
|
v 0.03125 0.34375 -0.03125
|
||||||
vt 0.000000 0.750000
|
v 0.03125 0.09375 -0.03125
|
||||||
vt 0.031251 0.750000
|
v 0.0625 0.03125 0.09375
|
||||||
vt 0.031249 1.000000
|
v 0.0625 0.3125 0.09375
|
||||||
vt 0.062501 0.750000
|
v -0.0625 0.3125 0.09375
|
||||||
vt 0.062499 1.000000
|
v -0.0625 0.03125 0.09375
|
||||||
vt 0.000000 0.750000
|
v 0.09375 0.03125 -0.0625
|
||||||
vt 0.000000 1.000000
|
v 0.09375 0.3125 -0.0625
|
||||||
vt 0.062499 1.000000
|
v 0.09375 0.3125 0.0625
|
||||||
vt 0.062501 0.750000
|
v 0.09375 0.03125 0.0625
|
||||||
vn -0.7071 0.0000 0.7071
|
v -0.09375 0.03125 0.0625
|
||||||
vn -0.7071 0.0000 -0.7071
|
v -0.09375 0.3125 0.0625
|
||||||
s off
|
v -0.09375 0.3125 -0.0625
|
||||||
f 4/1/1 3/2/1 10/3/1 9/4/1
|
v -0.09375 0.03125 -0.0625
|
||||||
f 1/5/2 2/6/2 9/4/2 10/3/2
|
v -0.0625 0.03125 -0.09375
|
||||||
f 9/4/1 10/3/1 5/7/1 6/8/1
|
v -0.0625 0.3125 -0.09375
|
||||||
f 10/3/2 9/4/2 8/9/2 7/10/2
|
v 0.0625 0.3125 -0.09375
|
||||||
o Cube.002_Cube.007
|
v 0.0625 0.03125 -0.09375
|
||||||
v -0.062500 0.000000 0.062500
|
v -0.0625 0 0.0625
|
||||||
v -0.062500 0.031250 0.093750
|
v -0.0625 0.34375 0.0625
|
||||||
v -0.093750 0.031250 0.062500
|
v -0.0625 0 -0.0625
|
||||||
v -0.062500 0.312500 0.093750
|
v -0.0625 0.34375 -0.0625
|
||||||
v -0.062500 0.343750 0.062500
|
v 0.0625 0 0.0625
|
||||||
v -0.093750 0.312500 0.062500
|
v 0.0625 0.34375 0.0625
|
||||||
v -0.062500 0.000000 -0.062500
|
v 0.0625 0 -0.0625
|
||||||
v -0.093750 0.031250 -0.062500
|
v 0.0625 0.34375 -0.0625
|
||||||
v -0.062500 0.031250 -0.093750
|
v -0.0625 0.5 0.0625
|
||||||
v -0.062500 0.343750 -0.062500
|
v -0.0625 0.5 -0.0625
|
||||||
v -0.062500 0.312500 -0.093750
|
v 0.0625 0.5 -0.0625
|
||||||
v -0.093750 0.312500 -0.062500
|
v 0.0625 0.5 0.0625
|
||||||
v 0.062500 0.000000 0.062500
|
|
||||||
v 0.093750 0.031250 0.062500
|
# normals [26]
|
||||||
v 0.062500 0.031250 0.093750
|
|
||||||
v 0.062500 0.343750 0.062500
|
vn -0.7071 0 0.7071
|
||||||
v 0.062500 0.312500 0.093750
|
vn -0.7071 0 -0.7071
|
||||||
v 0.093750 0.312500 0.062500
|
vn 0 0 1
|
||||||
v 0.062500 0.000000 -0.062500
|
vn 1 0 0
|
||||||
v 0.062500 0.031250 -0.093750
|
vn -1 0 0
|
||||||
v 0.093750 0.031250 -0.062500
|
vn 0 0 -1
|
||||||
v 0.062500 0.343750 -0.062500
|
|
||||||
v 0.093750 0.312500 -0.062500
|
|
||||||
v 0.062500 0.312500 -0.093750
|
|
||||||
vt 0.437500 0.656250
|
|
||||||
vt 0.437500 0.937500
|
|
||||||
vt 0.312500 0.937500
|
|
||||||
vt 0.312500 0.656250
|
|
||||||
vt 0.625000 0.656250
|
|
||||||
vt 0.625000 0.937500
|
|
||||||
vt 0.500000 0.937500
|
|
||||||
vt 0.500000 0.656250
|
|
||||||
vt 1.000003 0.656250
|
|
||||||
vt 1.000002 0.937500
|
|
||||||
vt 0.875000 0.937500
|
|
||||||
vt 0.875000 0.656250
|
|
||||||
vt 0.812500 0.656250
|
|
||||||
vt 0.812500 0.937500
|
|
||||||
vt 0.687500 0.937500
|
|
||||||
vt 0.687500 0.656250
|
|
||||||
vt 0.281250 0.593750
|
|
||||||
vt 0.250000 0.656250
|
|
||||||
vt 0.281250 1.000000
|
|
||||||
vt 0.250000 0.937500
|
|
||||||
vt 0.843750 0.593750
|
|
||||||
vt 0.843750 1.000000
|
|
||||||
vt 0.468750 0.593750
|
|
||||||
vt 0.468750 1.000000
|
|
||||||
vt 0.656250 0.593750
|
|
||||||
vt 0.656250 1.000000
|
|
||||||
vt 0.875000 0.593750
|
|
||||||
vt 1.000003 0.593750
|
|
||||||
vt 1.000002 1.000000
|
|
||||||
vt 0.875000 1.000000
|
|
||||||
vt 0.687500 0.593750
|
|
||||||
vt 0.812500 0.593750
|
|
||||||
vt 0.812500 1.000000
|
|
||||||
vt 0.687500 1.000000
|
|
||||||
vt 0.500000 0.593750
|
|
||||||
vt 0.625000 0.593750
|
|
||||||
vt 0.625000 1.000000
|
|
||||||
vt 0.500000 1.000000
|
|
||||||
vt 0.312500 0.593750
|
|
||||||
vt 0.437500 0.593750
|
|
||||||
vt 0.437500 1.000000
|
|
||||||
vt 0.312500 1.000000
|
|
||||||
vt 0.250000 1.000000
|
|
||||||
vt 0.125000 1.000000
|
|
||||||
vt 0.125000 0.875000
|
|
||||||
vt 0.250000 0.875000
|
|
||||||
vn 0.0000 0.0000 1.0000
|
|
||||||
vn 1.0000 0.0000 0.0000
|
|
||||||
vn -1.0000 0.0000 0.0000
|
|
||||||
vn 0.0000 0.0000 -1.0000
|
|
||||||
vn -0.5774 -0.5774 0.5774
|
vn -0.5774 -0.5774 0.5774
|
||||||
vn -0.5774 0.5774 0.5774
|
vn -0.5774 0.5774 0.5774
|
||||||
vn -0.5774 -0.5774 -0.5774
|
vn -0.5774 -0.5774 -0.5774
|
||||||
|
@ -111,82 +60,133 @@ vn 0.5774 -0.5774 0.5774
|
||||||
vn 0.5774 0.5774 0.5774
|
vn 0.5774 0.5774 0.5774
|
||||||
vn 0.5774 -0.5774 -0.5774
|
vn 0.5774 -0.5774 -0.5774
|
||||||
vn 0.5774 0.5774 -0.5774
|
vn 0.5774 0.5774 -0.5774
|
||||||
vn -0.7071 -0.7071 0.0000
|
vn -0.7071 -0.7071 0
|
||||||
vn -0.7071 0.0000 0.7071
|
vn -0.7071 0.7071 0
|
||||||
vn -0.7071 0.7071 0.0000
|
vn 0 -0.7071 -0.7071
|
||||||
vn -0.7071 0.0000 -0.7071
|
vn 0 0.7071 -0.7071
|
||||||
vn 0.0000 -0.7071 -0.7071
|
vn 0.7071 0 -0.7071
|
||||||
vn 0.0000 0.7071 -0.7071
|
vn 0.7071 -0.7071 0
|
||||||
vn 0.7071 0.0000 -0.7071
|
vn 0.7071 0.7071 0
|
||||||
vn 0.7071 -0.7071 0.0000
|
vn 0.7071 0 0.7071
|
||||||
vn 0.7071 0.7071 0.0000
|
vn 0 -0.7071 0.7071
|
||||||
vn 0.7071 0.0000 0.7071
|
vn 0 0.7071 0.7071
|
||||||
vn 0.0000 -0.7071 0.7071
|
vn 0 -1 0
|
||||||
vn 0.0000 0.7071 0.7071
|
vn 0 1 0
|
||||||
vn 0.0000 -1.0000 0.0000
|
|
||||||
s off
|
# uvs [65]
|
||||||
f 25/11/3 27/12/3 14/13/3 12/14/3
|
|
||||||
f 31/15/4 33/16/4 28/17/4 24/18/4
|
vt 0 1
|
||||||
f 13/19/5 16/20/5 22/21/5 18/22/5
|
vt 0 0.75
|
||||||
f 19/23/6 21/24/6 34/25/6 30/26/6
|
vt 0.03125 0.75
|
||||||
f 11/27/7 12/14/7 13/28/7
|
vt 0.03125 1
|
||||||
f 14/13/8 15/29/8 16/30/8
|
vt 0.0625 0.75
|
||||||
f 17/31/9 18/22/9 19/23/9
|
vt 0.0625 1
|
||||||
f 20/32/10 21/24/10 22/21/10
|
vt 0.4375 0.65625
|
||||||
f 23/33/11 24/18/11 25/11/11
|
vt 0.4375 0.9375
|
||||||
f 26/34/12 27/12/12 28/17/12
|
vt 0.3125 0.9375
|
||||||
f 29/35/13 30/26/13 31/15/13
|
vt 0.3125 0.65625
|
||||||
f 32/36/14 33/16/14 34/25/14
|
vt 0.625 0.65625
|
||||||
f 17/37/15 11/38/15 13/19/15 18/22/15
|
vt 0.625 0.9375
|
||||||
f 12/14/16 14/13/16 16/30/16 13/28/16
|
vt 0.5 0.9375
|
||||||
f 15/39/17 20/40/17 22/21/17 16/20/17
|
vt 0.5 0.65625
|
||||||
f 21/24/18 19/23/18 18/22/18 22/21/18
|
vt 1 0.65625
|
||||||
f 29/41/19 17/42/19 19/23/19 30/26/19
|
vt 1 0.9375
|
||||||
f 20/43/20 32/44/20 34/25/20 21/24/20
|
vt 0.875 0.9375
|
||||||
f 33/16/21 31/15/21 30/26/21 34/25/21
|
vt 0.875 0.65625
|
||||||
f 23/45/22 29/46/22 31/15/22 24/18/22
|
vt 0.8125 0.65625
|
||||||
f 32/47/23 26/48/23 28/17/23 33/16/23
|
vt 0.8125 0.9375
|
||||||
f 27/12/24 25/11/24 24/18/24 28/17/24
|
vt 0.6875 0.9375
|
||||||
f 11/49/25 23/50/25 25/11/25 12/14/25
|
vt 0.6875 0.65625
|
||||||
f 26/51/26 15/52/26 14/13/26 27/12/26
|
vt 0.28125 0.59375
|
||||||
f 17/53/27 29/54/27 23/55/27 11/56/27
|
vt 0.25 0.65625
|
||||||
o Cube.001_Cube.006
|
vt 0.28125 1
|
||||||
v -0.062500 0.343750 0.062500
|
vt 0.25 0.9375
|
||||||
v -0.062500 0.500000 0.062500
|
vt 0.84375 0.59375
|
||||||
v -0.062500 0.343750 -0.062500
|
vt 0.84375 1
|
||||||
v -0.062500 0.500000 -0.062500
|
vt 0.46875 0.59375
|
||||||
v 0.062500 0.343750 0.062500
|
vt 0.46875 1
|
||||||
v 0.062500 0.500000 0.062500
|
vt 0.65625 0.59375
|
||||||
v 0.062500 0.343750 -0.062500
|
vt 0.65625 1
|
||||||
v 0.062500 0.500000 -0.062500
|
vt 0.875 0.59375
|
||||||
vt 0.500000 0.000000
|
vt 1 0.59375
|
||||||
vt 0.500000 0.156250
|
vt 1 1
|
||||||
vt 0.375000 0.156250
|
vt 0.875 1
|
||||||
vt 0.375000 0.000000
|
vt 0.6875 0.59375
|
||||||
vt 0.250000 0.156250
|
vt 0.8125 0.59375
|
||||||
vt 0.250000 0.000000
|
vt 0.8125 1
|
||||||
vt 0.125000 0.156250
|
vt 0.6875 1
|
||||||
vt 0.125000 0.000000
|
vt 0.5 0.59375
|
||||||
vt 0.000000 0.156250
|
vt 0.625 0.59375
|
||||||
vt 0.000000 0.000000
|
vt 0.625 1
|
||||||
vt 0.125000 0.156250
|
vt 0.5 1
|
||||||
vt 0.125000 0.281250
|
vt 0.3125 0.59375
|
||||||
vt 0.000000 0.281250
|
vt 0.4375 0.59375
|
||||||
vt 0.000000 0.156250
|
vt 0.4375 1
|
||||||
vt 0.250000 0.281250
|
vt 0.3125 1
|
||||||
vt 0.125000 0.281250
|
vt 0.25 1
|
||||||
vt 0.125000 0.156250
|
vt 0.125 1
|
||||||
vt 0.250000 0.156250
|
vt 0.125 0.875
|
||||||
vn -1.0000 0.0000 0.0000
|
vt 0.25 0.875
|
||||||
vn 0.0000 0.0000 -1.0000
|
vt 0.5 0
|
||||||
vn 1.0000 0.0000 0.0000
|
vt 0.5 0.15625
|
||||||
vn 0.0000 0.0000 1.0000
|
vt 0.375 0.15625
|
||||||
vn 0.0000 -1.0000 0.0000
|
vt 0.375 0
|
||||||
vn 0.0000 1.0000 0.0000
|
vt 0.25 0.15625
|
||||||
s off
|
vt 0.25 0
|
||||||
f 35/57/28 36/58/28 38/59/28 37/60/28
|
vt 0.125 0.15625
|
||||||
f 37/60/29 38/59/29 42/61/29 41/62/29
|
vt 0.125 0
|
||||||
f 41/62/30 42/61/30 40/63/30 39/64/30
|
vt 0 0.15625
|
||||||
f 39/64/31 40/63/31 36/65/31 35/66/31
|
vt 0 0
|
||||||
f 37/67/32 41/68/32 39/69/32 35/70/32
|
vt 0.125 0.28125
|
||||||
f 42/71/33 38/72/33 36/73/33 40/74/33
|
vt 0 0.28125
|
||||||
|
vt 0.25 0.28125
|
||||||
|
|
||||||
|
# objects [3]
|
||||||
|
|
||||||
|
g Light
|
||||||
|
|
||||||
|
s 1
|
||||||
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
|
f 5/5/2 6/6/2 4/4/2 3/3/2
|
||||||
|
f 4/4/1 3/3/1 7/2/1 8/1/1
|
||||||
|
f 3/3/2 4/4/2 9/6/2 10/5/2
|
||||||
|
|
||||||
|
g Bulb
|
||||||
|
|
||||||
|
s 1
|
||||||
|
f 11/7/3 12/8/3 13/9/3 14/10/3
|
||||||
|
f 15/11/4 16/12/4 17/13/4 18/14/4
|
||||||
|
f 19/15/5 20/16/5 21/17/5 22/18/5
|
||||||
|
f 23/19/6 24/20/6 25/21/6 26/22/6
|
||||||
|
f 27/23/7 14/10/7 19/24/7
|
||||||
|
f 13/9/8 28/25/8 20/26/8
|
||||||
|
f 29/27/9 22/18/9 23/19/9
|
||||||
|
f 30/28/10 24/20/10 21/17/10
|
||||||
|
f 31/29/11 18/14/11 11/7/11
|
||||||
|
f 32/30/12 12/8/12 17/13/12
|
||||||
|
f 33/31/13 26/22/13 15/11/13
|
||||||
|
f 34/32/14 16/12/14 25/21/14
|
||||||
|
f 29/33/15 27/34/15 19/15/15 22/18/15
|
||||||
|
f 14/10/1 13/9/1 20/26/1 19/24/1
|
||||||
|
f 28/35/16 30/36/16 21/17/16 20/16/16
|
||||||
|
f 24/20/2 23/19/2 22/18/2 21/17/2
|
||||||
|
f 33/37/17 29/38/17 23/19/17 26/22/17
|
||||||
|
f 30/39/18 34/40/18 25/21/18 24/20/18
|
||||||
|
f 16/12/19 15/11/19 26/22/19 25/21/19
|
||||||
|
f 31/41/20 33/42/20 15/11/20 18/14/20
|
||||||
|
f 34/43/21 32/44/21 17/13/21 16/12/21
|
||||||
|
f 12/8/22 11/7/22 18/14/22 17/13/22
|
||||||
|
f 27/45/23 31/46/23 11/7/23 14/10/23
|
||||||
|
f 32/47/24 28/48/24 13/9/24 12/8/24
|
||||||
|
f 29/49/25 33/50/25 31/51/25 27/52/25
|
||||||
|
|
||||||
|
g Base
|
||||||
|
|
||||||
|
s 1
|
||||||
|
f 28/53/5 35/54/5 36/55/5 30/56/5
|
||||||
|
f 30/56/6 36/55/6 37/57/6 34/58/6
|
||||||
|
f 34/58/4 37/57/4 38/59/4 32/60/4
|
||||||
|
f 32/60/3 38/59/3 35/61/3 28/62/3
|
||||||
|
f 30/59/25 34/63/25 32/64/25 28/61/25
|
||||||
|
f 37/65/26 36/63/26 35/59/26 38/57/26
|
||||||
|
|
||||||
|
|
|
@ -1,105 +1,101 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'vintage_lantern_ceiling.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T19:35:50Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cube.003
|
|
||||||
v -0.125000 0.000000 0.125000
|
# vertices [24]
|
||||||
v -0.125000 0.375000 0.125000
|
|
||||||
v -0.125000 0.000000 -0.125000
|
v -0.125 0 0.125
|
||||||
v -0.125000 0.375000 -0.125000
|
v -0.125 0.375 0.125
|
||||||
v 0.125000 0.000000 0.125000
|
v -0.125 0.375 -0.125
|
||||||
v 0.125000 0.375000 0.125000
|
v -0.125 0 -0.125
|
||||||
v 0.125000 0.000000 -0.125000
|
v 0.125 0.375 -0.125
|
||||||
v 0.125000 0.375000 -0.125000
|
v 0.125 0 -0.125
|
||||||
vt 0.750000 0.500000
|
v 0.125 0.375 0.125
|
||||||
vt 0.750000 0.875000
|
v 0.125 0 0.125
|
||||||
vt 0.500000 0.875000
|
v -0.15625 0.375 0.15625
|
||||||
vt 0.500000 0.500000
|
v -0.15625 0.4375 0.15625
|
||||||
vt 0.250000 0.875000
|
v -0.15625 0.4375 -0.15625
|
||||||
vt 0.250000 0.500000
|
v -0.15625 0.375 -0.15625
|
||||||
vt 0.000000 0.875000
|
v 0.15625 0.4375 -0.15625
|
||||||
vt 0.000000 0.500000
|
v 0.15625 0.375 -0.15625
|
||||||
vt 1.000000 0.500000
|
v 0.15625 0.4375 0.15625
|
||||||
vt 1.000000 0.875000
|
v 0.15625 0.375 0.15625
|
||||||
vt 0.750000 0.250000
|
v -0.0625 0.4375 0.0625
|
||||||
vt 1.000000 0.250000
|
v -0.0625 0.5 0.0625
|
||||||
vn -1.0000 0.0000 0.0000
|
v -0.0625 0.5 -0.0625
|
||||||
vn 0.0000 0.0000 -1.0000
|
v -0.0625 0.4375 -0.0625
|
||||||
vn 1.0000 0.0000 0.0000
|
v 0.0625 0.5 -0.0625
|
||||||
vn 0.0000 0.0000 1.0000
|
v 0.0625 0.4375 -0.0625
|
||||||
vn 0.0000 -1.0000 0.0000
|
v 0.0625 0.5 0.0625
|
||||||
g Cube.003_Cube.003_Material.001
|
v 0.0625 0.4375 0.0625
|
||||||
s off
|
|
||||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
# normals [6]
|
||||||
f 3/4/2 4/3/2 8/5/2 7/6/2
|
|
||||||
f 7/6/3 8/5/3 6/7/3 5/8/3
|
vn -1 0 0
|
||||||
f 5/9/4 6/10/4 2/2/4 1/1/4
|
vn 0 0 -1
|
||||||
f 3/11/5 7/12/5 5/9/5 1/1/5
|
vn 1 0 0
|
||||||
o Cube.001
|
vn 0 0 1
|
||||||
v -0.156250 0.375000 0.156250
|
vn 0 -1 0
|
||||||
v -0.156250 0.437500 0.156250
|
vn 0 1 0
|
||||||
v -0.156250 0.375000 -0.156250
|
|
||||||
v -0.156250 0.437500 -0.156250
|
# uvs [31]
|
||||||
v 0.156250 0.375000 0.156250
|
|
||||||
v 0.156250 0.437500 0.156250
|
vt 0.75 0.5
|
||||||
v 0.156250 0.375000 -0.156250
|
vt 0.75 0.875
|
||||||
v 0.156250 0.437500 -0.156250
|
vt 0.5 0.875
|
||||||
v -0.062500 0.437500 0.062500
|
vt 0.5 0.5
|
||||||
v -0.062500 0.500000 0.062500
|
vt 0.25 0.875
|
||||||
v -0.062500 0.437500 -0.062500
|
vt 0.25 0.5
|
||||||
v -0.062500 0.500000 -0.062500
|
vt 0 0.875
|
||||||
v 0.062500 0.437500 0.062500
|
vt 0 0.5
|
||||||
v 0.062500 0.500000 0.062500
|
vt 1 0.5
|
||||||
v 0.062500 0.437500 -0.062500
|
vt 1 0.875
|
||||||
v 0.062500 0.500000 -0.062500
|
vt 0.75 0.25
|
||||||
vt 0.500000 0.875000
|
vt 1 0.25
|
||||||
vt 0.500000 0.812500
|
vt 0.5 0.8125
|
||||||
vt 0.812500 0.812500
|
vt 0.8125 0.8125
|
||||||
vt 0.812500 0.875000
|
vt 0.8125 0.875
|
||||||
vt 0.812500 0.812500
|
vt 0.1875 0.875
|
||||||
vt 0.812500 0.875000
|
vt 0.1875 0.8125
|
||||||
vt 0.500000 0.875000
|
vt 0.1875 0.5
|
||||||
vt 0.500000 0.812500
|
vt 1 0.375
|
||||||
vt 0.187500 0.875000
|
vt 1 0.4375
|
||||||
vt 0.187500 0.812500
|
vt 0.875 0.4375
|
||||||
vt 0.187500 0.875000
|
vt 0.875 0.375
|
||||||
vt 0.187500 0.812500
|
vt 0.75 0.4375
|
||||||
vt 0.500000 0.812500
|
vt 0.75 0.375
|
||||||
vt 0.187500 0.812500
|
vt 0.625 0.4375
|
||||||
vt 0.187500 0.500000
|
vt 0.625 0.375
|
||||||
vt 0.500000 0.500000
|
vt 0.5 0.4375
|
||||||
vt 0.500000 0.500000
|
vt 0.5 0.375
|
||||||
vt 0.500000 0.812500
|
vt 0.625 0.625
|
||||||
vt 0.187500 0.812500
|
vt 0.5 0.625
|
||||||
vt 0.187500 0.500000
|
vt 0.625 0.5
|
||||||
vt 1.000000 0.375000
|
|
||||||
vt 1.000000 0.437500
|
# objects [2]
|
||||||
vt 0.875000 0.437500
|
|
||||||
vt 0.875000 0.375000
|
g LanternGlobe
|
||||||
vt 0.750000 0.437500
|
|
||||||
vt 0.750000 0.375000
|
s 1
|
||||||
vt 0.625000 0.437500
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
vt 0.625000 0.375000
|
f 4/4/2 3/3/2 5/5/2 6/6/2
|
||||||
vt 0.500000 0.437500
|
f 6/6/3 5/5/3 7/7/3 8/8/3
|
||||||
vt 0.500000 0.375000
|
f 8/9/4 7/10/4 2/2/4 1/1/4
|
||||||
vt 0.625000 0.625000
|
f 4/11/5 6/12/5 8/9/5 1/1/5
|
||||||
vt 0.500000 0.625000
|
|
||||||
vt 0.500000 0.500000
|
g LanternMetal
|
||||||
vt 0.625000 0.500000
|
|
||||||
vn -1.0000 0.0000 0.0000
|
s 1
|
||||||
vn 0.0000 0.0000 -1.0000
|
f 9/3/1 10/13/1 11/14/1 12/15/1
|
||||||
vn 1.0000 0.0000 0.0000
|
f 12/14/2 11/15/2 13/3/2 14/13/2
|
||||||
vn 0.0000 0.0000 1.0000
|
f 14/13/3 13/3/3 15/16/3 16/17/3
|
||||||
vn 0.0000 -1.0000 0.0000
|
f 16/16/4 15/17/4 10/13/4 9/3/4
|
||||||
vn 0.0000 1.0000 0.0000
|
f 12/13/5 14/17/5 16/18/5 9/4/5
|
||||||
g Cube.001_Cube.001_Material.000
|
f 13/4/6 11/13/6 10/17/6 15/18/6
|
||||||
s off
|
f 17/19/1 18/20/1 19/21/1 20/22/1
|
||||||
f 9/13/6 10/14/6 12/15/6 11/16/6
|
f 20/22/2 19/21/2 21/23/2 22/24/2
|
||||||
f 11/17/7 12/18/7 16/19/7 15/20/7
|
f 22/24/3 21/23/3 23/25/3 24/26/3
|
||||||
f 15/20/8 16/19/8 14/21/8 13/22/8
|
f 24/26/4 23/25/4 18/27/4 17/28/4
|
||||||
f 13/23/9 14/24/9 10/14/9 9/13/9
|
f 21/29/6 19/30/6 18/4/6 23/31/6
|
||||||
f 11/25/10 15/26/10 13/27/10 9/28/10
|
|
||||||
f 16/29/11 12/30/11 10/31/11 14/32/11
|
|
||||||
f 17/33/6 18/34/6 20/35/6 19/36/6
|
|
||||||
f 19/36/7 20/35/7 24/37/7 23/38/7
|
|
||||||
f 23/38/8 24/37/8 22/39/8 21/40/8
|
|
||||||
f 21/40/9 22/39/9 18/41/9 17/42/9
|
|
||||||
f 24/43/11 20/44/11 18/45/11 22/46/11
|
|
||||||
|
|
|
@ -1,131 +1,118 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'vintage_lantern.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T19:37:30Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cube.003
|
|
||||||
v -0.125000 -0.437500 0.125000
|
# vertices [32]
|
||||||
v -0.125000 -0.062500 0.125000
|
|
||||||
v -0.125000 -0.437500 -0.125000
|
v -0.125 -0.4375 0.125
|
||||||
v -0.125000 -0.062500 -0.125000
|
v -0.125 -0.0625 0.125
|
||||||
v 0.125000 -0.437500 0.125000
|
v -0.125 -0.0625 -0.125
|
||||||
v 0.125000 -0.062500 0.125000
|
v -0.125 -0.4375 -0.125
|
||||||
v 0.125000 -0.437500 -0.125000
|
v 0.125 -0.0625 -0.125
|
||||||
v 0.125000 -0.062500 -0.125000
|
v 0.125 -0.4375 -0.125
|
||||||
vt 0.750000 0.500000
|
v 0.125 -0.0625 0.125
|
||||||
vt 0.750000 0.875000
|
v 0.125 -0.4375 0.125
|
||||||
vt 0.500000 0.875000
|
v -0.15625 -0.5 0.15625
|
||||||
vt 0.500000 0.500000
|
v -0.15625 -0.4375 0.15625
|
||||||
vt 0.250000 0.875000
|
v -0.15625 -0.4375 -0.15625
|
||||||
vt 0.250000 0.500000
|
v -0.15625 -0.5 -0.15625
|
||||||
vt 0.000000 0.875000
|
v 0.15625 -0.4375 -0.15625
|
||||||
vt 0.000000 0.500000
|
v 0.15625 -0.5 -0.15625
|
||||||
vt 1.000000 0.500000
|
v 0.15625 -0.4375 0.15625
|
||||||
vt 1.000000 0.875000
|
v 0.15625 -0.5 0.15625
|
||||||
vn -1.0000 0.0000 0.0000
|
v -0.15625 -0.0625 0.15625
|
||||||
vn 0.0000 0.0000 -1.0000
|
v -0.15625 0 0.15625
|
||||||
vn 1.0000 0.0000 0.0000
|
v -0.15625 0 -0.15625
|
||||||
vn 0.0000 0.0000 1.0000
|
v -0.15625 -0.0625 -0.15625
|
||||||
g Cube.003_Cube.003_Material.001
|
v 0.15625 0 -0.15625
|
||||||
s off
|
v 0.15625 -0.0625 -0.15625
|
||||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
v 0.15625 0 0.15625
|
||||||
f 3/4/2 4/3/2 8/5/2 7/6/2
|
v 0.15625 -0.0625 0.15625
|
||||||
f 7/6/3 8/5/3 6/7/3 5/8/3
|
v -0.0625 0 0.0625
|
||||||
f 5/9/4 6/10/4 2/2/4 1/1/4
|
v -0.0625 0.0625 0.0625
|
||||||
o Cube.001
|
v -0.0625 0.0625 -0.0625
|
||||||
v -0.156250 -0.500000 0.156250
|
v -0.0625 0 -0.0625
|
||||||
v -0.156250 -0.437500 0.156250
|
v 0.0625 0.0625 -0.0625
|
||||||
v -0.156250 -0.500000 -0.156250
|
v 0.0625 0 -0.0625
|
||||||
v -0.156250 -0.437500 -0.156250
|
v 0.0625 0.0625 0.0625
|
||||||
v 0.156250 -0.500000 0.156250
|
v 0.0625 0 0.0625
|
||||||
v 0.156250 -0.437500 0.156250
|
|
||||||
v 0.156250 -0.500000 -0.156250
|
# normals [6]
|
||||||
v 0.156250 -0.437500 -0.156250
|
|
||||||
v -0.156250 -0.062500 0.156250
|
vn -1 0 0
|
||||||
v -0.156250 0.000000 0.156250
|
vn 0 0 -1
|
||||||
v -0.156250 -0.062500 -0.156250
|
vn 1 0 0
|
||||||
v -0.156250 0.000000 -0.156250
|
vn 0 0 1
|
||||||
v 0.156250 -0.062500 0.156250
|
vn 0 -1 0
|
||||||
v 0.156250 0.000000 0.156250
|
vn 0 1 0
|
||||||
v 0.156250 -0.062500 -0.156250
|
|
||||||
v 0.156250 0.000000 -0.156250
|
# uvs [35]
|
||||||
v -0.062500 0.000000 0.062500
|
|
||||||
v -0.062500 0.062500 0.062500
|
vt 0.75 0.5
|
||||||
v -0.062500 0.000000 -0.062500
|
vt 0.75 0.875
|
||||||
v -0.062500 0.062500 -0.062500
|
vt 0.5 0.875
|
||||||
v 0.062500 0.000000 0.062500
|
vt 0.5 0.5
|
||||||
v 0.062500 0.062500 0.062500
|
vt 0.25 0.875
|
||||||
v 0.062500 0.000000 -0.062500
|
vt 0.25 0.5
|
||||||
v 0.062500 0.062500 -0.062500
|
vt 0 0.875
|
||||||
vt 0.500000 0.187500
|
vt 0 0.5
|
||||||
vt 0.500000 0.125000
|
vt 1 0.5
|
||||||
vt 0.812500 0.125000
|
vt 1 0.875
|
||||||
vt 0.812500 0.187500
|
vt 0.5 0.1875
|
||||||
vt 0.812500 0.125000
|
vt 0.5 0.125
|
||||||
vt 0.812500 0.187500
|
vt 0.8125 0.125
|
||||||
vt 0.500000 0.187500
|
vt 0.8125 0.1875
|
||||||
vt 0.500000 0.125000
|
vt 0.1875 0.1875
|
||||||
vt 0.187500 0.187500
|
vt 0.1875 0.125
|
||||||
vt 0.187500 0.125000
|
vt 0.1875 0.5
|
||||||
vt 0.187500 0.187500
|
vt 0.5 0.8125
|
||||||
vt 0.187500 0.125000
|
vt 0.8125 0.8125
|
||||||
vt 0.500000 0.500000
|
vt 0.8125 0.875
|
||||||
vt 0.187500 0.500000
|
vt 0.1875 0.875
|
||||||
vt 0.500000 0.500000
|
vt 0.1875 0.8125
|
||||||
vt 0.187500 0.500000
|
vt 1 0.375
|
||||||
vt 0.500000 0.875000
|
vt 1 0.4375
|
||||||
vt 0.500000 0.812500
|
vt 0.875 0.4375
|
||||||
vt 0.812500 0.812500
|
vt 0.875 0.375
|
||||||
vt 0.812500 0.875000
|
vt 0.75 0.4375
|
||||||
vt 0.812500 0.812500
|
vt 0.75 0.375
|
||||||
vt 0.812500 0.875000
|
vt 0.625 0.4375
|
||||||
vt 0.500000 0.875000
|
vt 0.625 0.375
|
||||||
vt 0.500000 0.812500
|
vt 0.5 0.4375
|
||||||
vt 0.187500 0.875000
|
vt 0.5 0.375
|
||||||
vt 0.187500 0.812500
|
vt 0.625 0.625
|
||||||
vt 0.187500 0.875000
|
vt 0.5 0.625
|
||||||
vt 0.187500 0.812500
|
vt 0.625 0.5
|
||||||
vt 0.500000 0.812500
|
|
||||||
vt 0.187500 0.812500
|
# objects [2]
|
||||||
vt 0.187500 0.500000
|
|
||||||
vt 0.500000 0.500000
|
g LanternGlobe
|
||||||
vt 0.500000 0.500000
|
|
||||||
vt 0.500000 0.812500
|
s 1
|
||||||
vt 0.187500 0.812500
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
vt 0.187500 0.500000
|
f 4/4/2 3/3/2 5/5/2 6/6/2
|
||||||
vt 1.000000 0.375000
|
f 6/6/3 5/5/3 7/7/3 8/8/3
|
||||||
vt 1.000000 0.437500
|
f 8/9/4 7/10/4 2/2/4 1/1/4
|
||||||
vt 0.875000 0.437500
|
|
||||||
vt 0.875000 0.375000
|
g LanternMetal
|
||||||
vt 0.750000 0.437500
|
|
||||||
vt 0.750000 0.375000
|
s 1
|
||||||
vt 0.625000 0.437500
|
f 9/11/1 10/12/1 11/13/1 12/14/1
|
||||||
vt 0.625000 0.375000
|
f 12/13/2 11/14/2 13/11/2 14/12/2
|
||||||
vt 0.500000 0.437500
|
f 14/12/3 13/11/3 15/15/3 16/16/3
|
||||||
vt 0.500000 0.375000
|
f 16/15/4 15/16/4 10/12/4 9/11/4
|
||||||
vt 0.625000 0.625000
|
f 12/4/5 14/17/5 16/15/5 9/11/5
|
||||||
vt 0.500000 0.625000
|
f 13/11/6 11/4/6 10/17/6 15/15/6
|
||||||
vt 0.500000 0.500000
|
f 17/3/1 18/18/1 19/19/1 20/20/1
|
||||||
vt 0.625000 0.500000
|
f 20/19/2 19/20/2 21/3/2 22/18/2
|
||||||
vn -1.0000 0.0000 0.0000
|
f 22/18/3 21/3/3 23/21/3 24/22/3
|
||||||
vn 0.0000 0.0000 -1.0000
|
f 24/21/4 23/22/4 18/18/4 17/3/4
|
||||||
vn 1.0000 0.0000 0.0000
|
f 20/18/5 22/22/5 24/17/5 17/4/5
|
||||||
vn 0.0000 0.0000 1.0000
|
f 21/4/6 19/18/6 18/22/6 23/17/6
|
||||||
vn 0.0000 -1.0000 0.0000
|
f 25/23/1 26/24/1 27/25/1 28/26/1
|
||||||
vn 0.0000 1.0000 0.0000
|
f 28/26/2 27/25/2 29/27/2 30/28/2
|
||||||
g Cube.001_Cube.001_Material.000
|
f 30/28/3 29/27/3 31/29/3 32/30/3
|
||||||
s off
|
f 32/30/4 31/29/4 26/31/4 25/32/4
|
||||||
f 9/11/5 10/12/5 12/13/5 11/14/5
|
f 29/33/6 27/34/6 26/4/6 31/35/6
|
||||||
f 11/15/6 12/16/6 16/17/6 15/18/6
|
|
||||||
f 15/18/7 16/17/7 14/19/7 13/20/7
|
|
||||||
f 13/21/8 14/22/8 10/12/8 9/11/8
|
|
||||||
f 11/23/9 15/24/9 13/21/9 9/11/9
|
|
||||||
f 16/17/10 12/25/10 10/26/10 14/19/10
|
|
||||||
f 17/27/5 18/28/5 20/29/5 19/30/5
|
|
||||||
f 19/31/6 20/32/6 24/33/6 23/34/6
|
|
||||||
f 23/34/7 24/33/7 22/35/7 21/36/7
|
|
||||||
f 21/37/8 22/38/8 18/28/8 17/27/8
|
|
||||||
f 19/39/9 23/40/9 21/41/9 17/42/9
|
|
||||||
f 24/43/10 20/44/10 18/45/10 22/46/10
|
|
||||||
f 25/47/5 26/48/5 28/49/5 27/50/5
|
|
||||||
f 27/50/6 28/49/6 32/51/6 31/52/6
|
|
||||||
f 31/52/7 32/51/7 30/53/7 29/54/7
|
|
||||||
f 29/54/8 30/53/8 26/55/8 25/56/8
|
|
||||||
f 32/57/10 28/58/10 26/59/10 30/60/10
|
|
||||||
|
|
|
@ -1,142 +1,136 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'vintage_lantern_wall2_merged.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T19:39:42Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Cube.003
|
|
||||||
v -0.125000 -0.187500 -0.312500
|
# vertices [36]
|
||||||
v -0.125000 -0.187500 0.062500
|
|
||||||
v -0.125000 0.062500 -0.312500
|
v -0.125 -0.1875 -0.3125
|
||||||
v -0.125000 0.062500 0.062500
|
v -0.125 -0.1875 0.0625
|
||||||
v 0.125000 -0.187500 -0.312500
|
v -0.125 0.0625 0.0625
|
||||||
v 0.125000 -0.187500 0.062500
|
v -0.125 0.0625 -0.3125
|
||||||
v 0.125000 0.062500 -0.312500
|
v 0.125 0.0625 0.0625
|
||||||
v 0.125000 0.062500 0.062500
|
v 0.125 0.0625 -0.3125
|
||||||
v -0.000000 -0.437500 0.312500
|
v 0.125 -0.1875 0.0625
|
||||||
v 0.000000 -0.437500 0.062500
|
v 0.125 -0.1875 -0.3125
|
||||||
v -0.000000 0.062500 0.312500
|
v 0 -0.4375 0.3125
|
||||||
v 0.000000 0.062500 0.062500
|
v 0 -0.4375 0.0625
|
||||||
vt 0.750000 0.500000
|
v 0 0.0625 0.0625
|
||||||
vt 0.750000 0.875000
|
v 0 0.0625 0.3125
|
||||||
vt 0.500000 0.875000
|
v -0.15625 -0.21875 0.0625
|
||||||
vt 0.500000 0.500000
|
v -0.15625 -0.21875 0.125
|
||||||
vt 0.250000 0.875000
|
v -0.15625 0.09375 0.125
|
||||||
vt 0.250000 0.500000
|
v -0.15625 0.09375 0.0625
|
||||||
vt 0.000000 0.875000
|
v 0.15625 0.09375 0.125
|
||||||
vt 0.000000 0.500000
|
v 0.15625 0.09375 0.0625
|
||||||
vt 1.000000 0.500000
|
v 0.15625 -0.21875 0.125
|
||||||
vt 1.000000 0.875000
|
v 0.15625 -0.21875 0.0625
|
||||||
vt 0.000000 0.500000
|
v -0.0625 -0.125 0.125
|
||||||
vt 0.000000 0.250000
|
v -0.0625 -0.125 0.1875
|
||||||
vt 0.500000 0.250000
|
v -0.0625 0 0.1875
|
||||||
vt 0.500000 0.500000
|
v -0.0625 0 0.125
|
||||||
vt 0.750000 0.250000
|
v 0.0625 0 0.1875
|
||||||
vt 1.000000 0.250000
|
v 0.0625 0 0.125
|
||||||
vn -1.0000 0.0000 0.0000
|
v 0.0625 -0.125 0.1875
|
||||||
vn 0.0000 1.0000 0.0000
|
v 0.0625 -0.125 0.125
|
||||||
vn 1.0000 0.0000 0.0000
|
v 0.125 -0.5 -0.125
|
||||||
vn 0.0000 -1.0000 0.0000
|
v 0.125 -0.5 0.375
|
||||||
vn 0.0000 0.0000 -1.0000
|
v -0.125 -0.5 0.375
|
||||||
g Cube.003_Cube.003_Material.001
|
v -0.125 -0.5 -0.125
|
||||||
s off
|
v -0.125 -0.4375 0.375
|
||||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
v -0.125 -0.4375 -0.125
|
||||||
f 3/4/2 4/3/2 8/5/2 7/6/2
|
v 0.125 -0.4375 0.375
|
||||||
f 7/6/3 8/5/3 6/7/3 5/8/3
|
v 0.125 -0.4375 -0.125
|
||||||
f 5/9/4 6/10/4 2/2/4 1/1/4
|
|
||||||
f 9/11/3 10/12/3 12/13/3 11/14/3
|
# normals [6]
|
||||||
f 3/15/5 7/16/5 5/9/5 1/1/5
|
|
||||||
o Cube.001
|
vn -1 0 0
|
||||||
v -0.156250 -0.218750 0.062500
|
vn 0 1 0
|
||||||
v -0.156250 -0.218750 0.125000
|
vn 1 0 0
|
||||||
v -0.156250 0.093750 0.062500
|
vn 0 -1 0
|
||||||
v -0.156250 0.093750 0.125000
|
vn 0 0 -1
|
||||||
v 0.156250 -0.218750 0.062500
|
vn 0 0 1
|
||||||
v 0.156250 -0.218750 0.125000
|
|
||||||
v 0.156250 0.093750 0.062500
|
# uvs [47]
|
||||||
v 0.156250 0.093750 0.125000
|
|
||||||
v -0.062500 -0.125000 0.125000
|
vt 0.75 0.5
|
||||||
v -0.062500 -0.125000 0.187500
|
vt 0.75 0.875
|
||||||
v -0.062500 -0.000000 0.125000
|
vt 0.5 0.875
|
||||||
v -0.062500 -0.000000 0.187500
|
vt 0.5 0.5
|
||||||
v 0.062500 -0.125000 0.125000
|
vt 0.25 0.875
|
||||||
v 0.062500 -0.125000 0.187500
|
vt 0.25 0.5
|
||||||
v 0.062500 -0.000000 0.125000
|
vt 0 0.875
|
||||||
v 0.062500 -0.000000 0.187500
|
vt 0 0.5
|
||||||
v 0.125000 -0.500000 -0.125000
|
vt 1 0.5
|
||||||
v 0.125000 -0.500000 0.375000
|
vt 1 0.875
|
||||||
v -0.125000 -0.500000 -0.125000
|
vt 0 0.25
|
||||||
v -0.125000 -0.500000 0.375000
|
vt 0.5 0.25
|
||||||
v 0.125000 -0.437500 -0.125000
|
vt 0.75 0.25
|
||||||
v 0.125000 -0.437500 0.375000
|
vt 1 0.25
|
||||||
v -0.125000 -0.437500 -0.125000
|
vt 0.5 0.8125
|
||||||
v -0.125000 -0.437500 0.375000
|
vt 0.8125 0.8125
|
||||||
vt 0.500000 0.875000
|
vt 0.8125 0.875
|
||||||
vt 0.500000 0.812500
|
vt 0.1875 0.875
|
||||||
vt 0.812500 0.812500
|
vt 0.1875 0.8125
|
||||||
vt 0.812500 0.875000
|
vt 0.1875 0.5
|
||||||
vt 0.812500 0.812500
|
vt 1 0.375
|
||||||
vt 0.812500 0.875000
|
vt 1 0.4375
|
||||||
vt 0.500000 0.875000
|
vt 0.875 0.4375
|
||||||
vt 0.500000 0.812500
|
vt 0.875 0.375
|
||||||
vt 0.187500 0.875000
|
vt 0.75 0.4375
|
||||||
vt 0.187500 0.812500
|
vt 0.75 0.375
|
||||||
vt 0.187500 0.875000
|
vt 0.625 0.4375
|
||||||
vt 0.187500 0.812500
|
vt 0.625 0.375
|
||||||
vt 0.500000 0.812500
|
vt 0.5 0.4375
|
||||||
vt 0.187500 0.812500
|
vt 0.5 0.375
|
||||||
vt 0.187500 0.500000
|
vt 0.625 0.625
|
||||||
vt 0.500000 0.500000
|
vt 0.5 0.625
|
||||||
vt 0.500000 0.500000
|
vt 0.625 0.5
|
||||||
vt 0.500000 0.812500
|
vt 0.9375 0.25
|
||||||
vt 0.187500 0.812500
|
vt 0.9375 0.75
|
||||||
vt 0.187500 0.500000
|
vt 0.6875 0.75
|
||||||
vt 1.000000 0.375000
|
vt 0.6875 0.25
|
||||||
vt 1.000000 0.437500
|
vt 0.625 0.75
|
||||||
vt 0.875000 0.437500
|
vt 0.625 0.25
|
||||||
vt 0.875000 0.375000
|
vt 0.375 0.75
|
||||||
vt 0.750000 0.437500
|
vt 0.375 0.25
|
||||||
vt 0.750000 0.375000
|
vt 0.3125 0.75
|
||||||
vt 0.625000 0.437500
|
vt 0.3125 0.25
|
||||||
vt 0.625000 0.375000
|
vt 0.6875 0.1875
|
||||||
vt 0.500000 0.437500
|
vt 0.9375 0.1875
|
||||||
vt 0.500000 0.375000
|
vt 0.6875 0.8125
|
||||||
vt 0.625000 0.625000
|
vt 0.9375 0.8125
|
||||||
vt 0.500000 0.625000
|
|
||||||
vt 0.500000 0.500000
|
# objects [2]
|
||||||
vt 0.625000 0.500000
|
|
||||||
vt 0.937500 0.250000
|
g Lantern
|
||||||
vt 0.937500 0.750000
|
|
||||||
vt 0.687500 0.750000
|
s 1
|
||||||
vt 0.687500 0.250000
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
vt 0.625000 0.750000
|
f 4/4/2 3/3/2 5/5/2 6/6/2
|
||||||
vt 0.625000 0.250000
|
f 6/6/3 5/5/3 7/7/3 8/8/3
|
||||||
vt 0.375000 0.750000
|
f 8/9/4 7/10/4 2/2/4 1/1/4
|
||||||
vt 0.375000 0.250000
|
f 9/8/3 10/11/3 11/12/3 12/4/3
|
||||||
vt 0.312500 0.750000
|
f 4/13/5 6/14/5 8/9/5 1/1/5
|
||||||
vt 0.312500 0.250000
|
|
||||||
vt 0.687500 0.187500
|
g LanternMetal
|
||||||
vt 0.937500 0.187500
|
|
||||||
vt 0.687500 0.812500
|
s 1
|
||||||
vt 0.937500 0.812500
|
f 13/3/1 14/15/1 15/16/1 16/17/1
|
||||||
vn -1.0000 0.0000 0.0000
|
f 16/16/2 15/17/2 17/3/2 18/15/2
|
||||||
vn 0.0000 1.0000 0.0000
|
f 18/15/3 17/3/3 19/18/3 20/19/3
|
||||||
vn 1.0000 0.0000 0.0000
|
f 20/18/4 19/19/4 14/15/4 13/3/4
|
||||||
vn 0.0000 -1.0000 0.0000
|
f 16/15/5 18/19/5 20/20/5 13/4/5
|
||||||
vn 0.0000 0.0000 -1.0000
|
f 17/4/6 15/15/6 14/19/6 19/20/6
|
||||||
vn 0.0000 0.0000 1.0000
|
f 21/21/1 22/22/1 23/23/1 24/24/1
|
||||||
g Cube.001_Cube.001_Material.000
|
f 24/24/2 23/23/2 25/25/2 26/26/2
|
||||||
s off
|
f 26/26/3 25/25/3 27/27/3 28/28/3
|
||||||
f 13/17/6 14/18/6 16/19/6 15/20/6
|
f 28/28/4 27/27/4 22/29/4 21/30/4
|
||||||
f 15/21/7 16/22/7 20/23/7 19/24/7
|
f 25/31/6 23/32/6 22/4/6 27/33/6
|
||||||
f 19/24/8 20/23/8 18/25/8 17/26/8
|
f 29/34/4 30/35/4 31/36/4 32/37/4
|
||||||
f 17/27/9 18/28/9 14/18/9 13/17/9
|
f 32/37/1 31/36/1 33/38/1 34/39/1
|
||||||
f 15/29/10 19/30/10 17/31/10 13/32/10
|
f 34/39/2 33/38/2 35/40/2 36/41/2
|
||||||
f 20/33/11 16/34/11 14/35/11 18/36/11
|
f 36/41/3 35/40/3 30/42/3 29/43/3
|
||||||
f 21/37/6 22/38/6 24/39/6 23/40/6
|
f 32/37/5 34/44/5 36/45/5 29/34/5
|
||||||
f 23/40/7 24/39/7 28/41/7 27/42/7
|
f 33/46/6 31/36/6 30/35/6 35/47/6
|
||||||
f 27/42/8 28/41/8 26/43/8 25/44/8
|
|
||||||
f 25/44/9 26/43/9 22/45/9 21/46/9
|
|
||||||
f 28/47/11 24/48/11 22/49/11 26/50/11
|
|
||||||
f 29/51/9 30/52/9 32/53/9 31/54/9
|
|
||||||
f 31/54/6 32/53/6 36/55/6 35/56/6
|
|
||||||
f 35/56/7 36/55/7 34/57/7 33/58/7
|
|
||||||
f 33/58/8 34/57/8 30/59/8 29/60/8
|
|
||||||
f 31/54/10 35/61/10 33/62/10 29/51/10
|
|
||||||
f 36/63/11 32/53/11 30/52/11 34/64/11
|
|
||||||
|
|
|
@ -1,169 +1,156 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'vintage_oillamp.blend'
|
# Processed with obj-simplify v1.1 (a2f5cd9) | 2021-08-06T20:28:11Z | https://github.com/jonnenauha/obj-simplify
|
||||||
|
|
||||||
|
# Blender v2.93.0 OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Plane
|
|
||||||
v -0.031250 -0.468750 -0.031250
|
# vertices [40]
|
||||||
v 0.031250 -0.468750 0.031250
|
|
||||||
v -0.031250 0.031250 -0.031250
|
v -0.03125 -0.46875 -0.03125
|
||||||
v 0.031250 0.031250 0.031250
|
v 0.03125 -0.46875 0.03125
|
||||||
v 0.031250 -0.468750 -0.031250
|
v 0.03125 0.03125 0.03125
|
||||||
v -0.031250 -0.468750 0.031250
|
v -0.03125 0.03125 -0.03125
|
||||||
v 0.031250 0.031250 -0.031250
|
v 0.03125 -0.46875 -0.03125
|
||||||
v -0.031250 0.031250 0.031250
|
v -0.03125 -0.46875 0.03125
|
||||||
vt 0.000000 0.000000
|
v -0.03125 0.03125 0.03125
|
||||||
vt 1.000000 0.000000
|
v 0.03125 0.03125 -0.03125
|
||||||
vt 1.000000 1.000000
|
v -0.125 -0.499 0.125
|
||||||
vt 0.000000 1.000000
|
v -0.125 -0.34375 0.125
|
||||||
vt -0.000000 0.000000
|
v -0.125 -0.34375 -0.125
|
||||||
vt 1.000000 0.000000
|
v -0.125 -0.499 -0.125
|
||||||
vt 1.000000 1.000000
|
v 0.125 -0.34375 -0.125
|
||||||
vt -0.000000 1.000000
|
v 0.125 -0.499 -0.125
|
||||||
vn -0.7071 -0.0000 0.7071
|
v 0.125 -0.34375 0.125
|
||||||
vn -0.7071 -0.0000 -0.7071
|
v 0.125 -0.499 0.125
|
||||||
g Plane_Plane_Material.003
|
v -0.125 -0.21875 0.125
|
||||||
s off
|
v -0.125 0.25 0.125
|
||||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
v -0.125 0.25 -0.125
|
||||||
f 5/5/2 6/6/2 8/7/2 7/8/2
|
v -0.125 -0.21875 -0.125
|
||||||
o Cube.001
|
v 0.125 0.25 -0.125
|
||||||
v -0.125000 -0.499000 0.125000
|
v 0.125 -0.21875 -0.125
|
||||||
v -0.125000 -0.343750 0.125000
|
v 0.125 0.25 0.125
|
||||||
v -0.125000 -0.499000 -0.125000
|
v 0.125 -0.21875 0.125
|
||||||
v -0.125000 -0.343750 -0.125000
|
v 0.0625 -0.3125 -0.0625
|
||||||
v 0.125000 -0.499000 0.125000
|
v 0.0625 -0.25 -0.0625
|
||||||
v 0.125000 -0.343750 0.125000
|
v 0.0625 -0.25 0.0625
|
||||||
v 0.125000 -0.499000 -0.125000
|
v 0.0625 -0.3125 0.0625
|
||||||
v 0.125000 -0.343750 -0.125000
|
v -0.0625 -0.25 0.0625
|
||||||
v -0.125000 -0.218750 0.125000
|
v -0.0625 -0.3125 0.0625
|
||||||
v -0.125000 0.250000 0.125000
|
v -0.0625 -0.25 -0.0625
|
||||||
v -0.125000 -0.218750 -0.125000
|
v -0.0625 -0.3125 -0.0625
|
||||||
v -0.125000 0.250000 -0.125000
|
v -0.125 -0.3125 0.125
|
||||||
v 0.125000 -0.218750 0.125000
|
v -0.125 -0.3125 -0.125
|
||||||
v 0.125000 0.250000 0.125000
|
v 0.125 -0.3125 -0.125
|
||||||
v 0.125000 -0.218750 -0.125000
|
v 0.125 -0.3125 0.125
|
||||||
v 0.125000 0.250000 -0.125000
|
v -0.125 -0.25 0.125
|
||||||
vt 0.750000 0.000000
|
v -0.125 -0.25 -0.125
|
||||||
vt 0.750000 0.156250
|
v 0.125 -0.25 -0.125
|
||||||
vt 0.500000 0.156250
|
v 0.125 -0.25 0.125
|
||||||
vt 0.500000 0.000000
|
|
||||||
vt 0.250000 0.156250
|
# normals [8]
|
||||||
vt 0.250000 0.000000
|
|
||||||
vt 0.000000 0.156250
|
vn -0.7071 0 0.7071
|
||||||
vt 0.000000 0.000000
|
vn -0.7071 0 -0.7071
|
||||||
vt 1.000000 0.000000
|
vn -1 0 0
|
||||||
vt 1.000000 0.156250
|
vn 0 0 -1
|
||||||
vt 0.250000 0.406250
|
vn 1 0 0
|
||||||
vt 0.000000 0.406250
|
vn 0 0 1
|
||||||
vt 0.000000 0.156250
|
vn 0 -1 0
|
||||||
vt 0.250000 0.156250
|
vn 0 1 0
|
||||||
vt 0.750000 0.406250
|
|
||||||
vt 0.750000 0.875000
|
# uvs [54]
|
||||||
vt 0.500000 0.875000
|
|
||||||
vt 0.500000 0.406250
|
vt 0 0
|
||||||
vt 0.250000 0.875000
|
vt 1 0
|
||||||
vt 0.250000 0.406250
|
vt 1 1
|
||||||
vt 0.000000 0.875000
|
vt 0 1
|
||||||
vt 0.000000 0.406250
|
vt 0.75 0
|
||||||
vt 1.000000 0.406250
|
vt 0.75 0.15625
|
||||||
vt 1.000000 0.875000
|
vt 0.5 0.15625
|
||||||
vt 0.500000 0.406250
|
vt 0.5 0
|
||||||
vt 0.250000 0.406250
|
vt 0.25 0.15625
|
||||||
vt 0.250000 0.156250
|
vt 0.25 0
|
||||||
vt 0.500000 0.156250
|
vt 0 0.15625
|
||||||
vn -1.0000 0.0000 0.0000
|
vt 1 0.15625
|
||||||
vn 0.0000 0.0000 -1.0000
|
vt 0.25 0.40625
|
||||||
vn 1.0000 0.0000 0.0000
|
vt 0 0.40625
|
||||||
vn 0.0000 0.0000 1.0000
|
vt 0.75 0.40625
|
||||||
vn 0.0000 -1.0000 0.0000
|
vt 0.75 0.875
|
||||||
vn 0.0000 1.0000 0.0000
|
vt 0.5 0.875
|
||||||
g Cube.001_Cube.001_Material.002
|
vt 0.5 0.40625
|
||||||
s off
|
vt 0.25 0.875
|
||||||
f 9/9/3 10/10/3 12/11/3 11/12/3
|
vt 0 0.875
|
||||||
f 11/12/4 12/11/4 16/13/4 15/14/4
|
vt 1 0.40625
|
||||||
f 15/14/5 16/13/5 14/15/5 13/16/5
|
vt 1 0.875
|
||||||
f 13/17/6 14/18/6 10/10/6 9/9/6
|
vt 0.625 0.53125
|
||||||
f 11/19/7 15/20/7 13/21/7 9/22/7
|
vt 0.625 0.46875
|
||||||
f 17/23/3 18/24/3 20/25/3 19/26/3
|
vt 0.75 0.46875
|
||||||
f 19/26/4 20/25/4 24/27/4 23/28/4
|
vt 0.75 0.53125
|
||||||
f 23/28/5 24/27/5 22/29/5 21/30/5
|
vt 0.25 0.53125
|
||||||
f 21/31/6 22/32/6 18/24/6 17/23/6
|
vt 0.25 0.46875
|
||||||
f 18/33/8 22/34/8 24/35/8 20/36/8
|
vt 0.375 0.46875
|
||||||
o Cube
|
vt 0.375 0.53125
|
||||||
v 0.062500 -0.312500 -0.062500
|
vt 0.5 0.46875
|
||||||
v 0.062500 -0.312500 0.062500
|
vt 0.5 0.53125
|
||||||
v -0.062500 -0.312500 0.062500
|
vt 0.25 0.78125
|
||||||
v -0.062500 -0.312500 -0.062500
|
vt 0.25 0.75
|
||||||
v 0.062500 -0.250000 -0.062500
|
vt 0.5 0.75
|
||||||
v 0.062500 -0.250000 0.062500
|
vt 0.5 0.78125
|
||||||
v -0.062500 -0.250000 0.062500
|
vt 0.75 0.75
|
||||||
v -0.062500 -0.250000 -0.062500
|
vt 0.75 0.78125
|
||||||
v -0.125000 -0.343750 0.125000
|
vt 1 0.75
|
||||||
v -0.125000 -0.312500 0.125000
|
vt 1 0.78125
|
||||||
v -0.125000 -0.343750 -0.125000
|
vt 0 0.78125
|
||||||
v -0.125000 -0.312500 -0.125000
|
vt 0 0.75
|
||||||
v 0.125000 -0.343750 0.125000
|
vt 0 0.5
|
||||||
v 0.125000 -0.312500 0.125000
|
vt 0.25 0.5
|
||||||
v 0.125000 -0.343750 -0.125000
|
vt 0.25 0.25
|
||||||
v 0.125000 -0.312500 -0.125000
|
vt 0.25 0.21875
|
||||||
v -0.125000 -0.250000 0.125000
|
vt 0.5 0.21875
|
||||||
v -0.125000 -0.218750 0.125000
|
vt 0.5 0.25
|
||||||
v -0.125000 -0.250000 -0.125000
|
vt 0.75 0.21875
|
||||||
v -0.125000 -0.218750 -0.125000
|
vt 0.75 0.25
|
||||||
v 0.125000 -0.250000 0.125000
|
vt 1 0.21875
|
||||||
v 0.125000 -0.218750 0.125000
|
vt 1 0.25
|
||||||
v 0.125000 -0.250000 -0.125000
|
vt 0 0.25
|
||||||
v 0.125000 -0.218750 -0.125000
|
vt 0 0.21875
|
||||||
vt 0.625000 0.531250
|
|
||||||
vt 0.625000 0.468750
|
# objects [3]
|
||||||
vt 0.750000 0.468750
|
|
||||||
vt 0.750000 0.531250
|
g Wick
|
||||||
vt 0.250000 0.531250
|
|
||||||
vt 0.250000 0.468750
|
s 1
|
||||||
vt 0.375000 0.468750
|
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||||
vt 0.375000 0.531250
|
f 5/1/2 6/2/2 7/3/2 8/4/2
|
||||||
vt 0.500000 0.468750
|
|
||||||
vt 0.500000 0.531250
|
g Globe
|
||||||
vt 0.250000 0.781250
|
|
||||||
vt 0.250000 0.750000
|
s 1
|
||||||
vt 0.500000 0.750000
|
f 9/5/3 10/6/3 11/7/3 12/8/3
|
||||||
vt 0.500000 0.781250
|
f 12/8/4 11/7/4 13/9/4 14/10/4
|
||||||
vt 0.750000 0.750000
|
f 14/10/5 13/9/5 15/11/5 16/1/5
|
||||||
vt 0.750000 0.781250
|
f 16/2/6 15/12/6 10/6/6 9/5/6
|
||||||
vt 1.000000 0.750000
|
f 12/13/7 14/14/7 16/11/7 9/9/7
|
||||||
vt 1.000000 0.781250
|
f 17/15/3 18/16/3 19/17/3 20/18/3
|
||||||
vt 0.000000 0.781250
|
f 20/18/4 19/17/4 21/19/4 22/13/4
|
||||||
vt 0.000000 0.750000
|
f 22/13/5 21/19/5 23/20/5 24/14/5
|
||||||
vt 0.000000 0.500000
|
f 24/21/6 23/22/6 18/16/6 17/15/6
|
||||||
vt 0.250000 0.500000
|
f 18/18/8 23/13/8 21/9/8 19/7/8
|
||||||
vt 0.250000 0.250000
|
|
||||||
vt 0.250000 0.218750
|
g Metal
|
||||||
vt 0.500000 0.218750
|
|
||||||
vt 0.500000 0.250000
|
s 1
|
||||||
vt 0.750000 0.218750
|
f 25/23/5 26/24/5 27/25/5 28/26/5
|
||||||
vt 0.750000 0.250000
|
f 28/27/6 27/28/6 29/29/6 30/30/6
|
||||||
vt 1.000000 0.218750
|
f 30/30/3 29/29/3 31/31/3 32/32/3
|
||||||
vt 1.000000 0.250000
|
f 26/24/4 25/23/4 32/32/4 31/31/4
|
||||||
vt 0.000000 0.250000
|
f 10/33/3 33/34/3 34/35/3 11/36/3
|
||||||
vt 0.000000 0.218750
|
f 11/36/4 34/35/4 35/37/4 13/38/4
|
||||||
vt 0.250000 0.500000
|
f 13/38/5 35/37/5 36/39/5 15/40/5
|
||||||
vt 0.000000 0.500000
|
f 15/41/6 36/42/6 33/34/6 10/33/6
|
||||||
vn 1.0000 0.0000 0.0000
|
f 33/34/8 36/42/8 35/43/8 34/44/8
|
||||||
vn -0.0000 -0.0000 1.0000
|
f 37/45/3 17/46/3 20/47/3 38/48/3
|
||||||
vn -1.0000 -0.0000 -0.0000
|
f 38/48/4 20/47/4 22/49/4 39/50/4
|
||||||
vn 0.0000 0.0000 -1.0000
|
f 39/50/5 22/49/5 24/51/5 40/52/5
|
||||||
vn 0.0000 1.0000 0.0000
|
f 40/53/6 24/54/6 17/46/6 37/45/6
|
||||||
vn 0.0000 -1.0000 0.0000
|
f 38/44/7 39/43/7 40/53/7 37/45/7
|
||||||
g Cube_Cube_Material
|
|
||||||
s off
|
|
||||||
f 25/37/9 29/38/9 30/39/9 26/40/9
|
|
||||||
f 26/41/10 30/42/10 31/43/10 27/44/10
|
|
||||||
f 27/44/11 31/43/11 32/45/11 28/46/11
|
|
||||||
f 29/38/12 25/37/12 28/46/12 32/45/12
|
|
||||||
f 33/47/11 34/48/11 36/49/11 35/50/11
|
|
||||||
f 35/50/12 36/49/12 40/51/12 39/52/12
|
|
||||||
f 39/52/9 40/51/9 38/53/9 37/54/9
|
|
||||||
f 37/55/10 38/56/10 34/48/10 33/47/10
|
|
||||||
f 34/48/13 38/56/13 40/57/13 36/58/13
|
|
||||||
f 41/59/11 42/60/11 44/61/11 43/62/11
|
|
||||||
f 43/62/12 44/61/12 48/63/12 47/64/12
|
|
||||||
f 47/64/9 48/63/9 46/65/9 45/66/9
|
|
||||||
f 45/67/10 46/68/10 42/60/10 41/59/10
|
|
||||||
f 43/69/14 47/70/14 45/67/14 41/59/14
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
# Blender v2.79 (sub 0) OBJ File: 'vintage_streetlamp.blend'
|
|
||||||
# www.blender.org
|
|
||||||
mtllib morelights_vintage_streetlamp.mtl
|
|
||||||
o Plane
|
|
||||||
v -0.312500 0.075000 0.312500
|
|
||||||
v 0.312500 0.075000 0.312500
|
|
||||||
v -0.312500 0.075000 -0.312500
|
|
||||||
v 0.312500 0.075000 -0.312500
|
|
||||||
v 0.000000 0.325000 0.000000
|
|
||||||
vn 0.6247 -0.7809 0.0000
|
|
||||||
vn 0.0000 -0.7809 -0.6247
|
|
||||||
vn -0.6247 -0.7809 0.0000
|
|
||||||
vn 0.0000 -0.7809 0.6247
|
|
||||||
usemtl None
|
|
||||||
s off
|
|
||||||
f 1//1 3//1 5//1
|
|
||||||
f 2//2 1//2 5//2
|
|
||||||
f 4//3 2//3 5//3
|
|
||||||
f 3//4 4//4 5//4
|
|
||||||
o Cube.001
|
|
||||||
v -0.187500 -0.500000 0.187500
|
|
||||||
v -0.250000 0.125000 0.250000
|
|
||||||
v -0.187500 -0.500000 -0.187500
|
|
||||||
v -0.250000 0.125000 -0.250000
|
|
||||||
v 0.187500 -0.500000 0.187500
|
|
||||||
v 0.250000 0.125000 0.250000
|
|
||||||
v 0.187500 -0.500000 -0.187500
|
|
||||||
v 0.250000 0.125000 -0.250000
|
|
||||||
vn -0.9950 -0.0995 0.0000
|
|
||||||
vn 0.0000 -0.0995 -0.9950
|
|
||||||
vn 0.9950 -0.0995 0.0000
|
|
||||||
vn 0.0000 -0.0995 0.9950
|
|
||||||
vn 0.0000 -1.0000 0.0000
|
|
||||||
vn 0.0000 1.0000 0.0000
|
|
||||||
usemtl None
|
|
||||||
s off
|
|
||||||
f 6//5 7//5 9//5 8//5
|
|
||||||
f 8//6 9//6 13//6 12//6
|
|
||||||
f 12//7 13//7 11//7 10//7
|
|
||||||
f 10//8 11//8 7//8 6//8
|
|
||||||
f 8//9 12//9 10//9 6//9
|
|
||||||
f 13//10 9//10 7//10 11//10
|
|
3
mods/skinsdb/meta/character_2093.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Farmer Survivor
|
||||||
|
yotuderconnect
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2094.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Crazy Sam
|
||||||
|
yotuderconnect
|
||||||
|
CC BY-NC-SA 4.0
|
3
mods/skinsdb/meta/character_2095.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
joshua
|
||||||
|
juan
|
||||||
|
CC BY-SA 3.0
|
3
mods/skinsdb/meta/character_2096.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
KLP37 skin
|
||||||
|
KirbyLP37#6969
|
||||||
|
CC BY-SA 3.0
|
3
mods/skinsdb/meta/character_2097.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Mythrodak
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2098.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Dream
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2099.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
ShadowApples
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2100.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Mumbo Jumbo
|
||||||
|
ZestyZachary
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2101.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Doni Bobes
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2102.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
GeorgeNotFound
|
||||||
|
ZestyZachary
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2103.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Doni Bobes (capeless)
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2104.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Sapnap
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2105.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Fundy
|
||||||
|
ZestyZachary
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2106.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
BadBoyHalo
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2107.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Jschlatt
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2108.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Technoblade
|
||||||
|
Christian_Soldier
|
||||||
|
CC 0 (1.0)
|
3
mods/skinsdb/meta/character_2109.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
eline
|
||||||
|
eline
|
||||||
|
CC BY-NC-SA 4.0
|
BIN
mods/skinsdb/textures/character_2093.png
Normal file
After Width: | Height: | Size: 899 B |
BIN
mods/skinsdb/textures/character_2094.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
mods/skinsdb/textures/character_2095.png
Normal file
After Width: | Height: | Size: 264 B |
BIN
mods/skinsdb/textures/character_2096.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
mods/skinsdb/textures/character_2097.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
mods/skinsdb/textures/character_2098.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
mods/skinsdb/textures/character_2099.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
mods/skinsdb/textures/character_2100.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
mods/skinsdb/textures/character_2101.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
mods/skinsdb/textures/character_2102.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
mods/skinsdb/textures/character_2103.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
mods/skinsdb/textures/character_2104.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
mods/skinsdb/textures/character_2105.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
mods/skinsdb/textures/character_2106.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
mods/skinsdb/textures/character_2107.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
mods/skinsdb/textures/character_2108.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
mods/skinsdb/textures/character_2109.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
|
@ -151,7 +151,14 @@ tubelib.register_node("tubelib_addons3:chest", {}, {
|
||||||
end,
|
end,
|
||||||
on_push_item = function(pos, side, item)
|
on_push_item = function(pos, side, item)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
return tubelib.put_item(meta, "main", item)
|
local res = tubelib.put_item(meta, "main", item)
|
||||||
|
if res == false then
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
local leftover = inv:add_item("main", item)
|
||||||
|
item:set_count(leftover:get_count())
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return true
|
||||||
end,
|
end,
|
||||||
on_unpull_item = function(pos, side, item)
|
on_unpull_item = function(pos, side, item)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
|
|
|
@ -244,6 +244,12 @@ local function distributing(pos, meta)
|
||||||
rearrange_table(kvFilterItemNames[name])
|
rearrange_table(kvFilterItemNames[name])
|
||||||
busy = true
|
busy = true
|
||||||
break
|
break
|
||||||
|
elseif num ~= stack:get_count() then
|
||||||
|
local color = Side2Color[side]
|
||||||
|
counter[color] = counter[color] + stack:get_count()
|
||||||
|
rearrange_table(kvFilterItemNames[name])
|
||||||
|
busy = true
|
||||||
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -257,6 +263,10 @@ local function distributing(pos, meta)
|
||||||
counter[color] = counter[color] + num
|
counter[color] = counter[color] + num
|
||||||
busy = true
|
busy = true
|
||||||
end
|
end
|
||||||
|
elseif num ~= stack:get_count() then
|
||||||
|
local color = Side2Color[side]
|
||||||
|
counter[color] = counter[color] + stack:get_count()
|
||||||
|
busy = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,12 +42,16 @@ local function pushing(pos, meta)
|
||||||
local player_name = meta:get_string("player_name")
|
local player_name = meta:get_string("player_name")
|
||||||
local items = tubelib.pull_stack(pos, "L", player_name)
|
local items = tubelib.pull_stack(pos, "L", player_name)
|
||||||
if items ~= nil then
|
if items ~= nil then
|
||||||
|
local count = items:get_count()
|
||||||
if tubelib.push_items(pos, "R", items, player_name) == false then
|
if tubelib.push_items(pos, "R", items, player_name) == false then
|
||||||
-- place item back
|
-- place item back
|
||||||
tubelib.unpull_items(pos, "L", items, player_name)
|
tubelib.unpull_items(pos, "L", items, player_name)
|
||||||
|
-- Complete stack rejected
|
||||||
|
if count == items:get_count() then
|
||||||
State:blocked(pos, meta)
|
State:blocked(pos, meta)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
end
|
||||||
if State.get_state(pos, meta) ~= tubelib.STOPPED then
|
if State.get_state(pos, meta) ~= tubelib.STOPPED then
|
||||||
State:keep_running(pos, meta, COUNTDOWN_TICKS, 1)
|
State:keep_running(pos, meta, COUNTDOWN_TICKS, 1)
|
||||||
end
|
end
|
||||||
|
|