first commit

master
TheShadowZone12 2014-08-28 09:01:22 -05:00
commit d6e05e0390
30 changed files with 576 additions and 0 deletions

12
README.txt Normal file
View File

@ -0,0 +1,12 @@
So I know there are girls out there who wish there was a mod made for them
well wish no more cause straight from cg72 and shadowzone comes the..
GIRLYGIRL MOD!!!!!!!!!!
Have fun playing with pink building blocks and no more wishing they wouldn't focus so much on guys!!!!!!!!!!
The items included..
pink wood,cactus,ladders,chest,sand,bricks,tree,cobble,stone,tools(like picks,axes,shovels,swords),hearts,saplings.

141
chest.lua Normal file
View File

@ -0,0 +1,141 @@
chest_formspec =
"size[8,9]"..
"list[current_name;main;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]"
function get_locked_chest_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
local formspec =
"size[8,9]"..
"list[nodemeta:".. spos .. ";main;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]"
return formspec
end
minetest.register_node("girlygirl:chest", {
description = "Chest",
tiles = {"girlygirl_chest_top.png", "girlygirl_chest_top.png", "girlygirl_chest_side.png",
"girlygirl_chest_side.png", "girlygirl_chest_side.png", "girlygirl_chest_front.png"},
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",chest_formspec)
meta:set_string("infotext", "Chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
local function has_locked_chest_privilege(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
minetest.register_node("girlygirl:chest_locked", {
description = "Locked Chest",
tiles = {"girlygirl_chest_top.png", "girlygirl_chest_top.png", "girlygirl_chest_side.png",
"girlygirl_chest_side.png", "girlygirl_chest_side.png", "girlygirl_chest_lock.png"},
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Locked Chest (owned by "..
meta:get_string("owner")..")")
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("infotext", "Locked Chest")
meta:set_string("owner", "")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main") and has_locked_chest_privilege(meta, player)
end,
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos)
if not has_locked_chest_privilege(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a locked chest belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not has_locked_chest_privilege(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a locked chest belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
if not has_locked_chest_privilege(meta, player) then
minetest.log("action", player:get_player_name()..
" tried to access a locked chest belonging to "..
meta:get_string("owner").." at "..
minetest.pos_to_string(pos))
return 0
end
return stack:get_count()
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in locked chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to locked chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from locked chest at "..minetest.pos_to_string(pos))
end,
on_rightclick = function(pos, node, clicker)
local meta = minetest.get_meta(pos)
if has_locked_chest_privilege(meta, clicker) then
minetest.show_formspec(
clicker:get_player_name(),
"girlygirl:chest_locked",
get_locked_chest_formspec(pos)
)
end
end,
})

102
craft.lua Normal file
View File

@ -0,0 +1,102 @@
minetest.register_craftitem("girlygirl:girlystick", {
description = "Girly Stick",
inventory_image = "girlygirl_stick.png",
})
minetest.register_craft({
output = 'girlygirl:girlystick 2',
recipe = {
{'default:stick'},
{'dye:magenta'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'girlygirl:wood 8',
recipe = {
{'girlygirl:tree'},
}
})
minetest.register_craft({
output = 'girlygirl:pick',
recipe = {
{'default:pick_diamond'},
{'girlygirl:stick'},
}
})
minetest.register_craft({
output = 'girlygirl:stonebrick',
recipe = {
{'default:stonebrick'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:chest',
recipe = {
{'default:chest'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:chest_locked',
recipe = {
{'default:chest_locked'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:cobble',
recipe = {
{'default:cobble'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:tree',
recipe = {
{'default:tree'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:leaves',
recipe = {
{'default:leaves'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:sand',
recipe = {
{'default:sand'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:brick',
recipe = {
{'default:brick'},
{'girlygirl:girlystick'},
}
})
minetest.register_craft({
output = 'girlygirl:magenta_block',
recipe = {
{'plasticbox:plasticbox'},
{'girlygirl:girlystick'},
}
})

1
depends.txt Normal file
View File

@ -0,0 +1 @@
default

243
init.lua Normal file
View File

@ -0,0 +1,243 @@
local cylbox = {}
local detail = 16
local sehne
for i = 1, detail-1 do
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
cylbox[i]={(i/detail)-0.5, -0.5, -sehne, (i/detail)+(1/detail)-0.5, 0.5, sehne}
end
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
dofile(minetest.get_modpath("girlygirl").."/chest.lua")
dofile(minetest.get_modpath("girlygirl").."/craft.lua")
dofile(minetest.get_modpath("girlygirl").."/tools.lua")
dofile(minetest.get_modpath("girlygirl").."/tree.lua")
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
minetest.register_node("girlygirl:magenta_block", {
description = "Girly Magenta Block",
tiles = {"girlygirl_magenta.png"},
is_ground_content = true,
groups = {cracky=3, stone=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("girlygirl:stonebrick", {
description = "Stone Brick",
tiles = {"girlygirl_stone_brick.png"},
groups = {cracky=2, stone=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("girlygirl:sand", {
description = "Sand",
tiles = {"girlygirl_sand.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("girlygirl:brick", {
description = "Brick Block",
tiles = {"girlygirl_brick.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("girlygirl:tree", {
description = "Tree",
tiles = {"girlygirl_tree_top.png", "girlygirl_tree_top.png", "girlygirl_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
paramtype = "light",
drawtype = "nodebox",
selection_box = {
type = "fixed",
fixed = cylbox,
},
node_box = {
type = "fixed",
fixed = cylbox,
},
})
minetest.register_node("girlygirl:leaves", {
description = "Leaves",
drawtype = "allfaces_optional",
visual_scale = 1.3,
tiles = {"girlygirl_leaves.png"},
paramtype = "light",
waving = 1,
is_ground_content = false,
groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
drop = {
max_items = 1,
items = {
{
items = {'girlygirl:sapling'},
rarity = 5,
},
{
items = {'girlygirl:leaves'},
}
}
},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("girlygirl:sapling", {
description = "Sapling",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"girlygirl_sapling.png"},
inventory_image = "girlygirl_sapling.png",
wield_image = "girlygirl_sapling.png",
paramtype = "light",
walkable = false,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
},
groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("girlygirl:cactus", {
description = "Cactus",
drawtype = "nodebox",
tiles = {"girlygirl_cactus_top.png", "girlygirl_cactus_top.png", "girlygirl_cactus_side.png"},
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = cylbox,
},
node_box = {
type = "fixed",
fixed = cylbox,
},
groups = {snappy=1,choppy=3,flammable=2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
minetest.register_abm({
nodenames = {"girlygirl:cactus"},
neighbors = {"group:sand"},
interval = 50,
chance = 20,
action = function(pos, node)
pos.y = pos.y-1
local name = minetest.get_node(pos).name
if minetest.get_item_group(name, "sand") ~= 0 then
pos.y = pos.y+1
local height = 0
while minetest.get_node(pos).name == "girlygirl:cactus" and height < 10 do
height = height+1
pos.y = pos.y+1
end
if height < 4 then
if minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name="girlygirl:cactus"})
end
end
end
end,
})
minetest.register_node("girlygirl:fence_wood", {
description = "Wooden Fence",
drawtype = "fencelike",
tiles = {"girlygirl_wood.png"},
inventory_image = "girlygirl_fence.png",
wield_image = "girlygirl_fence.png",
paramtype = "light",
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("girlygirl:ladder", {
description = "Ladder",
drawtype = "signlike",
tiles = {"girlygirl_ladder.png"},
inventory_image = "girlygirl_ladder.png",
wield_image = "girlygirl_ladder.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2},
legacy_wallmounted = true,
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("girlygirl:wood", {
description = "Wooden Planks",
tiles = {"girlygirl_wood.png"},
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("girlygirl:cobble", {
description = "Cobblestone",
tiles = {"girlygirl_cobble.png"},
is_ground_content = true,
groups = {cracky=3, stone=2},
sounds = default.node_sound_stone_defaults(),
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

BIN
textures/girlygirl_sand.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

BIN
textures/girlygirl_tree.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

BIN
textures/girlygirl_wood.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

BIN
textures/heart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 B

52
tools.lua Normal file
View File

@ -0,0 +1,52 @@
minetest.register_tool("girlygirl:pick_diamond", {
description = "Diamond Pickaxe",
inventory_image = "girlygirl_diamondpick.png",
tool_capabilities = {
full_punch_interval = 0.9,
max_drop_level=3,
groupcaps={
cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3},
},
damage_groups = {fleshy=5},
},
})
minetest.register_tool("girlygirl:shovel_diamond", {
description = "Diamond Shovel",
inventory_image = "girlygirl_diamondshovel.png",
wield_image = "girlygirl_tool_diamondshovel.png^[transformR90",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3},
},
damage_groups = {fleshy=4},
},
})
minetest.register_tool("girlygirl:axe_diamond", {
description = "Diamond Axe",
inventory_image = "girlygirl_diamondaxe.png",
tool_capabilities = {
full_punch_interval = 0.9,
max_drop_level=1,
groupcaps={
choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2},
},
damage_groups = {fleshy=7},
},
})
minetest.register_tool("girlygirl:sword_diamond", {
description = "Diamond Sword",
inventory_image = "girlygirl_diamondsword.png",
tool_capabilities = {
full_punch_interval = 0.7,
max_drop_level=1,
groupcaps={
snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3},
},
damage_groups = {fleshy=8},
}
})

25
tree.lua Normal file
View File

@ -0,0 +1,25 @@
girl_tree={
axiom="",
trunk="girlygirl:tree",
leaves="girlygirl:leaves",
angle=30,
iterations=0,
random_level=3,
trunk_type="single",
thin_branches=true,
}
local trunks_stub = "FFFFF"
local axiom_stub = "[F&F][&^^^^F][&////F][GGf&&&GG&&&Gffff&&&G+++G&&&Gffff][GGG///&&&GG&&&GGfff&&&G+++G&&&GGfff][GGG//////&&&GG&&&GGfff&&&G+++G&&&Gffff][GGG/////////&&&GG&&&GGfff&&&G+++G&&&Gffff]"
minetest.register_abm({
nodenames = {"girlygirl:sapling"},
interval = 1,--10,
chance = 1,--35,
action = function(pos, node)
minetest.add_node(pos, {name = "air"} )
girl_tree.axiom = string.sub("TTTT"..trunks_stub, 1, math.random(4, 14))..axiom_stub
girl_tree.iterations = math.random(1, 5)
minetest.spawn_tree(pos, girl_tree)
end
})