Skip to content

Instantly share code, notes, and snippets.

@Jordach
Last active February 12, 2017 14:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Jordach/d67c2c3484a6841254e87183aebbc9e9 to your computer and use it in GitHub Desktop.
Save Jordach/d67c2c3484a6841254e87183aebbc9e9 to your computer and use it in GitHub Desktop.
-- wardrobe formspec
wardrobe = {}
wardrobe.player_materials = {}
wardrobe.formspec_selections = {}
wardrobe.formspec_selections_rgb = {}
wardrobe.formspec_selections["singleplayer"] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
wardrobe.formspec_selections_rgb["singleplayer"] = {}
for i=1,22 do -- if you think i'm writing RRGGBB for each table line, think again
wardrobe.formspec_selections_rgb["singleplayer"][i] = "RRGGBB"
end
--clothing
wardrobe.undershirt_names = {}
wardrobe.shirt_names = {}
wardrobe.under_trousers = {}
wardrobe.trousers = {}
wardrobe.sock_names = {}
wardrobe.shoe_names = {}
wardrobe.accessories = {}
--biological features
wardrobe.mouth_parts = {}
wardrobe.hair_styles = {}
wardrobe.eyes = {}
-- preset names
wardrobe.shirt_names[1] = "Sam's Shirt"
wardrobe.shirt_names[2] = "Plain T-Shirt"
wardrobe.shirt_names[3] = "Tank"
wardrobe.shirt_names[4] = "Tank2"
-- eyes
function wardrobe.formspec_meta(texture_table, rgb_table )
--[[ texture ID's (21 vars)
eye,
hair,
mouth,
ushirt, ushirt2,
utrou, utrou2,
socks, socks2,
jacket, jacket2,
trous, trous2,
shoes, shoes2,
acc1, acc2, acc3, acc4, acc5, acc6,
-- RGB colours (22 vars)
skinrgb,
eyergb,
pupilrgb,
hairrgb,
ushirtrgb, ushirt2rgb,
utrourgb, utrou2rgb,
socksrgb, socks2rgb,
jacketrgb, jacket2rgb,
trousrgb, trous2rgb,
shoesrgb, shoes2rgb,
acc1rgb, acc2rgb, acc3rgb, acc4rgb, acc5rgb, acc6rgb
)
]]-- notice - old varnames
local formspec =
"size[14,10]"..
"label[0,0.15;Skin Tone:]"..
"field[2.75,0.3;1.75,1;skintone;;"..rgb_table[1].."]"..
"label[0,1.0;Eye Type and]"..
"label[0,1.38;Eye Colour:]"..
"button[1.7,1;1,1;eyedown;<-]".. --
"field[2.75,1.32;1.75,1;ewhite;;"..rgb_table[2].."]".. --//
"button[3.97,1;1,1;eyeup;->]".. --
"label[0,2.18;Pupil Colour:]"..
"field[2.75,2.32;1.75,1;pcolour;;"..rgb_table[3].."]".. --//
"button[8.27,13;1,1;exit;Exit]"
return formspec
end
minetest.register_node("wardrobe:node", {
description = "Wardrobe",
tiles = {"wardrobe.png"},
groups = {crumbly=3},
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local pchoices = {}
local pname = placer:get_player_name()
meta:set_string("formspec", wardrobe.formspec_meta(wardrobe.formspec_selections[pname], wardrobe.formspec_selections_rgb[pname]))
end,
on_receive_fields = function(pos, formname, fields, sender)
if(fields.quit) then return end
local pname = sender:get_player_name()
print (wardrobe.formspec_selections[pname][3])
local meta = minetest.get_meta(pos)
if (fields.shirtdown) then
wardrobe.table_incrementer(3, false, sender)
meta:set_string("formspec", wardrobe.formspec_meta(wardrobe.formspec_selections[pname], wardrobe.formspec_selections_rgb[pname]))
--minetest.show_formspec(pname, formname, wardrobe.formspec_meta(unpack(wardrobe.formspec_selections[pname])))
end
if fields.shirtup then
wardrobe.table_incrementer(3, true, sender)
print (wardrobe.formspec_selections[pname][3])
meta:set_string("formspec", wardrobe.formspec_meta(wardrobe.formspec_selections[pname], wardrobe.formspec_selections_rgb[pname]))
--minetest.show_formspec(pname)
end
end,
})
function wardrobe.table_incrementer(arraynum, operator, player)
if operator then
wardrobe.formspec_selections[player:get_player_name()][arraynum] = wardrobe.formspec_selections[player:get_player_name()][arraynum] + 1
else
wardrobe.formspec_selections[player:get_player_name()][arraynum] = wardrobe.formspec_selections[player:get_player_name()][arraynum] - 1
end
end
function wardrobe.number_or_nil(number)
if number == nil then
number = 1
end
return number
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment