1
0
mirror of https://github.com/pandorabox-io/banners.git synced 2025-06-30 15:20:40 +02:00

1 Commits

Author SHA1 Message Date
13e686e827 Ajout message de chargement du mod dans le journal "action" 2018-12-24 03:02:25 +01:00
19 changed files with 2611 additions and 1902 deletions

View File

@ -1,10 +0,0 @@
name: luacheck
on: [push, pull_request]
jobs:
luacheck:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Luacheck
uses: lunarmodules/luacheck@master

View File

@ -1,14 +0,0 @@
globals = {
"banners",
"smartfs",
}
read_globals = {
"core",
"dump",
"factions",
"inventory_plus",
["table"] = { fields = { "insert_all" } },
"unified_inventory",
"vector",
}

View File

@ -1,4 +1,4 @@
###Banners mod for Luanti (formerly Minetest)
This is a banner mod for Luanti.
###Banners mod for Minetest
This is the banner mod for minetest.
The source code is licensed under GPLv3, and the game assets are licensed under Creative Commons 0 (CC0, [https://wiki.creativecommons.org/wiki/CC0](see here)).

View File

@ -1,53 +0,0 @@
-- Due to some engine troubles there are sometimes stray
-- banner entities and more rarely there are banner nodes without entities.
-- Calling this command fixes both situations.
core.register_chatcommand("banners_fix", {
description = "recreates the banner-visuals in your area",
func = function(name)
local player = core.get_player_by_name(name)
if not player then
return
end
local pos = player:get_pos()
local t1 = core.get_us_time()
local radius = 10
local entity_count = 0
local objects = core.get_objects_inside_radius(pos, radius)
for _, v in ipairs(objects) do
local e = v:get_luaentity()
if e and e.name == "banners:banner_ent" then
entity_count = entity_count + 1
v:remove()
end
end
local pos1 = vector.subtract(pos, radius)
local pos2 = vector.add(pos, radius)
local nodes = {
"banners:wooden_banner",
"banners:steel_banner",
}
if core.get_modpath("factions") then
table.insert_all(nodes, {
"banners:power_banner",
"banners:death_banner",
})
end
local pos_list = core.find_nodes_in_area(pos1, pos2, nodes)
for _, node_pos in ipairs(pos_list) do
core.add_entity(node_pos, "banners:banner_ent")
end
local t2 = core.get_us_time()
local diff = t2 - t1
local millis = diff / 1000
return true, "Removed " .. entity_count .. " banner entities and restored "
.. #pos_list .. " banners in " .. millis .. " ms"
end
})

View File

@ -1,73 +1,78 @@
-- craft recipes
-- wooden flag pole
core.register_craft({
output = "banners:wooden_pole 1",
recipe = {
{ "", "", "default:stick" },
{ "", "default:stick", "" },
{ "default:stick", "", "" }
minetest.register_craft( -- wooden flag pole
{
output = "banners:wooden_pole 1",
recipe = {
{"", "", "default:stick"},
{"", "default:stick", ""},
{"default:stick", "", ""}
}
}
})
)
-- steel flag pole
core.register_craft({
output = "banners:steel_pole 1",
recipe = {
{ "", "", "default:steel_ingot" },
{ "default:stick", "default:steel_ingot", "default:stick" },
{ "default:steel_ingot", "", "" }
minetest.register_craft( -- steel flag pole
{
output = "banners:steel_pole 1",
recipe = {
{"", "", "default:steel_ingot"},
{"", "default:steel_ingot", ""},
{"default:steel_ingot", "", ""}
}
}
})
)
-- wooden flag support base
core.register_craft({
output = "banners:wooden_base 1",
recipe = {
{ "", "default:stick", "" },
{ "default:stick", "", "default:stick" },
{ "group:wood", "group:wood", "group:wood" }
minetest.register_craft( -- wooden flag support base
{
output = "banners:wooden_base 1",
recipe = {
{"", "default:stick", ""},
{"default:stick", "", "default:stick"},
{"group:wood", "group:wood", "group:wood"}
}
}
})
)
-- steel support
core.register_craft({
output = "banners:steel_base",
recipe = {
{ "", "default:steel_ingot", "" },
{ "default:steel_ingot", "", "default:steel_ingot" },
{ "", "default:steelblock", "" }
minetest.register_craft( -- steel support
{
output = "banners:steel_base",
recipe = {
{"", "default:steel_ingot", ""},
{"default:steel_ingot", "", "default:steel_ingot"},
{"", "default:steelblock", ""}
}
}
})
)
-- banner sheet
core.register_craft({
output = "banners:banner_sheet 1",
recipe = {
{ "", "", "" },
{ "farming:cotton", "farming:cotton", "farming:cotton" },
{ "farming:cotton", "farming:cotton", "farming:cotton" }
minetest.register_craft( -- banner sheet
{
output = "banners:banner_sheet 1",
recipe = {
{"", "", ""},
{"farming:cotton", "farming:cotton", "farming:cotton"},
{"farming:cotton", "farming:cotton", "farming:cotton"}
}
}
})
)
-- wooden support
core.register_craft({
output = "banners:wooden_banner 1",
recipe = {
{ "", "banners:banner_sheet", "" },
{ "", "banners:wooden_pole", "" },
{ "", "banners:wooden_base", "" }
minetest.register_craft( -- wooden support
{
output = "banners:wooden_banner 1",
recipe = {
{"", "banners:banner_sheet", ""},
{"", "banners:wooden_pole", ""},
{"", "banners:wooden_base", ""}
}
}
})
)
-- steel support
core.register_craft({
output = "banners:steel_banner 1",
recipe = {
{ "", "banners:banner_sheet", "" },
{ "", "banners:steel_pole", "" },
{ "", "banners:steel_base", "" }
minetest.register_craft( -- steel support
{
output = "banners:steel_banner 1",
recipe = {
{"", "banners:banner_sheet", ""},
{"", "banners:steel_pole", ""},
{"", "banners:steel_base", ""}
}
}
})
)

2
depends.txt Normal file
View File

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

1
description.txt Normal file
View File

@ -0,0 +1 @@
Adds customisable banners.

Binary file not shown.

View File

@ -1,43 +1,43 @@
banners.power_per_banner = 10.
-- items
core.register_craftitem("banners:golden_finial", {
minetest.register_craftitem("banners:golden_finial", {
groups = {},
description = "Golden finial",
inventory_image = "gold_finial.png",
})
core.register_craftitem("banners:silver_pole", {
minetest.register_craftitem("banners:silver_pole", {
groups = {},
description = "Silver pole",
inventory_image = "silver_pole.png"
})
core.register_craftitem("banners:power_pole", {
minetest.register_craftitem("banners:power_pole", {
groups = {},
description = "Power pole",
inventory_image = "power_pole.png"
})
core.register_craftitem("banners:golden_sheet", {
minetest.register_craftitem("banners:golden_sheet", {
groups = {},
description = "Golden sheet",
inventory_image = "golden_sheet.png"
})
core.register_craftitem("banners:death_pole", {
minetest.register_craftitem("banners:death_pole", {
groups = {},
description = "Death pole",
inventory_image = "death_pole.png"
})
core.register_craftitem("banners:death_sheet", {
minetest.register_craftitem("banners:death_sheet", {
groups = {},
description = "Death sheet",
inventory_image = "death_sheet.png"
})
core.register_craftitem("banners:death_base", {
minetest.register_craftitem("banners:death_base", {
groups = {},
description = "Death base",
inventory_image = "death_base.png"
@ -46,110 +46,122 @@ core.register_craftitem("banners:death_base", {
-- crafts
-- silver flag pole
core.register_craft({
output = "banners:silver_pole 1",
recipe = {
{ "", "", "moreores:silver_ingot" },
{ "", "moreores:silver_ingot", "" },
{ "moreores:silver_ingot", "", "" }
minetest.register_craft( -- silver flag pole
{
output = "banners:silver_pole 1",
recipe = {
{"", "", "moreores:silver_ingot"},
{"", "moreores:silver_ingot", ""},
{"moreores:silver_ingot", "", ""}
}
}
})
)
-- death flag pole
core.register_craft({
output = "banners:death_pole 1",
recipe = {
{ "", "", "default:diamond" },
{ "", "default:obsidian", "" },
{ "default:obsidian", "", "" }
minetest.register_craft( -- death flag pole
{
output = "banners:death_pole 1",
recipe = {
{"", "", "default:diamond"},
{"", "default:obsidian", ""},
{"default:obsidian", "", ""}
}
}
})
)
-- golden finial
core.register_craft({
output = "banners:golden_finial",
recipe = {
{ "", "default:gold_ingot", "default:gold_ingot" },
{ "", "default:gold_ingot", "default:gold_ingot" },
{ "default:gold_ingot", "", "" }
minetest.register_craft( -- golden finial
{
output = "banners:golden_finial",
recipe = {
{"", "default:gold_ingot", "default:gold_ingot"},
{"", "default:gold_ingot", "default:gold_ingot"},
{"default:gold_ingot", "", ""}
}
}
})
)
-- power flag pole
core.register_craft({
output = "banners:power_pole 1",
recipe = {
{ "", "", "" },
{ "", "banners:golden_finial", "" },
{ "banners:silver_pole", "", "" }
minetest.register_craft( -- power flag pole
{
output = "banners:power_pole 1",
recipe = {
{"", "", ""},
{"", "banners:golden_finial", ""},
{"banners:silver_pole", "", ""}
}
}
})
)
-- golden sheet
core.register_craft({
output = "banners:golden_sheet 1",
type = "shapeless",
recipe = { "default:gold_ingot", "banners:banner_sheet" }
})
-- death sheet
core.register_craft({
output = "banners:death_sheet 1",
type = "shapeless",
recipe = { "default:obsidian", "banners:banner_sheet" }
})
-- death sheet
core.register_craft({
output = "banners:death_base 1",
recipe = {
{ "", "", "" },
{ "", "banners:steel_base", "" },
{ "default:obsidian", "default:obsidian", "default:obsidian" }
minetest.register_craft( -- golden sheet
{
output = "banners:golden_sheet 1",
type = "shapeless",
recipe = { "default:gold_ingot", "banners:banner_sheet"}
}
})
)
-- power banner
core.register_craft({
output = "banners:power_banner",
recipe = {
{ "", "banners:golden_sheet", "" },
{ "", "banners:power_pole", "" },
{ "", "banners:steel_base", "" }
minetest.register_craft( -- death sheet
{
output = "banners:death_sheet 1",
type = "shapeless",
recipe = { "default:obsidian", "banners:banner_sheet"}
}
})
)
-- death banner
core.register_craft({
output = "banners:death_banner",
recipe = {
{ "", "banners:death_sheet", "" },
{ "", "banners:death_pole", "" },
{ "", "banners:death_base", "" }
minetest.register_craft( -- death sheet
{
output = "banners:death_base 1",
recipe = {
{"", "", ""},
{"", "banners:steel_base", ""},
{"default:obsidian", "default:obsidian", "default:obsidian"}
}
}
})
)
minetest.register_craft( -- power banner
{
output = "banners:power_banner",
recipe = {
{"", "banners:golden_sheet", ""},
{"", "banners:power_pole", ""},
{"", "banners:steel_base", ""}
}
}
)
minetest.register_craft( -- death banner
{
output = "banners:death_banner",
recipe = {
{"", "banners:death_sheet", ""},
{"", "banners:death_pole", ""},
{"", "banners:death_base", ""}
}
}
)
-- nodes
core.register_node("banners:power_banner", {
minetest.register_node("banners:power_banner", {
drawtype = "mesh",
mesh = "banner_support.obj",
tiles = { "gold_support.png" },
mesh = "banner_support.x",
tiles = {"gold_support.png"},
description = "Power Banner",
groups = { cracky = 3 },
is_ground_content = false,
groups = {cracky=3},
diggable = true,
stack_max = 1,
paramtype = "light",
paramtype2 = "facedir",
after_place_node = banners.after_powerbanner_placed,
on_destruct = banners.banner_on_destruct,
after_place_node = function (pos, player, itemstack, pointed_thing)
banners.after_powerbanner_placed(pos, player, itemstack, pointed_thing)
end,
on_destruct = function(pos)
banners.banner_on_destruct(pos)
end,
on_dig = function(pos, n, p)
if core.is_protected(pos, p:get_player_name()) then
if minetest.is_protected(pos, p:get_player_name()) then
return
end
local meta = core.get_meta(pos)
local meta = minetest.get_meta(pos)
local facname = meta:get_string("faction")
if facname then
local faction = factions.factions[facname]
@ -159,28 +171,29 @@ core.register_node("banners:power_banner", {
end
banners.banner_on_dig(pos, n, p)
end,
on_movenode = banners.banner_on_movenode,
})
core.register_node("banners:death_banner", {
minetest.register_node("banners:death_banner", {
drawtype = "mesh",
mesh = "banner_support.obj",
tiles = { "death_uv.png" },
mesh = "banner_support.x",
tiles = {"death_uv.png"},
description = "Death Banner",
groups = { cracky = 3 },
is_ground_content = false,
groups = {cracky=3},
diggable = true,
stack_max = 1,
paramtype = "light",
paramtype2 = "facedir",
after_place_node = banners.after_deathbanner_placed,
on_destruct = banners.banner_on_destruct,
-- (pos, node, player)
on_dig = function(pos, _, player)
if core.is_protected(pos, player:get_player_name()) then
after_place_node = function (pos, player, itemstack, pointed_thing)
banners.after_deathbanner_placed(pos, player, itemstack, pointed_thing)
end,
on_destruct = function(pos)
banners.banner_on_destruct(pos)
end,
on_dig = function(pos, n, p)
if minetest.is_protected(pos, p:get_player_name()) then
return
end
local meta = core.get_meta(pos)
local meta = minetest.get_meta(pos)
local defending_facname = meta:get_string("faction")
local parcelpos = factions.get_parcel_pos(pos)
if defending_facname then
@ -189,37 +202,34 @@ core.register_node("banners:death_banner", {
faction:stop_attack(parcelpos)
end
end
core.remove_node(pos)
minetest.remove_node(pos)
end,
on_movenode = banners.banner_on_movenode,
})
-- (pos, player, itemstack, pointed_thing)
banners.after_powerbanner_placed = function(pos, player, _, pointed_thing)
core.get_node(pos).param2 = banners.determine_flag_direction(pos, pointed_thing)
banners.after_powerbanner_placed = function(pos, player, itemstack, pointed_thing)
minetest.get_node(pos).param2 = banners.determine_flag_direction(pos, pointed_thing)
local faction = factions.players[player:get_player_name()]
if not faction then
core.get_meta(pos):set_string("banner", "bg_white.png")
minetest.get_meta(pos):set_string("banner", "bg_white.png")
else
local banner_string = factions.factions[faction].banner
core.get_meta(pos):set_string("banner", banner_string)
core.get_meta(pos):set_string("faction", faction)
minetest.get_meta(pos):set_string("banner", banner_string)
minetest.get_meta(pos):set_string("faction", faction)
factions.factions[faction]:increase_maxpower(banners.power_per_banner)
end
core.add_entity(pos, "banners:banner_ent")
minetest.add_entity(pos, "banners:banner_ent")
end
-- (pos, player, itemstack, pointed_thing)
banners.after_deathbanner_placed = function(pos, player, _, pointed_thing)
core.get_node(pos).param2 = banners.determine_flag_direction(pos, pointed_thing)
banners.after_deathbanner_placed = function(pos, player, itemstack, pointed_thing)
minetest.get_node(pos).param2 = banners.determine_flag_direction(pos, pointed_thing)
local attacking_faction = factions.players[player:get_player_name()]
if attacking_faction then
local parcelpos = factions.get_parcel_pos(pos)
attacking_faction = factions.factions[attacking_faction]
attacking_faction:attack_parcel(parcelpos)
core.get_meta(pos):set_string("faction", attacking_faction.name)
minetest.get_meta(pos):set_string("faction", attacking_faction.name)
end
core.get_meta(pos):set_string("banner", "death_uv.png")
core.add_entity(pos, "banners:banner_ent")
minetest.get_meta(pos):set_string("banner", "death_uv.png")
minetest.add_entity(pos, "banners:banner_ent")
end

353
init.lua
View File

@ -1,9 +1,6 @@
local MP = core.get_modpath("banners") .. "/"
dofile(MP .. "smartfs.lua")
dofile(minetest.get_modpath("banners").."/smartfs.lua")
banners = {
version = 20241130.1920
}
banners = {}
banners.masks = {
"bend_left", "bend_left_outline",
@ -31,15 +28,6 @@ banners.masks = {
"star_chevron", "checkered_8_4", "checkered_16_8"
}
-- It is now unlikely for the server to crash from too long
-- history since we now trim out garbage when converting to
-- metadata. This limit is now just to avoid run-time
-- memory bloat.
banners.max_undo_levels = 256
-- cache of player histories
local histories = {}
banners.colors = {
"black", "cyan", "green", "white",
"blue", "darkblue", "red", "yellow",
@ -47,91 +35,58 @@ banners.colors = {
"brown", "darkbrown"
}
local valid_masks = {}
local valid_colors = {}
do
local i, s
i = #banners.masks
repeat
s = banners.masks[i]
valid_masks[s .. ".png"] = true
i = i - 1
until i == 0
banners.base_transform = ({texture = "bg_white.png",
mask="mask_background.png"})
i = #banners.colors
repeat
s = banners.colors[i]
valid_colors["bg_" .. s .. ".png"] = true
i = i - 1
until i == 0
end
banners.base_transform = {
texture = "bg_white.png",
mask = "mask_background.png"
}
function banners.creation_form_func(state)
banners.creation_form_func = function(state)
-- helper functions
function state:update_player_inv(transform_string)
local player = core.get_player_by_name(self.player)
state.update_player_inv = function(self)
local player = minetest.get_player_by_name(self.player)
local newbanner = player:get_wielded_item()
newbanner:get_meta():set_string("", transform_string)
newbanner:set_metadata(state.banner:get_transform_string())
player:set_wielded_item(newbanner)
end
function state:update_preview(transform_string)
self:get("banner_preview"):setImage(transform_string)
state.update_preview = function(self)
self:get("banner_preview"):setImage(self.banner:get_transform_string())
self:get("color_indicator"):setImage(self.current_color)
end
function state:update_preview_inv()
local transform_string = self.banner:get_transform_string()
self:update_preview(transform_string)
self:update_player_inv(transform_string)
state.update_all = function(self)
self:update_preview()
self:update_player_inv()
end
if histories[state.player] then
-- initialize with saved history
state.banner = histories[state.player]
else
-- initialize with empty banner
state.banner = banners.Banner:new(nil)
state.banner:push_transform(banners.base_transform)
histories[state.player] = state.banner
end
state.banner:read_item(state.player)
state.current_color = state.banner.color
state:size(20, 10)
state:image(3.4, 0.4, 4, 2, "banner_preview", nil)
state:image(2.55, 0.95, 0.7, 0.7, "color_indicator", state.current_color)
state:update_preview_inv()
-- initialize with empty banner
state.banner = banners.Banner:new(nil)
state.banner:push_transform(banners.base_transform)
state.current_color = "bg_white.png"
state:size(20,10)
state:image(3, 0.4, 4, 2, "banner_preview", nil)
state:image(2.4, 0.8, 0.7, 0.7, "color_indicator", state.current_color)
state:update_all()
-- color indicator
-- undo button
state:button(0.5, 0.3, 2, 1, "undo", "Undo"):click(function(_, state2)
if #state2.banner.transforms > 1 then
state2.banner:pop_transform()
state2:update_preview_inv()
end
end)
state:button(0.5, 0.3, 2, 1, "undo", "Undo"):click(function(self, state)
if #state.banner.transforms > 1 then
state.banner:pop_transform()
state:update_all()
end
end)
-- delete button
state:button(0.5, 1.3, 2, 1, "delete", "Delete"):click(function(_, state2)
state2.banner.transforms = { banners.base_transform }
state2:update_preview_inv()
end)
state:button(0.5, 1.3, 2, 1, "delete", "Delete"):click(function(self, state)
state.banner.transforms = {banners.base_transform}
state:update_all()
end)
-- add banners colors
local x = 7
local y = .3
for _, color in ipairs(banners.colors) do
local b = state:button(x, y, 1, 1, color, "")
b:setImage("bg_" .. color .. ".png")
b:click(function(self, state2)
state2.current_color = "bg_" .. self.name .. ".png"
state2:get("color_indicator"):setImage(state2.current_color)
state2.banner.color = state2.current_color
-- update masks
for _, mask in ipairs(banners.masks) do
state2:get(mask):setImage("(" .. state2.current_color
.. "^[mask:" .. mask .. ".png^[makealpha:0,0,0)")
end
end)
for i in ipairs(banners.colors) do
local b = state:button(x, y, 1, 1, banners.colors[i], "")
b:setImage("bg_"..banners.colors[i]..".png")
b:click(function(self, state)
state.current_color = "bg_"..self.name..".png"
state:update_preview()
-- todo: update masks or something
end
)
x = x + 1
if x > 19 then
y = y + 1
@ -139,19 +94,16 @@ function banners.creation_form_func(state)
end
end
-- add banners buttons
x = 1
y = 3
for _, mask in ipairs(banners.masks) do
local b = state:button(x, y, 2, 1, mask, "")
b:setImage("(" .. state.current_color
.. "^[mask:" .. mask .. ".png^[makealpha:0,0,0)")
b:click(function(self, state2)
state2.banner:push_transform({
texture = state2.current_color,
mask = self.name .. ".png"
})
state2:update_preview_inv()
end)
local x = 1
local y = 3
for i in ipairs(banners.masks) do
local b = state:button(x, y, 2, 1, banners.masks[i], "")
b:setImage(banners.masks[i]..".png")
b:click(function(self, state)
state.banner:push_transform({texture=state.current_color, mask=self.name..".png"})
state:update_all()
end
)
x = x + 2
if x > 17.5 then
y = y + 1
@ -162,133 +114,62 @@ function banners.creation_form_func(state)
end
banners.creation_form = smartfs.create("banners:banner_creation",
banners.creation_form_func)
banners.creation_form_func);
function banners.transform_string_to_table(transform_string)
local mask, parts, texture
local transforms = {}
for part in transform_string:gmatch("%(([^%)]+)%)") do
parts = part:split("^[")
if 3 == #parts then
texture = parts[1]
mask = parts[2]:sub(6)
if valid_masks[mask] and valid_colors[texture] then
table.insert(transforms, {
texture = texture,
mask = mask
})
end
end
end
return transforms
end
function banners.transform_table_to_string(transforms)
local i = #transforms
if 0 == i then return "" end
local final = {}
local used = {}
local transform
-- work backwards to keep resulting data small
repeat
transform = transforms[i]
-- duplicate mask can be trimmed out only use most recent
if not used[transform.mask] then
used[transform.mask] = true
table.insert(final, 1, "(" .. transform.texture
.. "^[mask:" .. transform.mask .. "^[makealpha:0,0,0)")
-- anything before a background is fully covered
if "mask_background.png" == transform.mask then
break
end
end
i = i - 1
until i == 0
return table.concat(final, "^")
end
-- banner definition
banners.Banner = {}
banners.Banner = {
transforms = {}
}
function banners.Banner:new(banner)
banner = banner or { color = "bg_black.png", transforms = {} }
banner = banner or {}
setmetatable(banner, self)
self.__index = self
return banner
end
function banners.Banner:push_transform(transform)
function banners.Banner.push_transform(self, transform)
table.insert(self.transforms, transform)
if #self.transforms > banners.max_undo_levels then
table.remove(self.transforms, 1)
end
end
function banners.Banner:pop_transform()
function banners.Banner.pop_transform(self)
table.remove(self.transforms)
end
function banners.Banner:get_transform_string()
return banners.transform_table_to_string(self.transforms)
end
function banners.Banner:read_item(player_name)
local player = core.get_player_by_name(player_name)
local item = player:get_wielded_item()
if "banners:" ~= item:get_name():sub(1, 8) then return end
local transforms = banners.transform_string_to_table(
item:get_meta():get_string(""))
local total = #transforms
if 0 == total then return end
local i = 1
repeat
self:push_transform(transforms[i])
i = i + 1
until i > total
function banners.Banner.get_transform_string(self)
local final = {}
for i in ipairs(self.transforms) do
table.insert(final, "("..self.transforms[i].texture.."^[mask:"..self.transforms[i].mask.."^[makealpha:0,0,0)")
end
local ret = table.concat(final, "^")
return ret
end
-- helper function for determining the flag's direction
-- (pos, pointed_thing)
function banners.determine_flag_direction(_, pointed_thing)
banners.determine_flag_direction = function(pos, pointed_thing)
local above = pointed_thing.above
local under = pointed_thing.under
local dir = {
x = under.x - above.x,
y = under.y - above.y,
z = under.z - above.z
}
return core.dir_to_wallmounted(dir)
local dir = {x = under.x - above.x,
y = under.y - above.y,
z = under.z - above.z}
return minetest.dir_to_wallmounted(dir)
end
-- (itemstack, player, pointed_thing)
function banners.banner_on_use(_, player)
banners.banner_on_use = function(itemstack, player, pointed_thing)
if player.is_player then
banners.creation_form:show(player:get_player_name())
end
end
function banners.banner_on_dig(pos, node, player)
if not player or core.is_protected(pos, player:get_player_name()) then
return
end
local meta = core.get_meta(pos)
local inventory = player:get_inventory()
inventory:add_item("main", {
name = node.name,
count = 1,
wear = 0,
metadata = meta:get_string("banner")
})
core.remove_node(pos)
banners.banner_on_dig = function(pos, node, player)
local meta = minetest.get_meta(pos)
if player then
local inventory = player:get_inventory()
inventory:add_item("main", {name=node.name, count=1, wear=0, metadata=meta:get_string("banner")})
end
minetest.remove_node(pos)
end
-- (pos, node, player)
function banners.banner_on_destruct(pos)
local objects = core.get_objects_inside_radius(pos, 0.5)
for _, v in ipairs(objects) do
banners.banner_on_destruct = function(pos, node, player)
local objects = minetest.get_objects_inside_radius(pos, 0.5)
for _,v in ipairs(objects) do
local e = v:get_luaentity()
if e and e.name == "banners:banner_ent" then
v:remove()
@ -296,35 +177,23 @@ function banners.banner_on_destruct(pos)
end
end
-- (pos, player, itemstack, pointed_thing)
function banners.banner_after_place(pos, _, itemstack, pointed_thing)
core.get_node(pos).param2 = banners.determine_flag_direction(pos, pointed_thing)
local meta = core.get_meta(pos)
meta:set_string("banner", itemstack:get_meta():get_string(""))
meta:set_float("version", banners.version)
core.add_entity(pos, "banners:banner_ent")
end
-- [jumpdrive] compat
-- (from_pos, to_pos, additional_info)
function banners.banner_on_movenode(_, to_pos)
core.add_entity(to_pos, "banners:banner_ent")
banners.banner_after_place = function (pos, player, itemstack, pointed_thing)
minetest.get_node(pos).param2 = banners.determine_flag_direction(pos, pointed_thing)
minetest.get_meta(pos):set_string("banner", itemstack:get_metadata())
minetest.add_entity(pos, "banners:banner_ent")
end
-- banner entity
local set_banner_texture
set_banner_texture = function (obj, texture)
obj:set_properties({textures={"banner_uv_text.png^"..texture}})
end
function banners:banner_on_activate()
local pos = self.object:get_pos()
local meta = core.get_meta(pos)
local banner = meta:get_string("banner")
-- cleanup meta of old banners
if meta:get_float("version") < 20241122 then
meta:set_float("version", banners.version)
banner = banners.transform_table_to_string(
banners.transform_string_to_table(banner))
meta:set_string("banner", banner)
end
local banner_face = core.get_node(pos).param2
banners.banner_on_activate = function(self)
local pos = self.object:getpos()
local banner = minetest.get_meta(pos):get_string("banner")
local banner_face = minetest.get_node(pos).param2
local yaw = 0.
if banner_face == 2 then
yaw = 0.
@ -335,28 +204,28 @@ function banners:banner_on_activate()
elseif banner_face == 3 then
yaw = 4.71238898038469 -- 3 * pi / 2
end
self.object:set_yaw(yaw)
self.object:set_properties({
textures = { "banner_uv_text.png^" .. banner }
})
self.object:setyaw(yaw)
if banner then
set_banner_texture(self.object, banner)
end
end
core.register_entity("banners:banner_ent", {
initial_properties = {
collisionbox = { 0, 0, 0, 0, 0, 0 },
minetest.register_entity("banners:banner_ent",
{
collisionbox = {0,0,0,0,0,0},
visual = "mesh",
textures = { "banner_uv_text" },
mesh = "banner_pole.obj",
},
on_activate = banners.banner_on_activate,
})
textures = {"banner_uv_text"},
mesh = "banner_pole.x",
on_activate = banners.banner_on_activate,
}
)
if core.get_modpath("factions") then
dofile(MP .. "factions.lua")
if minetest.get_modpath("factions") then
dofile(minetest.get_modpath("banners").."/factions.lua")
end
dofile(MP .. "items.lua")
dofile(MP .. "nodes.lua")
dofile(MP .. "crafts.lua")
dofile(MP .. "chatcommands.lua")
dofile(minetest.get_modpath("banners").."/items.lua")
dofile(minetest.get_modpath("banners").."/nodes.lua")
dofile(minetest.get_modpath("banners").."/crafts.lua")
minetest.log("action", "[banners] loaded.")

View File

@ -2,35 +2,44 @@
-- items
core.register_craftitem("banners:banner_sheet", {
groups = {},
description = "Banner sheet",
inventory_image = "banner_sheet.png",
stack_max = 1,
metadata = "",
})
minetest.register_craftitem("banners:banner_sheet",
{
groups = {},
description = "Banner sheet",
inventory_image = "banner_sheet.png",
stack_max = 1,
metadata = "",
}
)
core.register_craftitem("banners:wooden_pole", {
groups = {},
description = "Wooden pole",
inventory_image = "wooden_pole.png"
})
minetest.register_craftitem("banners:wooden_pole",
{
groups = {},
description = "Wooden pole",
inventory_image = "wooden_pole.png"
}
)
core.register_craftitem("banners:wooden_base", {
groups = {},
description = "Wooden base",
inventory_image = "wooden_base.png"
})
minetest.register_craftitem("banners:wooden_base",
{
groups = {},
description = "Wooden base",
inventory_image = "wooden_base.png"
}
)
core.register_craftitem("banners:steel_pole", {
groups = {},
description = "Steel pole",
inventory_image = "steel_pole.png"
})
core.register_craftitem("banners:steel_base", {
groups = {},
description = "Steel base",
inventory_image = "steel_base.png"
})
minetest.register_craftitem("banners:steel_pole",
{
groups = {},
description = "Steel pole",
inventory_image = "steel_pole.png"
}
)
minetest.register_craftitem("banners:steel_base",
{
groups = {},
description = "Steel base",
inventory_image = "steel_base.png"
}
)

View File

@ -1,4 +0,0 @@
name = banners
description = Adds customisable banners.
depends = default, farming
optional_depends = factions, inventory_plus, unified_inventory

View File

@ -1,425 +0,0 @@
# Blender 4.4.3
# www.blender.org
mtllib banner.mtl
o flag
v -0.543572 -5.241243 -0.533402
v -0.543572 44.039852 -0.533402
v -0.543572 -5.241243 0.535398
v -0.543572 44.039852 0.535398
v 0.458428 -5.241243 -0.533402
v 0.458428 44.039852 -0.533402
v 0.458428 -5.241243 0.535398
v 0.458428 44.039852 0.535398
v -19.753599 31.074223 -0.462508
v -19.753599 41.649487 -0.462508
v -18.855709 31.074223 -0.975180
v -18.855709 41.649487 -0.975179
v -18.229603 31.074223 -1.332998
v -18.229603 41.649487 -1.332998
v -17.550665 31.074223 -1.601055
v -17.550665 41.649483 -1.601056
v -16.821354 31.074223 -1.796366
v -16.821354 41.649483 -1.796365
v -16.005564 31.074223 -1.856682
v -16.005564 41.649483 -1.856682
v -15.163716 31.074223 -1.887776
v -15.163716 41.649483 -1.887777
v -14.255428 31.074223 -1.796628
v -14.255428 41.649487 -1.796628
v -13.328875 31.074223 -1.675647
v -13.328875 41.649483 -1.675646
v -12.373619 31.074223 -1.496117
v -12.373619 41.649483 -1.496117
v -11.394333 31.074223 -1.277657
v -11.394333 41.649487 -1.277656
v -10.402903 31.074223 -1.038762
v -10.402903 41.649483 -1.038762
v -9.378026 31.074223 -0.778455
v -9.378026 41.649483 -0.778455
v -8.341211 31.074223 -0.518895
v -8.341211 41.649483 -0.518895
v -7.269663 31.074223 -0.267102
v -7.269663 41.649483 -0.267102
v -6.166732 31.074223 -0.039093
v -6.166732 41.649487 -0.039093
v -5.032305 31.074223 0.162840
v -5.032305 41.649483 0.162840
v -3.830252 31.074223 0.282162
v -3.830252 41.649487 0.282162
v -2.602708 31.074223 0.356084
v -2.602708 41.649483 0.356084
v -1.284628 31.074223 0.236404
v -1.284628 41.649487 0.236403
v 0.038545 31.074223 -0.015804
v 0.038545 41.649483 -0.015804
v -19.754112 31.074223 -0.375066
v -19.754112 41.649487 -0.375066
v -18.856224 31.074223 -0.887738
v -18.856224 41.649487 -0.887738
v -18.230114 31.074223 -1.245556
v -18.230114 41.649487 -1.245556
v -17.551180 31.074223 -1.513614
v -17.551180 41.649483 -1.513615
v -16.821869 31.074223 -1.708924
v -16.821869 41.649483 -1.708924
v -16.006077 31.074223 -1.769240
v -16.006077 41.649483 -1.769240
v -15.164232 31.074223 -1.800334
v -15.164232 41.649483 -1.800334
v -14.255943 31.074223 -1.709186
v -14.255943 41.649487 -1.709186
v -13.329390 31.074223 -1.588204
v -13.329390 41.649483 -1.588204
v -12.374133 31.074223 -1.408675
v -12.374133 41.649483 -1.408675
v -11.394847 31.074223 -1.190215
v -11.394847 41.649487 -1.190214
v -10.403419 31.074223 -0.951321
v -10.403419 41.649483 -0.951321
v -9.378540 31.074223 -0.691013
v -9.378540 41.649483 -0.691014
v -8.341725 31.074223 -0.431453
v -8.341725 41.649483 -0.431453
v -7.270178 31.074223 -0.179660
v -7.270178 41.649483 -0.179660
v -6.167245 31.074223 0.048348
v -6.167245 41.649487 0.048349
v -5.032819 31.074223 0.250282
v -5.032819 41.649483 0.250282
v -3.830766 31.074223 0.369604
v -3.830766 41.649487 0.369604
v -2.603222 31.074223 0.443526
v -2.603222 41.649483 0.443526
v -1.285142 31.074223 0.323846
v -1.285142 41.649487 0.323846
v 0.038031 31.074223 0.071638
v 0.038031 41.649483 0.071638
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
vn -0.4962 -0.0000 -0.8682
vn -0.4958 -0.0000 -0.8684
vn -0.3672 -0.0000 -0.9301
vn -0.0737 -0.0000 -0.9973
vn -0.2587 -0.0000 -0.9660
vn -0.0369 -0.0000 -0.9993
vn 0.1295 -0.0000 -0.9916
vn 0.0998 -0.0000 -0.9950
vn 0.1847 -0.0000 -0.9828
vn 0.2343 -0.0000 -0.9722
vn 0.2177 -0.0000 -0.9760
vn 0.2428 -0.0000 -0.9701
vn 0.2462 -0.0000 -0.9692
vn 0.2288 -0.0000 -0.9735
vn 0.1752 -0.0000 -0.9845
vn 0.2024 -0.0000 -0.9793
vn 0.0988 -0.0000 -0.9951
vn -0.0904 -0.0000 -0.9959
vn 0.0601 -0.0000 -0.9982
vn -0.1872 -0.0000 -0.9823
vn 0.4962 -0.0000 0.8682
vn 0.4958 -0.0000 0.8684
vn 0.3672 -0.0000 0.9301
vn 0.0737 -0.0000 0.9973
vn 0.2587 -0.0000 0.9660
vn 0.0369 -0.0000 0.9993
vn -0.1295 -0.0000 0.9916
vn -0.0998 -0.0000 0.9950
vn -0.1847 -0.0000 0.9828
vn -0.2343 -0.0000 0.9722
vn -0.2177 -0.0000 0.9760
vn -0.2428 -0.0000 0.9701
vn -0.2462 -0.0000 0.9692
vn -0.2288 -0.0000 0.9735
vn -0.1752 -0.0000 0.9845
vn -0.2024 -0.0000 0.9793
vn -0.0988 -0.0000 0.9951
vn 0.0904 -0.0000 0.9959
vn -0.0601 -0.0000 0.9982
vn 0.1872 -0.0000 0.9823
vn -1.0000 -0.0000 -0.0059
vn 1.0000 -0.0000 0.0059
vt 0.502372 0.344045
vt 0.502372 0.325948
vt 0.993251 0.325948
vt 0.993251 0.344045
vt 0.997751 0.312205
vt 0.997751 0.325777
vt 0.506885 0.325779
vt 0.506885 0.312205
vt 0.488799 0.325948
vt 0.488799 0.344045
vt -0.002080 0.344045
vt -0.002080 0.325948
vt -0.002080 0.325779
vt -0.002080 0.312207
vt 0.488786 0.312205
vt 0.488786 0.325779
vt 0.943902 0.997273
vt 0.908697 0.997273
vt 0.908696 0.497389
vt 0.943901 0.497389
vt 0.994376 0.497389
vt 0.994377 0.997273
vt 0.873062 0.997273
vt 0.873062 0.497389
vt 0.836204 0.997273
vt 0.796270 0.997273
vt 0.796270 0.497389
vt 0.836203 0.497389
vt 0.755145 0.997273
vt 0.755144 0.497389
vt 0.710581 0.997273
vt 0.664964 0.997273
vt 0.664964 0.497389
vt 0.710580 0.497389
vt 0.617514 0.997273
vt 0.617513 0.497389
vt 0.568531 0.997273
vt 0.518746 0.997273
vt 0.518746 0.497389
vt 0.568531 0.497389
vt 0.467125 0.997273
vt 0.414948 0.997273
vt 0.414948 0.497389
vt 0.467125 0.497389
vt 0.361211 0.997273
vt 0.361212 0.497389
vt 0.306230 0.997273
vt 0.249978 0.997273
vt 0.249979 0.497389
vt 0.306230 0.497389
vt 0.191008 0.997273
vt 0.191008 0.497389
vt 0.130973 0.997273
vt 0.066362 0.997273
vt 0.066362 0.497389
vt 0.130973 0.497389
vt 0.000604 0.997273
vt 0.000604 0.497389
vt 0.941264 0.998578
vt 0.941265 0.492496
vt 0.906167 0.492496
vt 0.906167 0.998578
vt 0.991585 0.998578
vt 0.991585 0.492496
vt 0.870642 0.492496
vt 0.870642 0.998578
vt 0.833896 0.998578
vt 0.833896 0.492496
vt 0.794084 0.492496
vt 0.794084 0.998578
vt 0.753084 0.492496
vt 0.753085 0.998578
vt 0.708657 0.998578
vt 0.708657 0.492496
vt 0.663180 0.492496
vt 0.663180 0.998578
vt 0.615874 0.492496
vt 0.615874 0.998578
vt 0.567042 0.998578
vt 0.567042 0.492496
vt 0.517409 0.492496
vt 0.517409 0.998578
vt 0.465946 0.998578
vt 0.465945 0.492496
vt 0.413927 0.492496
vt 0.413928 0.998578
vt 0.360356 0.492496
vt 0.360356 0.998578
vt 0.305542 0.998578
vt 0.305542 0.492496
vt 0.249463 0.492496
vt 0.249463 0.998578
vt 0.190673 0.492496
vt 0.190673 0.998578
vt 0.130821 0.998578
vt 0.130821 0.492496
vt 0.066407 0.492496
vt 0.066407 0.998578
vt 0.000850 0.492496
vt 0.000850 0.998578
vt 0.819613 0.067723
vt 0.721014 0.067723
vt 0.721002 0.066003
vt 0.819602 0.066002
vt 0.594108 0.172586
vt 0.581155 0.174942
vt 0.581155 0.173757
vt 0.594108 0.171402
vt 0.726607 0.148275
vt 0.709973 0.149179
vt 0.709973 0.147994
vt 0.726607 0.147091
vt 0.533037 0.180145
vt 0.544035 0.178802
vt 0.544085 0.179986
vt 0.533086 0.181329
vt 0.648599 0.191953
vt 0.663260 0.194668
vt 0.663310 0.195852
vt 0.648648 0.193137
vt 0.544883 0.177181
vt 0.533838 0.176299
vt 0.533838 0.175114
vt 0.544883 0.175996
vt 0.663341 0.156345
vt 0.648807 0.159670
vt 0.648807 0.158486
vt 0.663341 0.155161
vt 0.506347 0.165013
vt 0.494225 0.157997
vt 0.494225 0.156813
vt 0.506347 0.163829
vt 0.607391 0.169705
vt 0.607391 0.168521
vt 0.726809 0.200087
vt 0.744566 0.197616
vt 0.744616 0.198800
vt 0.726858 0.201270
vt 0.494225 0.200086
vt 0.506043 0.192570
vt 0.506092 0.193753
vt 0.494274 0.201269
vt 0.593408 0.181335
vt 0.606799 0.183659
vt 0.606849 0.184842
vt 0.593458 0.182519
vt 0.744451 0.150001
vt 0.744451 0.148817
vt 0.555405 0.177838
vt 0.555455 0.179021
vt 0.678331 0.197041
vt 0.678380 0.198225
vt 0.721002 0.067892
vt 0.819602 0.067892
vt 0.819613 0.069613
vt 0.721014 0.069613
vt 0.556284 0.177669
vt 0.556284 0.176485
vt 0.678299 0.153344
vt 0.678299 0.152160
vt 0.514283 0.187324
vt 0.514332 0.188507
vt 0.620368 0.186251
vt 0.620417 0.187434
vt 0.762307 0.193349
vt 0.762356 0.194533
vt 0.514799 0.169910
vt 0.514799 0.168725
vt 0.620839 0.166548
vt 0.620839 0.165364
vt 0.762354 0.153523
vt 0.762354 0.152338
vt 0.567753 0.178485
vt 0.567803 0.179668
vt 0.693811 0.199041
vt 0.693860 0.200224
vt 0.568595 0.176507
vt 0.568595 0.175322
vt 0.693681 0.150699
vt 0.693681 0.149515
vt 0.523295 0.183259
vt 0.523345 0.184442
vt 0.634403 0.189111
vt 0.634452 0.190295
vt 0.523974 0.173595
vt 0.523974 0.172411
vt 0.634742 0.163104
vt 0.634742 0.161919
vt 0.580368 0.179523
vt 0.580417 0.180707
vt 0.710152 0.199879
vt 0.710202 0.201063
s 0
f 2/1/1 4/2/1 3/3/1 1/4/1
f 4/5/2 8/6/2 7/7/2 3/8/2
f 8/9/3 6/10/3 5/11/3 7/12/3
f 6/13/4 2/14/4 1/15/4 5/16/4
f 1/15/5 3/8/5 7/7/5 5/16/5
f 6/10/6 8/9/6 4/2/6 2/1/6
f 12/17/7 14/18/7 13/19/7 11/20/7
f 12/17/8 11/20/8 9/21/8 10/22/8
f 14/18/9 16/23/9 15/24/9 13/19/9
f 18/25/10 20/26/10 19/27/10 17/28/10
f 16/23/11 18/25/11 17/28/11 15/24/11
f 20/26/12 22/29/12 21/30/12 19/27/12
f 24/31/13 26/32/13 25/33/13 23/34/13
f 22/29/14 24/31/14 23/34/14 21/30/14
f 26/32/15 28/35/15 27/36/15 25/33/15
f 30/37/16 32/38/16 31/39/16 29/40/16
f 28/35/17 30/37/17 29/40/17 27/36/17
f 34/41/18 36/42/18 35/43/18 33/44/18
f 32/38/19 34/41/19 33/44/19 31/39/19
f 36/42/20 38/45/20 37/46/20 35/43/20
f 40/47/21 42/48/21 41/49/21 39/50/21
f 38/45/22 40/47/22 39/50/22 37/46/22
f 42/48/23 44/51/23 43/52/23 41/49/23
f 46/53/24 48/54/24 47/55/24 45/56/24
f 44/51/25 46/53/25 45/56/25 43/52/25
f 48/54/26 50/57/26 49/58/26 47/55/26
f 54/59/27 53/60/27 55/61/27 56/62/27
f 54/59/28 52/63/28 51/64/28 53/60/28
f 56/62/29 55/61/29 57/65/29 58/66/29
f 60/67/30 59/68/30 61/69/30 62/70/30
f 58/66/31 57/65/31 59/68/31 60/67/31
f 62/70/32 61/69/32 63/71/32 64/72/32
f 66/73/33 65/74/33 67/75/33 68/76/33
f 64/72/34 63/71/34 65/74/34 66/73/34
f 68/76/35 67/75/35 69/77/35 70/78/35
f 72/79/36 71/80/36 73/81/36 74/82/36
f 70/78/37 69/77/37 71/80/37 72/79/37
f 76/83/38 75/84/38 77/85/38 78/86/38
f 74/82/39 73/81/39 75/84/39 76/83/39
f 78/86/40 77/85/40 79/87/40 80/88/40
f 82/89/41 81/90/41 83/91/41 84/92/41
f 80/88/42 79/87/42 81/90/42 82/89/42
f 84/92/43 83/91/43 85/93/43 86/94/43
f 88/95/44 87/96/44 89/97/44 90/98/44
f 86/94/45 85/93/45 87/96/45 88/95/45
f 90/98/46 89/97/46 91/99/46 92/100/46
f 10/101/47 9/102/47 51/103/47 52/104/47
f 28/105/5 26/106/5 68/107/5 70/108/5
f 46/109/5 44/110/5 86/111/5 88/112/5
f 17/113/6 19/114/6 61/115/6 59/116/6
f 35/117/6 37/118/6 79/119/6 77/120/6
f 20/121/5 18/122/5 60/123/5 62/124/5
f 38/125/5 36/126/5 78/127/5 80/128/5
f 12/129/5 10/130/5 52/131/5 54/132/5
f 30/133/5 28/105/5 70/108/5 72/134/5
f 45/135/6 47/136/6 89/137/6 87/138/6
f 9/139/6 11/140/6 53/141/6 51/142/6
f 27/143/6 29/144/6 71/145/6 69/146/6
f 48/147/5 46/109/5 88/112/5 90/148/5
f 19/114/6 21/149/6 63/150/6 61/115/6
f 37/118/6 39/151/6 81/152/6 79/119/6
f 49/153/48 50/154/48 92/155/48 91/156/48
f 22/157/5 20/121/5 62/124/5 64/158/5
f 40/159/5 38/125/5 80/128/5 82/160/5
f 11/140/6 13/161/6 55/162/6 53/141/6
f 29/144/6 31/163/6 73/164/6 71/145/6
f 47/136/6 49/165/6 91/166/6 89/137/6
f 14/167/5 12/129/5 54/132/5 56/168/5
f 32/169/5 30/133/5 72/134/5 74/170/5
f 50/171/5 48/147/5 90/148/5 92/172/5
f 21/149/6 23/173/6 65/174/6 63/150/6
f 39/151/6 41/175/6 83/176/6 81/152/6
f 24/177/5 22/157/5 64/158/5 66/178/5
f 42/179/5 40/159/5 82/160/5 84/180/5
f 13/161/6 15/181/6 57/182/6 55/162/6
f 31/163/6 33/183/6 75/184/6 73/164/6
f 16/185/5 14/167/5 56/168/5 58/186/5
f 34/187/5 32/169/5 74/170/5 76/188/5
f 23/173/6 25/189/6 67/190/6 65/174/6
f 41/175/6 43/191/6 85/192/6 83/176/6
f 26/106/5 24/177/5 66/178/5 68/107/5
f 44/110/5 42/179/5 84/180/5 86/111/5
f 15/181/6 17/113/6 59/116/6 57/182/6
f 33/183/6 35/117/6 77/120/6 75/184/6
f 18/122/5 16/185/5 58/186/5 60/123/5
f 36/126/5 34/187/5 76/188/5 78/127/5
f 25/189/6 27/143/6 69/146/6 67/190/6
f 43/191/6 45/135/6 87/138/6 85/192/6

997
models/banner_pole.x Normal file
View File

@ -0,0 +1,997 @@
xof 0303txt 0032
Frame Root {
FrameTransformMatrix {
1.000000, 0.000000, 0.000000, 0.000000,
0.000000,-0.000000, 1.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 1.000000;;
}
Frame flag {
FrameTransformMatrix {
16.700001, 0.000000, 0.000000, 0.000000,
0.000000,16.700001, 0.000000, 0.000000,
0.000000, 0.000000,16.700001, 0.000000,
-9.000000, 0.000000,12.000000, 1.000000;;
}
Mesh { // flag mesh
352;
0.506373; 0.031940; 1.261682;,
0.506373;-0.032060; 1.261682;,
0.506373;-0.032060;-1.689282;,
0.506373; 0.031940;-1.689282;,
0.506373;-0.032060; 1.261682;,
0.566373;-0.032060; 1.261682;,
0.566373;-0.032060;-1.689282;,
0.506373;-0.032060;-1.689282;,
0.566373;-0.032060; 1.261682;,
0.566373; 0.031940; 1.261682;,
0.566373; 0.031940;-1.689282;,
0.566373;-0.032060;-1.689282;,
0.566373; 0.031940; 1.261682;,
0.506373; 0.031940; 1.261682;,
0.506373; 0.031940;-1.689282;,
0.566373; 0.031940;-1.689282;,
0.506373; 0.031940;-1.689282;,
0.506373;-0.032060;-1.689282;,
0.566373;-0.032060;-1.689282;,
0.566373; 0.031940;-1.689282;,
0.566373; 0.031940; 1.261682;,
0.566373;-0.032060; 1.261682;,
0.506373;-0.032060; 1.261682;,
0.506373; 0.031940; 1.261682;,
-0.590162; 0.058394; 1.118546;,
-0.552671; 0.079820; 1.118546;,
-0.552671; 0.079820; 0.485297;,
-0.590162; 0.058394; 0.485297;,
-0.590162; 0.058394; 1.118546;,
-0.590162; 0.058394; 0.485297;,
-0.643928; 0.027695; 0.485297;,
-0.643928; 0.027695; 1.118546;,
-0.552671; 0.079820; 1.118546;,
-0.512016; 0.095872; 1.118546;,
-0.512016; 0.095872; 0.485297;,
-0.552671; 0.079820; 0.485297;,
-0.468345; 0.107567; 1.118546;,
-0.419495; 0.111179; 1.118546;,
-0.419495; 0.111179; 0.485297;,
-0.468345; 0.107567; 0.485297;,
-0.512016; 0.095872; 1.118546;,
-0.468345; 0.107567; 1.118546;,
-0.468345; 0.107567; 0.485297;,
-0.512016; 0.095872; 0.485297;,
-0.419495; 0.111179; 1.118546;,
-0.369085; 0.113041; 1.118546;,
-0.369085; 0.113040; 0.485297;,
-0.419495; 0.111179; 0.485297;,
-0.314696; 0.107583; 1.118546;,
-0.259214; 0.100338; 1.118546;,
-0.259214; 0.100338; 0.485297;,
-0.314696; 0.107583; 0.485297;,
-0.369085; 0.113041; 1.118546;,
-0.314696; 0.107583; 1.118546;,
-0.314696; 0.107583; 0.485297;,
-0.369085; 0.113040; 0.485297;,
-0.259214; 0.100338; 1.118546;,
-0.202013; 0.089588; 1.118546;,
-0.202013; 0.089588; 0.485297;,
-0.259214; 0.100338; 0.485297;,
-0.143373; 0.076506; 1.118546;,
-0.084006; 0.062201; 1.118546;,
-0.084006; 0.062201; 0.485297;,
-0.143373; 0.076506; 0.485297;,
-0.202013; 0.089588; 1.118546;,
-0.143373; 0.076506; 1.118546;,
-0.143373; 0.076506; 0.485297;,
-0.202013; 0.089588; 0.485297;,
-0.022636; 0.046614; 1.118546;,
0.039448; 0.031072; 1.118546;,
0.039448; 0.031072; 0.485297;,
-0.022636; 0.046614; 0.485297;,
-0.084006; 0.062201; 1.118546;,
-0.022636; 0.046614; 1.118546;,
-0.022636; 0.046614; 0.485297;,
-0.084006; 0.062201; 0.485297;,
0.039448; 0.031072; 1.118546;,
0.103613; 0.015994; 1.118546;,
0.103613; 0.015994; 0.485297;,
0.039448; 0.031072; 0.485297;,
0.169657; 0.002341; 1.118546;,
0.237587;-0.009751; 1.118546;,
0.237587;-0.009751; 0.485297;,
0.169657; 0.002341; 0.485297;,
0.103613; 0.015994; 1.118546;,
0.169657; 0.002341; 1.118546;,
0.169657; 0.002341; 0.485297;,
0.103613; 0.015994; 0.485297;,
0.237587;-0.009751; 1.118546;,
0.309566;-0.016896; 1.118546;,
0.309566;-0.016896; 0.485297;,
0.237587;-0.009751; 0.485297;,
0.383071;-0.021322; 1.118546;,
0.461998;-0.014156; 1.118546;,
0.461998;-0.014156; 0.485297;,
0.383071;-0.021322; 0.485297;,
0.309566;-0.016896; 1.118546;,
0.383071;-0.021322; 1.118546;,
0.383071;-0.021322; 0.485297;,
0.309566;-0.016896; 0.485297;,
0.461998;-0.014156; 1.118546;,
0.541230; 0.000946; 1.118546;,
0.541230; 0.000946; 0.485297;,
0.461998;-0.014156; 0.485297;,
-0.590193; 0.053158; 1.118546;,
-0.590193; 0.053158; 0.485297;,
-0.552701; 0.074584; 0.485297;,
-0.552701; 0.074584; 1.118546;,
-0.590193; 0.053158; 1.118546;,
-0.643959; 0.022459; 1.118546;,
-0.643959; 0.022459; 0.485297;,
-0.590193; 0.053158; 0.485297;,
-0.552701; 0.074584; 1.118546;,
-0.552701; 0.074584; 0.485297;,
-0.512047; 0.090636; 0.485297;,
-0.512047; 0.090636; 1.118546;,
-0.468375; 0.102331; 1.118546;,
-0.468375; 0.102331; 0.485297;,
-0.419526; 0.105943; 0.485297;,
-0.419526; 0.105943; 1.118546;,
-0.512047; 0.090636; 1.118546;,
-0.512047; 0.090636; 0.485297;,
-0.468375; 0.102331; 0.485297;,
-0.468375; 0.102331; 1.118546;,
-0.419526; 0.105943; 1.118546;,
-0.419526; 0.105943; 0.485297;,
-0.369116; 0.107804; 0.485297;,
-0.369116; 0.107804; 1.118546;,
-0.314727; 0.102346; 1.118546;,
-0.314727; 0.102346; 0.485297;,
-0.259245; 0.095102; 0.485297;,
-0.259245; 0.095102; 1.118546;,
-0.369116; 0.107804; 1.118546;,
-0.369116; 0.107804; 0.485297;,
-0.314727; 0.102346; 0.485297;,
-0.314727; 0.102346; 1.118546;,
-0.259245; 0.095102; 1.118546;,
-0.259245; 0.095102; 0.485297;,
-0.202044; 0.084352; 0.485297;,
-0.202044; 0.084352; 1.118546;,
-0.143404; 0.071270; 1.118546;,
-0.143404; 0.071270; 0.485297;,
-0.084037; 0.056965; 0.485297;,
-0.084037; 0.056965; 1.118546;,
-0.202044; 0.084352; 1.118546;,
-0.202044; 0.084352; 0.485297;,
-0.143404; 0.071270; 0.485297;,
-0.143404; 0.071270; 1.118546;,
-0.022667; 0.041378; 1.118546;,
-0.022667; 0.041378; 0.485297;,
0.039418; 0.025836; 0.485297;,
0.039418; 0.025836; 1.118546;,
-0.084037; 0.056965; 1.118546;,
-0.084037; 0.056965; 0.485297;,
-0.022667; 0.041378; 0.485297;,
-0.022667; 0.041378; 1.118546;,
0.039418; 0.025836; 1.118546;,
0.039418; 0.025836; 0.485297;,
0.103582; 0.010758; 0.485297;,
0.103582; 0.010758; 1.118546;,
0.169626;-0.002895; 1.118546;,
0.169626;-0.002895; 0.485297;,
0.237556;-0.014987; 0.485297;,
0.237556;-0.014987; 1.118546;,
0.103582; 0.010758; 1.118546;,
0.103582; 0.010758; 0.485297;,
0.169626;-0.002895; 0.485297;,
0.169626;-0.002895; 1.118546;,
0.237556;-0.014987; 1.118546;,
0.237556;-0.014987; 0.485297;,
0.309535;-0.022132; 0.485297;,
0.309535;-0.022132; 1.118546;,
0.383041;-0.026558; 1.118546;,
0.383041;-0.026558; 0.485297;,
0.461967;-0.019392; 0.485297;,
0.461967;-0.019392; 1.118546;,
0.309535;-0.022132; 1.118546;,
0.309535;-0.022132; 0.485297;,
0.383041;-0.026558; 0.485297;,
0.383041;-0.026558; 1.118546;,
0.461967;-0.019392; 1.118546;,
0.461967;-0.019392; 0.485297;,
0.541199;-0.004290; 0.485297;,
0.541199;-0.004290; 1.118546;,
-0.643928; 0.027695; 1.118546;,
-0.643928; 0.027695; 0.485297;,
-0.643959; 0.022459; 0.485297;,
-0.643959; 0.022459; 1.118546;,
-0.202013; 0.089588; 1.118546;,
-0.259214; 0.100338; 1.118546;,
-0.259245; 0.095102; 1.118546;,
-0.202044; 0.084352; 1.118546;,
0.383071;-0.021322; 1.118546;,
0.309566;-0.016896; 1.118546;,
0.309535;-0.022132; 1.118546;,
0.383041;-0.026558; 1.118546;,
-0.468345; 0.107567; 0.485297;,
-0.419495; 0.111179; 0.485297;,
-0.419526; 0.105943; 0.485297;,
-0.468375; 0.102331; 0.485297;,
0.039448; 0.031072; 0.485297;,
0.103613; 0.015994; 0.485297;,
0.103582; 0.010758; 0.485297;,
0.039418; 0.025836; 0.485297;,
-0.419495; 0.111179; 1.118546;,
-0.468345; 0.107567; 1.118546;,
-0.468375; 0.102331; 1.118546;,
-0.419526; 0.105943; 1.118546;,
0.103613; 0.015994; 1.118546;,
0.039448; 0.031072; 1.118546;,
0.039418; 0.025836; 1.118546;,
0.103582; 0.010758; 1.118546;,
-0.590162; 0.058394; 1.118546;,
-0.643928; 0.027695; 1.118546;,
-0.643959; 0.022459; 1.118546;,
-0.590193; 0.053158; 1.118546;,
-0.143373; 0.076506; 1.118546;,
-0.202013; 0.089588; 1.118546;,
-0.202044; 0.084352; 1.118546;,
-0.143404; 0.071270; 1.118546;,
0.383071;-0.021322; 0.485297;,
0.461998;-0.014156; 0.485297;,
0.461967;-0.019392; 0.485297;,
0.383041;-0.026558; 0.485297;,
-0.643928; 0.027695; 0.485297;,
-0.590162; 0.058394; 0.485297;,
-0.590193; 0.053158; 0.485297;,
-0.643959; 0.022459; 0.485297;,
-0.202013; 0.089588; 0.485297;,
-0.143373; 0.076506; 0.485297;,
-0.143404; 0.071270; 0.485297;,
-0.202044; 0.084352; 0.485297;,
0.461998;-0.014156; 1.118546;,
0.383071;-0.021322; 1.118546;,
0.383041;-0.026558; 1.118546;,
0.461967;-0.019392; 1.118546;,
-0.419495; 0.111179; 0.485297;,
-0.369085; 0.113040; 0.485297;,
-0.369116; 0.107804; 0.485297;,
-0.419526; 0.105943; 0.485297;,
0.103613; 0.015994; 0.485297;,
0.169657; 0.002341; 0.485297;,
0.169626;-0.002895; 0.485297;,
0.103582; 0.010758; 0.485297;,
0.541230; 0.000946; 0.485297;,
0.541230; 0.000946; 1.118546;,
0.541199;-0.004290; 1.118546;,
0.541199;-0.004290; 0.485297;,
-0.369085; 0.113041; 1.118546;,
-0.419495; 0.111179; 1.118546;,
-0.419526; 0.105943; 1.118546;,
-0.369116; 0.107804; 1.118546;,
0.169657; 0.002341; 1.118546;,
0.103613; 0.015994; 1.118546;,
0.103582; 0.010758; 1.118546;,
0.169626;-0.002895; 1.118546;,
-0.590162; 0.058394; 0.485297;,
-0.552671; 0.079820; 0.485297;,
-0.552701; 0.074584; 0.485297;,
-0.590193; 0.053158; 0.485297;,
-0.143373; 0.076506; 0.485297;,
-0.084006; 0.062201; 0.485297;,
-0.084037; 0.056965; 0.485297;,
-0.143404; 0.071270; 0.485297;,
0.461998;-0.014156; 0.485297;,
0.541230; 0.000946; 0.485297;,
0.541199;-0.004290; 0.485297;,
0.461967;-0.019392; 0.485297;,
-0.552671; 0.079820; 1.118546;,
-0.590162; 0.058394; 1.118546;,
-0.590193; 0.053158; 1.118546;,
-0.552701; 0.074584; 1.118546;,
-0.084006; 0.062201; 1.118546;,
-0.143373; 0.076506; 1.118546;,
-0.143404; 0.071270; 1.118546;,
-0.084037; 0.056965; 1.118546;,
0.541230; 0.000946; 1.118546;,
0.461998;-0.014156; 1.118546;,
0.461967;-0.019392; 1.118546;,
0.541199;-0.004290; 1.118546;,
-0.369085; 0.113040; 0.485297;,
-0.314696; 0.107583; 0.485297;,
-0.314727; 0.102346; 0.485297;,
-0.369116; 0.107804; 0.485297;,
0.169657; 0.002341; 0.485297;,
0.237587;-0.009751; 0.485297;,
0.237556;-0.014987; 0.485297;,
0.169626;-0.002895; 0.485297;,
-0.314696; 0.107583; 1.118546;,
-0.369085; 0.113041; 1.118546;,
-0.369116; 0.107804; 1.118546;,
-0.314727; 0.102346; 1.118546;,
0.237587;-0.009751; 1.118546;,
0.169657; 0.002341; 1.118546;,
0.169626;-0.002895; 1.118546;,
0.237556;-0.014987; 1.118546;,
-0.552671; 0.079820; 0.485297;,
-0.512016; 0.095872; 0.485297;,
-0.512047; 0.090636; 0.485297;,
-0.552701; 0.074584; 0.485297;,
-0.084006; 0.062201; 0.485297;,
-0.022636; 0.046614; 0.485297;,
-0.022667; 0.041378; 0.485297;,
-0.084037; 0.056965; 0.485297;,
-0.512016; 0.095872; 1.118546;,
-0.552671; 0.079820; 1.118546;,
-0.552701; 0.074584; 1.118546;,
-0.512047; 0.090636; 1.118546;,
-0.022636; 0.046614; 1.118546;,
-0.084006; 0.062201; 1.118546;,
-0.084037; 0.056965; 1.118546;,
-0.022667; 0.041378; 1.118546;,
-0.314696; 0.107583; 0.485297;,
-0.259214; 0.100338; 0.485297;,
-0.259245; 0.095102; 0.485297;,
-0.314727; 0.102346; 0.485297;,
0.237587;-0.009751; 0.485297;,
0.309566;-0.016896; 0.485297;,
0.309535;-0.022132; 0.485297;,
0.237556;-0.014987; 0.485297;,
-0.259214; 0.100338; 1.118546;,
-0.314696; 0.107583; 1.118546;,
-0.314727; 0.102346; 1.118546;,
-0.259245; 0.095102; 1.118546;,
0.309566;-0.016896; 1.118546;,
0.237587;-0.009751; 1.118546;,
0.237556;-0.014987; 1.118546;,
0.309535;-0.022132; 1.118546;,
-0.512016; 0.095872; 0.485297;,
-0.468345; 0.107567; 0.485297;,
-0.468375; 0.102331; 0.485297;,
-0.512047; 0.090636; 0.485297;,
-0.022636; 0.046614; 0.485297;,
0.039448; 0.031072; 0.485297;,
0.039418; 0.025836; 0.485297;,
-0.022667; 0.041378; 0.485297;,
-0.468345; 0.107567; 1.118546;,
-0.512016; 0.095872; 1.118546;,
-0.512047; 0.090636; 1.118546;,
-0.468375; 0.102331; 1.118546;,
0.039448; 0.031072; 1.118546;,
-0.022636; 0.046614; 1.118546;,
-0.022667; 0.041378; 1.118546;,
0.039418; 0.025836; 1.118546;,
-0.259214; 0.100338; 0.485297;,
-0.202013; 0.089588; 0.485297;,
-0.202044; 0.084352; 0.485297;,
-0.259245; 0.095102; 0.485297;,
0.309566;-0.016896; 0.485297;,
0.383071;-0.021322; 0.485297;,
0.383041;-0.026558; 0.485297;,
0.309535;-0.022132; 0.485297;;
88;
4;3,2,1,0;,
4;7,6,5,4;,
4;11,10,9,8;,
4;15,14,13,12;,
4;19,18,17,16;,
4;23,22,21,20;,
4;27,26,25,24;,
4;31,30,29,28;,
4;35,34,33,32;,
4;39,38,37,36;,
4;43,42,41,40;,
4;47,46,45,44;,
4;51,50,49,48;,
4;55,54,53,52;,
4;59,58,57,56;,
4;63,62,61,60;,
4;67,66,65,64;,
4;71,70,69,68;,
4;75,74,73,72;,
4;79,78,77,76;,
4;83,82,81,80;,
4;87,86,85,84;,
4;91,90,89,88;,
4;95,94,93,92;,
4;99,98,97,96;,
4;103,102,101,100;,
4;107,106,105,104;,
4;111,110,109,108;,
4;115,114,113,112;,
4;119,118,117,116;,
4;123,122,121,120;,
4;127,126,125,124;,
4;131,130,129,128;,
4;135,134,133,132;,
4;139,138,137,136;,
4;143,142,141,140;,
4;147,146,145,144;,
4;151,150,149,148;,
4;155,154,153,152;,
4;159,158,157,156;,
4;163,162,161,160;,
4;167,166,165,164;,
4;171,170,169,168;,
4;175,174,173,172;,
4;179,178,177,176;,
4;183,182,181,180;,
4;187,186,185,184;,
4;191,190,189,188;,
4;195,194,193,192;,
4;199,198,197,196;,
4;203,202,201,200;,
4;207,206,205,204;,
4;211,210,209,208;,
4;215,214,213,212;,
4;219,218,217,216;,
4;223,222,221,220;,
4;227,226,225,224;,
4;231,230,229,228;,
4;235,234,233,232;,
4;239,238,237,236;,
4;243,242,241,240;,
4;247,246,245,244;,
4;251,250,249,248;,
4;255,254,253,252;,
4;259,258,257,256;,
4;263,262,261,260;,
4;267,266,265,264;,
4;271,270,269,268;,
4;275,274,273,272;,
4;279,278,277,276;,
4;283,282,281,280;,
4;287,286,285,284;,
4;291,290,289,288;,
4;295,294,293,292;,
4;299,298,297,296;,
4;303,302,301,300;,
4;307,306,305,304;,
4;311,310,309,308;,
4;315,314,313,312;,
4;319,318,317,316;,
4;323,322,321,320;,
4;327,326,325,324;,
4;331,330,329,328;,
4;335,334,333,332;,
4;339,338,337,336;,
4;343,342,341,340;,
4;347,346,345,344;,
4;351,350,349,348;;
MeshNormals { // flag normals
88;
1.000000; 0.000000;-0.000000;,
0.000000; 1.000000;-0.000000;,
-1.000000; 0.000000; 0.000000;,
0.000000;-1.000000; 0.000000;,
0.000000; 0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
-0.496183; 0.868218; 0.000000;,
-0.495842; 0.868413; 0.000000;,
-0.367234; 0.930129;-0.000000;,
-0.073735; 0.997278; 0.000000;,
-0.258685; 0.965962;-0.000000;,
-0.036910; 0.999319;-0.000000;,
0.129473; 0.991583; 0.000000;,
0.099850; 0.995003;-0.000000;,
0.184705; 0.982794; 0.000000;,
0.234254; 0.972175; 0.000000;,
0.217729; 0.976009; 0.000000;,
0.242850; 0.970064;-0.000000;,
0.246172; 0.969226;-0.000000;,
0.228750; 0.973485; 0.000000;,
0.175250; 0.984524; 0.000000;,
0.202449; 0.979293; 0.000000;,
0.098780; 0.995109; 0.000000;,
-0.090427; 0.995903;-0.000000;,
0.060111; 0.998192; 0.000000;,
-0.187237; 0.982315;-0.000000;,
0.496183;-0.868218;-0.000000;,
0.495842;-0.868413;-0.000000;,
0.367235;-0.930128; 0.000000;,
0.073735;-0.997278; 0.000000;,
0.258684;-0.965962; 0.000000;,
0.036910;-0.999319; 0.000000;,
-0.129473;-0.991583; 0.000000;,
-0.099849;-0.995003; 0.000000;,
-0.184705;-0.982794; 0.000000;,
-0.234255;-0.972175;-0.000000;,
-0.217730;-0.976009;-0.000000;,
-0.242849;-0.970064; 0.000000;,
-0.246172;-0.969226; 0.000000;,
-0.228750;-0.973485;-0.000000;,
-0.175250;-0.984524;-0.000000;,
-0.202449;-0.979293;-0.000000;,
-0.098780;-0.995109; 0.000000;,
0.090427;-0.995903; 0.000000;,
-0.060111;-0.998192; 0.000000;,
0.187237;-0.982315; 0.000000;,
-0.999983; 0.005874; 0.000000;,
-0.000000;-0.000000; 1.000000;,
0.000003;-0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000;-0.000000; 1.000000;,
-0.000000;-0.000000; 1.000000;,
0.000000;-0.000000; 1.000000;,
-0.000004; 0.000000; 1.000000;,
-0.000000; 0.000000;-1.000000;,
-0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
-0.000003; 0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
0.999983;-0.005885; 0.000000;,
0.000000;-0.000000; 1.000000;,
-0.000004; 0.000000; 1.000000;,
-0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
-0.000000; 0.000000;-1.000000;,
0.000000;-0.000000; 1.000000;,
0.000004;-0.000000; 1.000000;,
0.000003;-0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
-0.000004; 0.000000; 1.000000;,
0.000004;-0.000000; 1.000000;,
-0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
0.000006;-0.000000; 1.000000;,
-0.000000;-0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
0.000004;-0.000000; 1.000000;,
-0.000003; 0.000000; 1.000000;,
-0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000;-0.000000; 1.000000;,
-0.000000;-0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
0.000000; 0.000000;-1.000000;;
88;
4;0,0,0,0;,
4;1,1,1,1;,
4;2,2,2,2;,
4;3,3,3,3;,
4;4,4,4,4;,
4;5,5,5,5;,
4;6,6,6,6;,
4;7,7,7,7;,
4;8,8,8,8;,
4;9,9,9,9;,
4;10,10,10,10;,
4;11,11,11,11;,
4;12,12,12,12;,
4;13,13,13,13;,
4;14,14,14,14;,
4;15,15,15,15;,
4;16,16,16,16;,
4;17,17,17,17;,
4;18,18,18,18;,
4;19,19,19,19;,
4;20,20,20,20;,
4;21,21,21,21;,
4;22,22,22,22;,
4;23,23,23,23;,
4;24,24,24,24;,
4;25,25,25,25;,
4;26,26,26,26;,
4;27,27,27,27;,
4;28,28,28,28;,
4;29,29,29,29;,
4;30,30,30,30;,
4;31,31,31,31;,
4;32,32,32,32;,
4;33,33,33,33;,
4;34,34,34,34;,
4;35,35,35,35;,
4;36,36,36,36;,
4;37,37,37,37;,
4;38,38,38,38;,
4;39,39,39,39;,
4;40,40,40,40;,
4;41,41,41,41;,
4;42,42,42,42;,
4;43,43,43,43;,
4;44,44,44,44;,
4;45,45,45,45;,
4;46,46,46,46;,
4;47,47,47,47;,
4;48,48,48,48;,
4;49,49,49,49;,
4;50,50,50,50;,
4;51,51,51,51;,
4;52,52,52,52;,
4;53,53,53,53;,
4;54,54,54,54;,
4;55,55,55,55;,
4;56,56,56,56;,
4;57,57,57,57;,
4;58,58,58,58;,
4;59,59,59,59;,
4;60,60,60,60;,
4;61,61,61,61;,
4;62,62,62,62;,
4;63,63,63,63;,
4;64,64,64,64;,
4;65,65,65,65;,
4;66,66,66,66;,
4;67,67,67,67;,
4;68,68,68,68;,
4;69,69,69,69;,
4;70,70,70,70;,
4;71,71,71,71;,
4;72,72,72,72;,
4;73,73,73,73;,
4;74,74,74,74;,
4;75,75,75,75;,
4;76,76,76,76;,
4;77,77,77,77;,
4;78,78,78,78;,
4;79,79,79,79;,
4;80,80,80,80;,
4;81,81,81,81;,
4;82,82,82,82;,
4;83,83,83,83;,
4;84,84,84,84;,
4;85,85,85,85;,
4;86,86,86,86;,
4;87,87,87,87;;
} // End of flag normals
MeshTextureCoords { // flag UV coordinates
352;
0.502372; 0.655955;,
0.502372; 0.674052;,
0.993251; 0.674052;,
0.993251; 0.655955;,
0.997751; 0.687795;,
0.997751; 0.674223;,
0.506885; 0.674221;,
0.506885; 0.687795;,
0.488799; 0.674052;,
0.488799; 0.655955;,
-0.002080; 0.655955;,
-0.002080; 0.674052;,
-0.002080; 0.674221;,
-0.002080; 0.687793;,
0.488786; 0.687795;,
0.488786; 0.674221;,
0.488786; 0.687795;,
0.506885; 0.687795;,
0.506885; 0.674221;,
0.488786; 0.674221;,
0.488799; 0.655955;,
0.488799; 0.674052;,
0.502372; 0.674052;,
0.502372; 0.655955;,
0.943902; 0.002727;,
0.908697; 0.002727;,
0.908696; 0.502611;,
0.943901; 0.502611;,
0.943902; 0.002727;,
0.943901; 0.502611;,
0.994376; 0.502611;,
0.994377; 0.002727;,
0.908697; 0.002727;,
0.873062; 0.002727;,
0.873062; 0.502611;,
0.908696; 0.502611;,
0.836204; 0.002727;,
0.796270; 0.002727;,
0.796270; 0.502611;,
0.836203; 0.502611;,
0.873062; 0.002727;,
0.836204; 0.002727;,
0.836203; 0.502611;,
0.873062; 0.502611;,
0.796270; 0.002727;,
0.755145; 0.002727;,
0.755144; 0.502611;,
0.796270; 0.502611;,
0.710581; 0.002727;,
0.664964; 0.002727;,
0.664964; 0.502611;,
0.710580; 0.502611;,
0.755145; 0.002727;,
0.710581; 0.002727;,
0.710580; 0.502611;,
0.755144; 0.502611;,
0.664964; 0.002727;,
0.617514; 0.002727;,
0.617513; 0.502611;,
0.664964; 0.502611;,
0.568531; 0.002727;,
0.518746; 0.002727;,
0.518746; 0.502611;,
0.568531; 0.502611;,
0.617514; 0.002727;,
0.568531; 0.002727;,
0.568531; 0.502611;,
0.617513; 0.502611;,
0.467125; 0.002727;,
0.414948; 0.002727;,
0.414948; 0.502611;,
0.467125; 0.502611;,
0.518746; 0.002727;,
0.467125; 0.002727;,
0.467125; 0.502611;,
0.518746; 0.502611;,
0.414948; 0.002727;,
0.361211; 0.002727;,
0.361212; 0.502611;,
0.414948; 0.502611;,
0.306230; 0.002727;,
0.249978; 0.002727;,
0.249979; 0.502611;,
0.306230; 0.502611;,
0.361211; 0.002727;,
0.306230; 0.002727;,
0.306230; 0.502611;,
0.361212; 0.502611;,
0.249978; 0.002727;,
0.191008; 0.002727;,
0.191008; 0.502611;,
0.249979; 0.502611;,
0.130973; 0.002727;,
0.066362; 0.002727;,
0.066362; 0.502611;,
0.130973; 0.502611;,
0.191008; 0.002727;,
0.130973; 0.002727;,
0.130973; 0.502611;,
0.191008; 0.502611;,
0.066362; 0.002727;,
0.000604; 0.002727;,
0.000604; 0.502611;,
0.066362; 0.502611;,
0.941264; 0.001422;,
0.941265; 0.507504;,
0.906167; 0.507504;,
0.906167; 0.001422;,
0.941264; 0.001422;,
0.991585; 0.001422;,
0.991585; 0.507504;,
0.941265; 0.507504;,
0.906167; 0.001422;,
0.906167; 0.507504;,
0.870642; 0.507504;,
0.870642; 0.001422;,
0.833896; 0.001422;,
0.833896; 0.507504;,
0.794084; 0.507504;,
0.794084; 0.001422;,
0.870642; 0.001422;,
0.870642; 0.507504;,
0.833896; 0.507504;,
0.833896; 0.001422;,
0.794084; 0.001422;,
0.794084; 0.507504;,
0.753084; 0.507504;,
0.753085; 0.001422;,
0.708657; 0.001422;,
0.708657; 0.507504;,
0.663180; 0.507504;,
0.663180; 0.001422;,
0.753085; 0.001422;,
0.753084; 0.507504;,
0.708657; 0.507504;,
0.708657; 0.001422;,
0.663180; 0.001422;,
0.663180; 0.507504;,
0.615874; 0.507504;,
0.615874; 0.001422;,
0.567042; 0.001422;,
0.567042; 0.507504;,
0.517409; 0.507504;,
0.517409; 0.001422;,
0.615874; 0.001422;,
0.615874; 0.507504;,
0.567042; 0.507504;,
0.567042; 0.001422;,
0.465946; 0.001422;,
0.465945; 0.507504;,
0.413927; 0.507504;,
0.413928; 0.001422;,
0.517409; 0.001422;,
0.517409; 0.507504;,
0.465945; 0.507504;,
0.465946; 0.001422;,
0.413928; 0.001422;,
0.413927; 0.507504;,
0.360356; 0.507504;,
0.360356; 0.001422;,
0.305542; 0.001422;,
0.305542; 0.507504;,
0.249463; 0.507504;,
0.249463; 0.001422;,
0.360356; 0.001422;,
0.360356; 0.507504;,
0.305542; 0.507504;,
0.305542; 0.001422;,
0.249463; 0.001422;,
0.249463; 0.507504;,
0.190673; 0.507504;,
0.190673; 0.001422;,
0.130821; 0.001422;,
0.130821; 0.507504;,
0.066407; 0.507504;,
0.066407; 0.001422;,
0.190673; 0.001422;,
0.190673; 0.507504;,
0.130821; 0.507504;,
0.130821; 0.001422;,
0.066407; 0.001422;,
0.066407; 0.507504;,
0.000850; 0.507504;,
0.000850; 0.001422;,
0.819613; 0.932277;,
0.721014; 0.932277;,
0.721002; 0.933997;,
0.819602; 0.933998;,
0.594108; 0.827414;,
0.581155; 0.825058;,
0.581155; 0.826243;,
0.594108; 0.828598;,
0.726607; 0.851725;,
0.709973; 0.850821;,
0.709973; 0.852006;,
0.726607; 0.852909;,
0.533037; 0.819855;,
0.544035; 0.821198;,
0.544085; 0.820014;,
0.533086; 0.818671;,
0.648599; 0.808047;,
0.663260; 0.805332;,
0.663310; 0.804148;,
0.648648; 0.806863;,
0.544883; 0.822819;,
0.533838; 0.823701;,
0.533838; 0.824886;,
0.544883; 0.824004;,
0.663341; 0.843655;,
0.648807; 0.840330;,
0.648807; 0.841514;,
0.663341; 0.844839;,
0.506347; 0.834987;,
0.494225; 0.842003;,
0.494225; 0.843187;,
0.506347; 0.836171;,
0.607391; 0.830295;,
0.594108; 0.827414;,
0.594108; 0.828598;,
0.607391; 0.831479;,
0.726809; 0.799913;,
0.744566; 0.802384;,
0.744616; 0.801200;,
0.726858; 0.798730;,
0.494225; 0.799914;,
0.506043; 0.807430;,
0.506092; 0.806247;,
0.494274; 0.798731;,
0.593408; 0.818665;,
0.606799; 0.816341;,
0.606849; 0.815158;,
0.593458; 0.817481;,
0.744451; 0.849999;,
0.726607; 0.851725;,
0.726607; 0.852909;,
0.744451; 0.851183;,
0.544035; 0.821198;,
0.555405; 0.822162;,
0.555455; 0.820979;,
0.544085; 0.820014;,
0.663260; 0.805332;,
0.678331; 0.802959;,
0.678380; 0.801775;,
0.663310; 0.804148;,
0.721002; 0.932108;,
0.819602; 0.932108;,
0.819613; 0.930387;,
0.721014; 0.930387;,
0.556284; 0.822331;,
0.544883; 0.822819;,
0.544883; 0.824004;,
0.556284; 0.823515;,
0.678299; 0.846656;,
0.663341; 0.843655;,
0.663341; 0.844839;,
0.678299; 0.847840;,
0.506043; 0.807430;,
0.514283; 0.812676;,
0.514332; 0.811493;,
0.506092; 0.806247;,
0.606799; 0.816341;,
0.620368; 0.813749;,
0.620417; 0.812566;,
0.606849; 0.815158;,
0.744566; 0.802384;,
0.762307; 0.806651;,
0.762356; 0.805467;,
0.744616; 0.801200;,
0.514799; 0.830090;,
0.506347; 0.834987;,
0.506347; 0.836171;,
0.514799; 0.831275;,
0.620839; 0.833452;,
0.607391; 0.830295;,
0.607391; 0.831479;,
0.620839; 0.834636;,
0.762354; 0.846477;,
0.744451; 0.849999;,
0.744451; 0.851183;,
0.762354; 0.847662;,
0.555405; 0.822162;,
0.567753; 0.821515;,
0.567803; 0.820332;,
0.555455; 0.820979;,
0.678331; 0.802959;,
0.693811; 0.800959;,
0.693860; 0.799776;,
0.678380; 0.801775;,
0.568595; 0.823493;,
0.556284; 0.822331;,
0.556284; 0.823515;,
0.568595; 0.824678;,
0.693681; 0.849301;,
0.678299; 0.846656;,
0.678299; 0.847840;,
0.693681; 0.850485;,
0.514283; 0.812676;,
0.523295; 0.816741;,
0.523345; 0.815558;,
0.514332; 0.811493;,
0.620368; 0.813749;,
0.634403; 0.810889;,
0.634452; 0.809705;,
0.620417; 0.812566;,
0.523974; 0.826405;,
0.514799; 0.830090;,
0.514799; 0.831275;,
0.523974; 0.827589;,
0.634742; 0.836896;,
0.620839; 0.833452;,
0.620839; 0.834636;,
0.634742; 0.838081;,
0.567753; 0.821515;,
0.580368; 0.820477;,
0.580417; 0.819293;,
0.567803; 0.820332;,
0.693811; 0.800959;,
0.710152; 0.800121;,
0.710202; 0.798937;,
0.693860; 0.799776;,
0.581155; 0.825058;,
0.568595; 0.823493;,
0.568595; 0.824678;,
0.581155; 0.826243;,
0.709973; 0.850821;,
0.693681; 0.849301;,
0.693681; 0.850485;,
0.709973; 0.852006;,
0.523295; 0.816741;,
0.533037; 0.819855;,
0.533086; 0.818671;,
0.523345; 0.815558;,
0.634403; 0.810889;,
0.648599; 0.808047;,
0.648648; 0.806863;,
0.634452; 0.809705;,
0.533838; 0.823701;,
0.523974; 0.826405;,
0.523974; 0.827589;,
0.533838; 0.824886;,
0.648807; 0.840330;,
0.634742; 0.836896;,
0.634742; 0.838081;,
0.648807; 0.841514;,
0.580368; 0.820477;,
0.593408; 0.818665;,
0.593458; 0.817481;,
0.580417; 0.819293;,
0.710152; 0.800121;,
0.726809; 0.799913;,
0.726858; 0.798730;,
0.710202; 0.798937;;
} // End of flag UV coordinates
} // End of flag mesh
} // End of flag
} // End of Root

View File

@ -1,222 +0,0 @@
# Blender 4.4.3
# www.blender.org
mtllib flag_support.mtl
o Plane
v -0.510405 -0.503108 -0.514181
v -0.510405 -0.503108 0.512251
v 0.516028 -0.503108 -0.514180
v 0.516027 -0.503108 0.512252
v -0.504090 -0.492843 -0.464318
v -0.070070 0.051166 -0.030298
v -0.460542 -0.492843 -0.507866
v -0.026523 0.051166 -0.073846
v -0.460542 -0.492843 -0.420770
v -0.067580 -0.000156 -0.027808
v -0.416994 -0.492843 -0.464318
v -0.024032 -0.000156 -0.071356
v 0.466165 -0.492844 -0.507866
v 0.032146 0.051166 -0.073846
v 0.509713 -0.492844 -0.464318
v 0.075693 0.051166 -0.030298
v 0.422617 -0.492843 -0.464318
v 0.029655 -0.000156 -0.071356
v 0.466165 -0.492843 -0.420770
v 0.073203 -0.000156 -0.027808
v 0.466165 -0.492844 0.505937
v 0.032146 0.051166 0.071917
v 0.509713 -0.492844 0.462389
v 0.075693 0.051166 0.028370
v 0.422617 -0.492844 0.462389
v 0.029655 -0.000156 0.069427
v 0.466165 -0.492844 0.418841
v 0.073203 -0.000156 0.025879
v -0.504090 -0.492844 0.462389
v -0.070070 0.051166 0.028370
v -0.460542 -0.492844 0.505937
v -0.026523 0.051166 0.071917
v -0.460542 -0.492844 0.418841
v -0.067580 -0.000156 0.025879
v -0.416994 -0.492844 0.462389
v -0.024032 -0.000156 0.069427
v -0.510405 -0.489509 -0.514181
v -0.510405 -0.489509 0.512251
v 0.516028 -0.489509 -0.514180
v 0.516027 -0.489510 0.512252
v -0.076859 -0.049034 -0.080635
v -0.076859 0.110308 -0.080635
v 0.082482 -0.049034 -0.080635
v 0.082482 0.110308 -0.080635
v -0.076859 -0.049034 0.078706
v -0.076859 0.110308 0.078706
v 0.082482 -0.049034 0.078706
v 0.082482 0.110308 0.078706
v 0.049677 0.077502 0.045901
v 0.049677 -0.016228 0.045901
v -0.044054 0.077502 0.045901
v -0.044054 -0.016228 0.045901
v 0.049677 0.077502 -0.047830
v 0.049677 -0.016228 -0.047830
v -0.044054 0.077502 -0.047830
v -0.044054 -0.016228 -0.047830
vn -0.0000 -1.0000 -0.0000
vn -0.4690 0.7484 -0.4690
vn 0.7071 -0.0000 -0.7071
vn 0.4691 -0.7483 0.4691
vn -0.7071 -0.0000 0.7071
vn -0.0000 1.0000 -0.0000
vn 0.4690 0.7484 -0.4690
vn 0.7071 -0.0000 0.7071
vn -0.4691 -0.7483 0.4691
vn -0.7071 -0.0000 -0.7071
vn -0.7054 -0.0685 0.7054
vn -0.7054 0.0685 0.7054
vn -0.4690 -0.7484 -0.4690
vn 0.4691 0.7483 0.4691
vn 0.4690 -0.7484 -0.4690
vn -0.4691 0.7483 0.4691
vn 0.7054 -0.0685 0.7054
vn 0.7054 0.0685 0.7054
vn -0.0000 -0.0000 1.0000
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.7071 -0.7071
vn 0.7071 -0.7071 -0.0000
vn 0.7071 0.7071 -0.0000
vn -0.0000 -0.7071 0.7071
vn -0.0000 0.7071 0.7071
vn -0.7071 -0.7071 -0.0000
vn -0.7071 0.7071 -0.0000
vn -0.0000 -0.7071 -0.7071
vt 0.000222 0.512504
vt 0.502631 0.512769
vt 0.502631 0.000487
vt 0.000222 0.000222
vt 0.702700 0.891477
vt 0.672991 0.891474
vt 0.673030 0.495818
vt 0.702740 0.495821
vt 0.653338 0.876322
vt 0.653323 0.518049
vt 0.623629 0.876323
vt 0.623614 0.518051
vt 0.603976 0.891476
vt 0.603904 0.495820
vt 0.901297 0.495821
vt 0.881587 0.518051
vt 0.851878 0.518050
vt 0.832170 0.495818
vt 0.573751 0.495818
vt 0.554044 0.518049
vt 0.524335 0.518051
vt 0.504625 0.495820
vt 0.603422 0.891477
vt 0.573712 0.891474
vt 0.603461 0.495821
vt 0.554059 0.876322
vt 0.524350 0.876323
vt 0.504698 0.891477
vt 0.832209 0.891475
vt 0.851862 0.876323
vt 0.881572 0.876325
vt 0.901224 0.891478
vt 0.732932 0.891475
vt 0.703222 0.891478
vt 0.703183 0.495821
vt 0.732893 0.495818
vt 0.801946 0.891478
vt 0.782294 0.876324
vt 0.782309 0.518051
vt 0.802019 0.495821
vt 0.752585 0.876323
vt 0.752600 0.518049
vt 0.802499 0.891478
vt 0.802462 0.495821
vt 0.504625 0.495375
vt 0.504625 0.000222
vt 0.999778 0.000222
vt 0.999778 0.495375
vt 0.491425 0.502422
vt 0.493275 0.010540
vt 0.011428 0.010569
vt 0.009578 0.502451
vt 0.385267 0.676942
vt 0.386630 0.634786
vt 0.407898 0.611579
vt 0.408626 0.698179
vt 0.097215 0.567693
vt 0.121209 0.606692
vt 0.107780 0.622610
vt 0.069514 0.565919
vt 0.344547 0.632816
vt 0.321185 0.611578
vt 0.203667 0.606458
vt 0.235584 0.565919
vt 0.270917 0.571097
vt 0.215623 0.628725
vt 0.343185 0.674971
vt 0.321920 0.698178
vt 0.160922 0.618835
vt 0.158674 0.640991
vt 0.320742 0.641329
vt 0.250510 0.691154
vt 0.164187 0.714990
vt 0.074379 0.693986
vt 0.000222 0.631238
vt 0.366401 0.565919
vt 0.366401 0.611135
vt 0.321185 0.611135
vt 0.321185 0.565919
vt 0.411617 0.565919
vt 0.411617 0.611135
vt 0.456832 0.565919
vt 0.456832 0.611135
vt 0.502048 0.565919
vt 0.502048 0.611135
s 0
f 3/1/1 4/2/1 2/3/1 1/4/1
f 6/5/2 8/6/2 7/7/2 5/8/2
f 8/6/3 12/9/3 11/10/3 7/7/3
f 12/9/4 10/11/4 9/12/4 11/10/4
f 10/11/5 6/13/5 5/14/5 9/12/5
f 31/15/6 35/16/6 33/17/6 29/18/6
f 15/19/1 19/20/1 17/21/1 13/22/1
f 14/23/7 16/24/7 15/19/7 13/25/7
f 16/24/8 20/26/8 19/20/8 15/19/8
f 20/26/9 18/27/9 17/21/9 19/20/9
f 18/27/10 14/28/10 13/22/10 17/21/10
f 30/29/11 34/30/11 36/31/11 32/32/11
f 14/28/12 18/27/12 20/26/12 16/24/12
f 22/33/13 24/34/13 23/35/13 21/36/13
f 24/37/5 28/38/5 27/39/5 23/40/5
f 28/38/14 26/41/14 25/42/14 27/39/14
f 26/41/3 22/33/3 21/36/3 25/42/3
f 23/40/6 27/39/6 25/42/6 21/36/6
f 7/7/1 11/10/1 9/12/1 5/14/1
f 30/29/15 32/43/15 31/44/15 29/18/15
f 32/32/10 36/31/10 35/16/10 31/15/10
f 36/31/16 34/30/16 33/17/16 35/16/16
f 34/30/8 30/29/8 29/18/8 33/17/8
f 22/33/17 26/41/17 28/38/17 24/37/17
f 6/13/18 10/11/18 12/9/18 8/6/18
f 37/45/6 38/46/6 40/47/6 39/48/6
f 2/3/19 4/2/19 40/49/19 38/50/19
f 3/1/20 1/4/20 37/51/20 39/52/20
f 4/2/21 3/1/21 39/52/21 40/49/21
f 1/4/22 2/3/22 38/50/22 37/51/22
f 49/53/23 51/54/23 46/55/23 48/56/23
f 56/57/24 52/58/24 45/59/24 41/60/24
f 51/54/25 55/61/25 42/62/25 46/55/25
f 54/63/26 56/64/26 41/65/26 43/66/26
f 55/61/27 53/67/27 44/68/27 42/62/27
f 50/69/28 54/63/28 43/66/28 47/70/28
f 53/67/29 49/53/29 48/56/29 44/68/29
f 52/58/30 50/69/30 47/70/30 45/59/30
f 42/71/20 44/72/20 43/66/20 41/65/20
f 44/72/21 48/73/21 47/70/21 43/66/21
f 48/73/19 46/74/19 45/59/19 47/70/19
f 46/74/22 42/75/22 41/60/22 45/59/22
f 51/76/21 52/77/21 56/78/21 55/79/21
f 49/80/20 50/81/20 52/77/20 51/76/20
f 53/82/22 54/83/22 50/81/22 49/80/22
f 55/84/19 56/85/19 54/83/19 53/82/19

535
models/banner_support.x Normal file
View File

@ -0,0 +1,535 @@
xof 0303txt 0032
Frame Root {
FrameTransformMatrix {
1.000000, 0.000000, 0.000000, 0.000000,
0.000000,-0.000000, 1.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000,
0.000000, 0.000000, 0.000000, 1.000000;;
}
Frame Plane {
FrameTransformMatrix {
5.000000, 0.000000, 0.000000, 0.000000,
0.000000, 5.000000, 0.000000, 0.000000,
0.000000, 0.000000, 5.000000, 0.000000,
0.000000, 0.000000, 0.000000, 1.000000;;
}
Mesh { // Plane mesh
184;
0.516028;-0.503108;-0.514180;,
0.516027;-0.503108; 0.512252;,
-0.510405;-0.503108; 0.512251;,
-0.510405;-0.503108;-0.514181;,
-0.070070; 0.051166;-0.030298;,
-0.026523; 0.051166;-0.073846;,
-0.460542;-0.492843;-0.507866;,
-0.504090;-0.492843;-0.464318;,
-0.026523; 0.051166;-0.073846;,
-0.024032;-0.000156;-0.071356;,
-0.416994;-0.492843;-0.464318;,
-0.460542;-0.492843;-0.507866;,
-0.024032;-0.000156;-0.071356;,
-0.067580;-0.000156;-0.027808;,
-0.460542;-0.492843;-0.420770;,
-0.416994;-0.492843;-0.464318;,
-0.067580;-0.000156;-0.027808;,
-0.070070; 0.051166;-0.030298;,
-0.504090;-0.492843;-0.464318;,
-0.460542;-0.492843;-0.420770;,
-0.460542;-0.492844; 0.505937;,
-0.416994;-0.492844; 0.462389;,
-0.460542;-0.492844; 0.418841;,
-0.504090;-0.492844; 0.462389;,
0.509713;-0.492844;-0.464318;,
0.466165;-0.492843;-0.420770;,
0.422617;-0.492843;-0.464318;,
0.466165;-0.492844;-0.507866;,
0.032146; 0.051166;-0.073846;,
0.075693; 0.051166;-0.030298;,
0.509713;-0.492844;-0.464318;,
0.466165;-0.492844;-0.507866;,
0.075693; 0.051166;-0.030298;,
0.073203;-0.000156;-0.027808;,
0.466165;-0.492843;-0.420770;,
0.509713;-0.492844;-0.464318;,
0.073203;-0.000156;-0.027808;,
0.029655;-0.000156;-0.071356;,
0.422617;-0.492843;-0.464318;,
0.466165;-0.492843;-0.420770;,
0.029655;-0.000156;-0.071356;,
0.032146; 0.051166;-0.073846;,
0.466165;-0.492844;-0.507866;,
0.422617;-0.492843;-0.464318;,
-0.070070; 0.051166; 0.028370;,
-0.067580;-0.000156; 0.025879;,
-0.024032;-0.000156; 0.069427;,
-0.026523; 0.051166; 0.071917;,
0.032146; 0.051166;-0.073846;,
0.029655;-0.000156;-0.071356;,
0.073203;-0.000156;-0.027808;,
0.075693; 0.051166;-0.030298;,
0.032146; 0.051166; 0.071917;,
0.075693; 0.051166; 0.028370;,
0.509713;-0.492844; 0.462389;,
0.466165;-0.492844; 0.505937;,
0.075693; 0.051166; 0.028370;,
0.073203;-0.000156; 0.025879;,
0.466165;-0.492844; 0.418841;,
0.509713;-0.492844; 0.462389;,
0.073203;-0.000156; 0.025879;,
0.029655;-0.000156; 0.069427;,
0.422617;-0.492844; 0.462389;,
0.466165;-0.492844; 0.418841;,
0.029655;-0.000156; 0.069427;,
0.032146; 0.051166; 0.071917;,
0.466165;-0.492844; 0.505937;,
0.422617;-0.492844; 0.462389;,
0.509713;-0.492844; 0.462389;,
0.466165;-0.492844; 0.418841;,
0.422617;-0.492844; 0.462389;,
0.466165;-0.492844; 0.505937;,
-0.460542;-0.492843;-0.507866;,
-0.416994;-0.492843;-0.464318;,
-0.460542;-0.492843;-0.420770;,
-0.504090;-0.492843;-0.464318;,
-0.070070; 0.051166; 0.028370;,
-0.026523; 0.051166; 0.071917;,
-0.460542;-0.492844; 0.505937;,
-0.504090;-0.492844; 0.462389;,
-0.026523; 0.051166; 0.071917;,
-0.024032;-0.000156; 0.069427;,
-0.416994;-0.492844; 0.462389;,
-0.460542;-0.492844; 0.505937;,
-0.024032;-0.000156; 0.069427;,
-0.067580;-0.000156; 0.025879;,
-0.460542;-0.492844; 0.418841;,
-0.416994;-0.492844; 0.462389;,
-0.067580;-0.000156; 0.025879;,
-0.070070; 0.051166; 0.028370;,
-0.504090;-0.492844; 0.462389;,
-0.460542;-0.492844; 0.418841;,
0.032146; 0.051166; 0.071917;,
0.029655;-0.000156; 0.069427;,
0.073203;-0.000156; 0.025879;,
0.075693; 0.051166; 0.028370;,
-0.070070; 0.051166;-0.030298;,
-0.067580;-0.000156;-0.027808;,
-0.024032;-0.000156;-0.071356;,
-0.026523; 0.051166;-0.073846;,
-0.510405;-0.489509;-0.514181;,
-0.510405;-0.489509; 0.512251;,
0.516027;-0.489510; 0.512252;,
0.516028;-0.489509;-0.514180;,
-0.510405;-0.503108; 0.512251;,
0.516027;-0.503108; 0.512252;,
0.516027;-0.489510; 0.512252;,
-0.510405;-0.489509; 0.512251;,
0.516028;-0.503108;-0.514180;,
-0.510405;-0.503108;-0.514181;,
-0.510405;-0.489509;-0.514181;,
0.516028;-0.489509;-0.514180;,
0.516027;-0.503108; 0.512252;,
0.516028;-0.503108;-0.514180;,
0.516028;-0.489509;-0.514180;,
0.516027;-0.489510; 0.512252;,
-0.510405;-0.503108;-0.514181;,
-0.510405;-0.503108; 0.512251;,
-0.510405;-0.489509; 0.512251;,
-0.510405;-0.489509;-0.514181;,
0.049677; 0.077502; 0.045901;,
-0.044054; 0.077502; 0.045901;,
-0.076859; 0.110308; 0.078706;,
0.082482; 0.110308; 0.078706;,
-0.044054;-0.016228;-0.047830;,
-0.044054;-0.016228; 0.045901;,
-0.076859;-0.049034; 0.078706;,
-0.076859;-0.049034;-0.080635;,
-0.044054; 0.077502; 0.045901;,
-0.044054; 0.077502;-0.047830;,
-0.076859; 0.110308;-0.080635;,
-0.076859; 0.110308; 0.078706;,
0.049677;-0.016228;-0.047830;,
-0.044054;-0.016228;-0.047830;,
-0.076859;-0.049034;-0.080635;,
0.082482;-0.049034;-0.080635;,
-0.044054; 0.077502;-0.047830;,
0.049677; 0.077502;-0.047830;,
0.082482; 0.110308;-0.080635;,
-0.076859; 0.110308;-0.080635;,
0.049677;-0.016228; 0.045901;,
0.049677;-0.016228;-0.047830;,
0.082482;-0.049034;-0.080635;,
0.082482;-0.049034; 0.078706;,
0.049677; 0.077502;-0.047830;,
0.049677; 0.077502; 0.045901;,
0.082482; 0.110308; 0.078706;,
0.082482; 0.110308;-0.080635;,
-0.044054;-0.016228; 0.045901;,
0.049677;-0.016228; 0.045901;,
0.082482;-0.049034; 0.078706;,
-0.076859;-0.049034; 0.078706;,
-0.076859; 0.110308;-0.080635;,
0.082482; 0.110308;-0.080635;,
0.082482;-0.049034;-0.080635;,
-0.076859;-0.049034;-0.080635;,
0.082482; 0.110308;-0.080635;,
0.082482; 0.110308; 0.078706;,
0.082482;-0.049034; 0.078706;,
0.082482;-0.049034;-0.080635;,
0.082482; 0.110308; 0.078706;,
-0.076859; 0.110308; 0.078706;,
-0.076859;-0.049034; 0.078706;,
0.082482;-0.049034; 0.078706;,
-0.076859; 0.110308; 0.078706;,
-0.076859; 0.110308;-0.080635;,
-0.076859;-0.049034;-0.080635;,
-0.076859;-0.049034; 0.078706;,
-0.044054; 0.077502; 0.045901;,
-0.044054;-0.016228; 0.045901;,
-0.044054;-0.016228;-0.047830;,
-0.044054; 0.077502;-0.047830;,
0.049677; 0.077502; 0.045901;,
0.049677;-0.016228; 0.045901;,
-0.044054;-0.016228; 0.045901;,
-0.044054; 0.077502; 0.045901;,
0.049677; 0.077502;-0.047830;,
0.049677;-0.016228;-0.047830;,
0.049677;-0.016228; 0.045901;,
0.049677; 0.077502; 0.045901;,
-0.044054; 0.077502;-0.047830;,
-0.044054;-0.016228;-0.047830;,
0.049677;-0.016228;-0.047830;,
0.049677; 0.077502;-0.047830;;
46;
4;3,2,1,0;,
4;7,6,5,4;,
4;11,10,9,8;,
4;15,14,13,12;,
4;19,18,17,16;,
4;23,22,21,20;,
4;27,26,25,24;,
4;31,30,29,28;,
4;35,34,33,32;,
4;39,38,37,36;,
4;43,42,41,40;,
4;47,46,45,44;,
4;51,50,49,48;,
4;55,54,53,52;,
4;59,58,57,56;,
4;63,62,61,60;,
4;67,66,65,64;,
4;71,70,69,68;,
4;75,74,73,72;,
4;79,78,77,76;,
4;83,82,81,80;,
4;87,86,85,84;,
4;91,90,89,88;,
4;95,94,93,92;,
4;99,98,97,96;,
4;103,102,101,100;,
4;107,106,105,104;,
4;111,110,109,108;,
4;115,114,113,112;,
4;119,118,117,116;,
4;123,122,121,120;,
4;127,126,125,124;,
4;131,130,129,128;,
4;135,134,133,132;,
4;139,138,137,136;,
4;143,142,141,140;,
4;147,146,145,144;,
4;151,150,149,148;,
4;155,154,153,152;,
4;159,158,157,156;,
4;163,162,161,160;,
4;167,166,165,164;,
4;171,170,169,168;,
4;175,174,173,172;,
4;179,178,177,176;,
4;183,182,181,180;;
MeshNormals { // Plane normals
46;
-0.000000;-1.000000;-0.000000;,
-0.469011; 0.748370;-0.469012;,
0.707107; 0.000000;-0.707107;,
0.469086;-0.748276; 0.469086;,
-0.707107;-0.000000; 0.707107;,
0.000000; 1.000000; 0.000000;,
-0.000001;-1.000000; 0.000001;,
0.469011; 0.748370;-0.469011;,
0.707107;-0.000000; 0.707107;,
-0.469086;-0.748276; 0.469086;,
-0.707107;-0.000001;-0.707106;,
-0.705447;-0.068468; 0.705448;,
-0.705448; 0.068468; 0.705447;,
-0.469011;-0.748369;-0.469011;,
-0.707106; 0.000001; 0.707107;,
0.469086; 0.748276; 0.469086;,
0.707107; 0.000001;-0.707106;,
-0.000000; 1.000000; 0.000000;,
0.000000;-1.000000; 0.000000;,
0.469011;-0.748370;-0.469012;,
-0.707107;-0.000000;-0.707107;,
-0.469086; 0.748276; 0.469086;,
0.707106; 0.000001; 0.707107;,
0.705448;-0.068468; 0.705447;,
0.705447; 0.068468; 0.705448;,
0.000000; 1.000000; 0.000000;,
-0.000000; 0.000000; 1.000000;,
0.000000; 0.000000;-1.000000;,
1.000000; 0.000000; 0.000000;,
-1.000000; 0.000000;-0.000000;,
0.000000; 0.707106;-0.707108;,
0.707107;-0.707106; 0.000000;,
0.707108; 0.707106; 0.000000;,
-0.000000;-0.707106; 0.707107;,
-0.000000; 0.707106; 0.707108;,
-0.707107;-0.707106;-0.000000;,
-0.707108; 0.707105;-0.000000;,
0.000000;-0.707106;-0.707107;,
0.000000; 0.000000;-1.000000;,
1.000000; 0.000000; 0.000000;,
0.000000;-0.000000; 1.000000;,
-1.000000; 0.000000;-0.000000;,
1.000000;-0.000000; 0.000000;,
0.000000; 0.000000;-1.000000;,
-1.000000; 0.000000;-0.000000;,
-0.000000; 0.000000; 1.000000;;
46;
4;0,0,0,0;,
4;1,1,1,1;,
4;2,2,2,2;,
4;3,3,3,3;,
4;4,4,4,4;,
4;5,5,5,5;,
4;6,6,6,6;,
4;7,7,7,7;,
4;8,8,8,8;,
4;9,9,9,9;,
4;10,10,10,10;,
4;11,11,11,11;,
4;12,12,12,12;,
4;13,13,13,13;,
4;14,14,14,14;,
4;15,15,15,15;,
4;16,16,16,16;,
4;17,17,17,17;,
4;18,18,18,18;,
4;19,19,19,19;,
4;20,20,20,20;,
4;21,21,21,21;,
4;22,22,22,22;,
4;23,23,23,23;,
4;24,24,24,24;,
4;25,25,25,25;,
4;26,26,26,26;,
4;27,27,27,27;,
4;28,28,28,28;,
4;29,29,29,29;,
4;30,30,30,30;,
4;31,31,31,31;,
4;32,32,32,32;,
4;33,33,33,33;,
4;34,34,34,34;,
4;35,35,35,35;,
4;36,36,36,36;,
4;37,37,37,37;,
4;38,38,38,38;,
4;39,39,39,39;,
4;40,40,40,40;,
4;41,41,41,41;,
4;42,42,42,42;,
4;43,43,43,43;,
4;44,44,44,44;,
4;45,45,45,45;;
} // End of Plane normals
MeshTextureCoords { // Plane UV coordinates
184;
0.000222; 0.487496;,
0.502631; 0.487231;,
0.502631; 0.999513;,
0.000222; 0.999778;,
0.702700; 0.108523;,
0.672991; 0.108526;,
0.673030; 0.504182;,
0.702740; 0.504179;,
0.672991; 0.108526;,
0.653338; 0.123678;,
0.653323; 0.481951;,
0.673030; 0.504182;,
0.653338; 0.123678;,
0.623629; 0.123677;,
0.623614; 0.481949;,
0.653323; 0.481951;,
0.623629; 0.123677;,
0.603976; 0.108524;,
0.603904; 0.504180;,
0.623614; 0.481949;,
0.901297; 0.504179;,
0.881587; 0.481949;,
0.851878; 0.481950;,
0.832170; 0.504182;,
0.573751; 0.504182;,
0.554044; 0.481951;,
0.524335; 0.481949;,
0.504625; 0.504180;,
0.603422; 0.108523;,
0.573712; 0.108526;,
0.573751; 0.504182;,
0.603461; 0.504179;,
0.573712; 0.108526;,
0.554059; 0.123678;,
0.554044; 0.481951;,
0.573751; 0.504182;,
0.554059; 0.123678;,
0.524350; 0.123677;,
0.524335; 0.481949;,
0.554044; 0.481951;,
0.524350; 0.123677;,
0.504698; 0.108523;,
0.504625; 0.504180;,
0.524335; 0.481949;,
0.832209; 0.108525;,
0.851862; 0.123677;,
0.881572; 0.123675;,
0.901224; 0.108522;,
0.504698; 0.108523;,
0.524350; 0.123677;,
0.554059; 0.123678;,
0.573712; 0.108526;,
0.732932; 0.108525;,
0.703222; 0.108522;,
0.703183; 0.504179;,
0.732893; 0.504182;,
0.801946; 0.108522;,
0.782294; 0.123676;,
0.782309; 0.481949;,
0.802019; 0.504179;,
0.782294; 0.123676;,
0.752585; 0.123677;,
0.752600; 0.481951;,
0.782309; 0.481949;,
0.752585; 0.123677;,
0.732932; 0.108525;,
0.732893; 0.504182;,
0.752600; 0.481951;,
0.802019; 0.504179;,
0.782309; 0.481949;,
0.752600; 0.481951;,
0.732893; 0.504182;,
0.673030; 0.504182;,
0.653323; 0.481951;,
0.623614; 0.481949;,
0.603904; 0.504180;,
0.832209; 0.108525;,
0.802499; 0.108522;,
0.802462; 0.504179;,
0.832170; 0.504182;,
0.901224; 0.108522;,
0.881572; 0.123675;,
0.881587; 0.481949;,
0.901297; 0.504179;,
0.881572; 0.123675;,
0.851862; 0.123677;,
0.851878; 0.481950;,
0.881587; 0.481949;,
0.851862; 0.123677;,
0.832209; 0.108525;,
0.832170; 0.504182;,
0.851878; 0.481950;,
0.732932; 0.108525;,
0.752585; 0.123677;,
0.782294; 0.123676;,
0.801946; 0.108522;,
0.603976; 0.108524;,
0.623629; 0.123677;,
0.653338; 0.123678;,
0.672991; 0.108526;,
0.504625; 0.504625;,
0.504625; 0.999778;,
0.999778; 0.999778;,
0.999778; 0.504625;,
0.502631; 0.999513;,
0.502631; 0.487231;,
0.491425; 0.497578;,
0.493275; 0.989460;,
0.000222; 0.487496;,
0.000222; 0.999778;,
0.011428; 0.989431;,
0.009578; 0.497549;,
0.502631; 0.487231;,
0.000222; 0.487496;,
0.009578; 0.497549;,
0.491425; 0.497578;,
0.000222; 0.999778;,
0.502631; 0.999513;,
0.493275; 0.989460;,
0.011428; 0.989431;,
0.385267; 0.323058;,
0.386630; 0.365214;,
0.407898; 0.388421;,
0.408626; 0.301821;,
0.097215; 0.432307;,
0.121209; 0.393308;,
0.107780; 0.377390;,
0.069514; 0.434081;,
0.386630; 0.365214;,
0.344547; 0.367184;,
0.321185; 0.388422;,
0.407898; 0.388421;,
0.203667; 0.393542;,
0.235584; 0.434081;,
0.270917; 0.428903;,
0.215623; 0.371275;,
0.344547; 0.367184;,
0.343185; 0.325029;,
0.321920; 0.301822;,
0.321185; 0.388422;,
0.160922; 0.381165;,
0.203667; 0.393542;,
0.215623; 0.371275;,
0.158674; 0.359009;,
0.343185; 0.325029;,
0.385267; 0.323058;,
0.408626; 0.301821;,
0.321920; 0.301822;,
0.121209; 0.393308;,
0.160922; 0.381165;,
0.158674; 0.359009;,
0.107780; 0.377390;,
0.320742; 0.358671;,
0.250510; 0.308846;,
0.215623; 0.371275;,
0.270917; 0.428903;,
0.250510; 0.308846;,
0.164187; 0.285010;,
0.158674; 0.359009;,
0.215623; 0.371275;,
0.164187; 0.285010;,
0.074379; 0.306014;,
0.107780; 0.377390;,
0.158674; 0.359009;,
0.074379; 0.306014;,
0.000222; 0.368762;,
0.069514; 0.434081;,
0.107780; 0.377390;,
0.366401; 0.434081;,
0.366401; 0.388865;,
0.321185; 0.388865;,
0.321185; 0.434081;,
0.411617; 0.434081;,
0.411617; 0.388865;,
0.366401; 0.388865;,
0.366401; 0.434081;,
0.456832; 0.434081;,
0.456832; 0.388865;,
0.411617; 0.388865;,
0.411617; 0.434081;,
0.502048; 0.434081;,
0.502048; 0.388865;,
0.456832; 0.388865;,
0.456832; 0.434081;;
} // End of Plane UV coordinates
} // End of Plane mesh
} // End of Plane
} // End of Root

View File

@ -1,38 +1,55 @@
-- da wooden banner
core.register_node("banners:wooden_banner", {
drawtype = "mesh",
mesh = "banner_support.obj",
tiles = { "banner_support.png" },
description = "Wooden banner",
groups = { choppy = 2, dig_immediate = 2 },
is_ground_content = false,
diggable = true,
stack_max = 1,
paramtype = "light",
paramtype2 = "facedir",
after_place_node = banners.banner_after_place,
on_destruct = banners.banner_on_destruct,
on_use = banners.banner_on_use,
on_dig = banners.banner_on_dig,
on_movenode = banners.banner_on_movenode,
})
minetest.register_node("banners:wooden_banner",
{
drawtype = "mesh",
mesh = "banner_support.x",
tiles = {"banner_support.png"},
description = "Wooden banner",
groups = {choppy=2, dig_immediate=2},
diggable = true,
stack_max = 1,
paramtype="light",
paramtype2="facedir",
after_place_node = function (pos, player, itemstack, pointed_thing)
banners.banner_after_place(pos, player, itemstack, pointed_thing)
end,
on_destruct = function(pos)
banners.banner_on_destruct(pos)
end,
on_use = function(i, p, pt)
banners.banner_on_use(i, p, pt)
end,
on_dig = function(pos, n, p)
banners.banner_on_dig(pos, n, p)
end
}
)
-- steel banner
core.register_node("banners:steel_banner", {
drawtype = "mesh",
mesh = "banner_support.obj",
tiles = { "steel_support.png" },
description = "Steel banner",
groups = { cracky = 2 },
is_ground_content = false,
diggable = true,
stack_max = 1,
paramtype = "light",
paramtype2 = "facedir",
after_place_node = banners.banner_after_place,
on_destruct = banners.banner_on_destruct,
on_use = banners.banner_on_use,
on_dig = banners.banner_on_dig,
on_movenode = banners.banner_on_movenode,
})
minetest.register_node("banners:steel_banner",
{
drawtype = "mesh",
mesh = "banner_support.x",
tiles = {"steel_support.png"},
description = "Steel banner",
groups = {cracky=2},
diggable = true,
stack_max = 1,
paramtype = "light",
paramtype2 = "facedir",
after_place_node = function (pos, player, itemstack, pointed_thing)
banners.banner_after_place(pos, player, itemstack, pointed_thing)
end,
on_destruct = function(pos)
banners.banner_on_destruct(pos)
end,
on_use = function(i, p, pt)
banners.banner_on_use(i, p, pt)
end,
on_dig = function(pos, n, p)
banners.banner_on_dig(pos, n, p)
end
}
)

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 402 B