Skip to content

Add level 4 (and clean some .env: calls and white spaces) #73

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion skyblock_levels/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ dofile(modpath..'/skyblock.levels.1.lua')
dofile(modpath..'/skyblock.levels.2.lua')
dofile(modpath..'/skyblock.levels.3.lua')
dofile(modpath..'/skyblock.levels.4.lua')
dofile(modpath..'/skyblock.levels.5.lua')

dofile(modpath..'/register_abm.lua')
dofile(modpath..'/register_craft.lua')
Expand All @@ -26,4 +27,4 @@ dofile(modpath..'/register_node.lua')
dofile(modpath..'/register_misc.lua')

-- log that we started
skyblock.log('[MOD]'..minetest.get_current_modname()..' -- loaded from '..minetest.get_modpath(minetest.get_current_modname()))
skyblock.log('[MOD]'..minetest.get_current_modname()..' -- loaded from '..minetest.get_modpath(minetest.get_current_modname()))
6 changes: 3 additions & 3 deletions skyblock_levels/register_misc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ minetest.register_on_dieplayer(function(player)
else
skyblock.feats.reset_level(player_name)
end

-- back to start of this level

end)

-- player receive fields
Expand All @@ -59,6 +59,6 @@ if minetest.get_modpath('unified_inventory') then
tooltip = 'Skyblock Quests',
action = function(player)
skyblock.feats.update(player:get_player_name())
end,
end,
})
end
2 changes: 1 addition & 1 deletion skyblock_levels/register_node.lua
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ minetest.override_item('default:sapling', {
-- check if we have space to make a tree
for dy=1,4 do
pos.y = pos.y+dy
if minetest.env:get_node(pos).name ~= 'air' and minetest.env:get_node(pos).name ~= 'default:leaves' then
if minetest.get_node(pos).name ~= 'air' and minetest.get_node(pos).name ~= 'default:leaves' then
return
end
pos.y = pos.y-dy
Expand Down
40 changes: 26 additions & 14 deletions skyblock_levels/skyblock.feats.lua
Original file line number Diff line number Diff line change
Expand Up @@ -79,18 +79,18 @@ function skyblock.feats.update(player_name)
end
end
minetest.log('action', player_name..' completed level '..level)

skyblock.feats.add(0,info.player_name,'level')
skyblock.levels[level+1].init(info.player_name)
info = skyblock.levels[level+1].get_info(info.player_name)
end

-- update formspecs
local player = minetest.get_player_by_name(player_name)
if player then
player:set_inventory_formspec(info.formspec)
end
local meta = minetest.env:get_meta(pos)
local meta = minetest.get_meta(pos)
meta:set_string('formspec', info.formspec_quest)
meta:set_string('infotext', info.infotext)
end
Expand Down Expand Up @@ -260,6 +260,15 @@ function skyblock.feats.bucket_lava_on_use(itemstack, user, pointed_thing)
end
end

-- track hoe feats
function skyblock.feats.hoe_on_use(itemstack, user, pointed_thing)
local player_name = user:get_player_name()
local level = skyblock.feats.get_level(player_name)
if skyblock.levels[level].hoe_on_use then
skyblock.levels[level].hoe_on_use(player_name, pointed_thing, itemstack:get_name())
end
end

-- bucket_empty
local function bucket_on_use(itemstack, user, pointed_thing)
-- Must be pointing to node
Expand All @@ -283,12 +292,12 @@ local function bucket_on_use(itemstack, user, pointed_thing)
-- Check if pointing to a liquid source
local liquid = bucket.liquids[n.name]
if liquid ~= nil and liquid.source == n.name and liquid.itemname ~= nil then

-- begin track bucket feats
skyblock.feats.bucket_on_use(itemstack, user, pointed_thing)
-- end track bucket feats
minetest.env:add_node(pointed_thing.under, {name='air'})

minetest.add_node(pointed_thing.under, {name='air'})
return {name=liquid.itemname}
end
end
Expand Down Expand Up @@ -335,10 +344,10 @@ local function bucket_water_on_use(itemstack, user, pointed_thing)
end
-- end anti-grief change

minetest.env:add_node(pointed_thing.above, {name='default:water_source'})
minetest.add_node(pointed_thing.above, {name='default:water_source'})
elseif n.name ~= 'default:water_source' then
-- It's a liquid
minetest.env:add_node(pointed_thing.under, {name='default:water_source'})
minetest.add_node(pointed_thing.under, {name='default:water_source'})
end

-- begin track bucket feats
Expand Down Expand Up @@ -391,10 +400,10 @@ local function bucket_lava_on_use(itemstack, user, pointed_thing)
end
-- end anti-grief change

minetest.env:add_node(pointed_thing.above, {name='default:lava_source'})
minetest.add_node(pointed_thing.above, {name='default:lava_source'})
elseif n.name ~= 'default:lava_source' then
-- It's a liquid
minetest.env:add_node(pointed_thing.under, {name='default:lava_source'})
minetest.add_node(pointed_thing.under, {name='default:lava_source'})
end

-- begin track bucket feats
Expand All @@ -408,13 +417,16 @@ minetest.override_item('bucket:bucket_lava', {
on_use = bucket_lava_on_use,
})

-- add protection to hoes
-- add protection to hoes, and also a callback
for _, material in pairs({"wood", "stone", "steel", "bronze", "mese", "diamond"}) do
local old_use = minetest.registered_items["farming:hoe_" .. material].on_use
minetest.override_item("farming:hoe_" .. material, {
on_use = function(itemstack, user, pointed_thing)
if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
old_use(itemstack, user, pointed_thing)
if pointed_thing.above and not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
if old_use(itemstack, user, pointed_thing) then
-- Also update feats if the hoe did something
skyblock.feats.hoe_on_use(itemstack, user, pointed_thing)
end
end
end
})
Expand All @@ -435,7 +447,7 @@ function skyblock.feats.save(data,player_name)
if not file then
mkdir(filepath)
file = io.open(filepath..'/'..player_name, 'wb')
if not file then
if not file then
skyblock.log('cannot open feat file for writing "'..filepath..'/'..player_name..'"')
end
end
Expand Down
6 changes: 3 additions & 3 deletions skyblock_levels/skyblock.levels.1.lua
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,11 @@ skyblock.levels[level].feats = {
},
{
name = 'craft and place a Sign',
hint = 'default:sign_wall',
hint = 'default:sign_wall_wood',
feat = 'place_sign',
count = 1,
reward = 'default:pick_steel',
placenode = {'default:sign_wall'},
placenode = {'default:sign_wall_wood'},
},
{
name = 'craft and place a Door',
Expand Down Expand Up @@ -201,4 +201,4 @@ end
-- track bucket lava feats
skyblock.levels[level].bucket_lava_on_use = function(player_name, pointed_thing)
skyblock.levels.bucket_lava_on_use(level, player_name, pointed_thing)
end
end
10 changes: 5 additions & 5 deletions skyblock_levels/skyblock.levels.3.lua
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ skyblock.levels[level].reward_feat = function(player_name, feat)
-- add water after dig_stone_with_mese
if rewarded and feat == 'dig_stone_with_mese' then
local pos = skyblock.get_spawn(player_name)
minetest.env:add_node({x=pos.x,y=pos.y+1,z=pos.z}, {name='default:water_source'})
minetest.add_node({x=pos.x,y=pos.y+1,z=pos.z}, {name='default:water_source'})
return true
end

Expand Down Expand Up @@ -200,10 +200,10 @@ skyblock.levels[level].bucket_water_on_use = function(player_name, pointed_thing

-- place_water_infinite
local pos = pointed_thing.under
if minetest.env:get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name=='default:water_source'
or minetest.env:get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name=='default:water_source'
or minetest.env:get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name=='default:water_source'
or minetest.env:get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name=='default:water_source' then
if minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z-1}).name=='default:water_source'
or minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z+1}).name=='default:water_source'
or minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z-1}).name=='default:water_source'
or minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z+1}).name=='default:water_source' then
skyblock.feats.add(level,player_name,'place_water_infinite')
return
end
Expand Down
Loading