improve the editor
parent
e437d25e30
commit
2bedfb03dd
133
editor.lua
133
editor.lua
|
@ -5,12 +5,120 @@ arena_lib.register_editor_section("wormball", {
|
|||
icon = "wormball_menu.png",
|
||||
hotbar_message = "Wormball Arena Settings",
|
||||
give_items = function(itemstack, user, arena)
|
||||
local tbl = {"wormball:pos1","wormball:pos2"}
|
||||
|
||||
|
||||
-- add the pos ents
|
||||
local pos1 = arena.area_to_clear_after_game_pos_1
|
||||
local pos2 = arena.area_to_clear_after_game_pos_2
|
||||
if type(pos1.y) == "number" and
|
||||
type(pos1.x) == "number" and
|
||||
type(pos1.z) == "number" and
|
||||
type(pos2.y) == "number" and
|
||||
type(pos2.x) == "number" and
|
||||
type(pos2.z) == "number" then
|
||||
|
||||
|
||||
|
||||
local staticdata = minetest.write_json({
|
||||
_arena = arena.name,
|
||||
_pos = 1,
|
||||
})
|
||||
|
||||
minetest.add_entity(pos1, "wormball:pos_ent", staticdata)
|
||||
|
||||
local staticdata = minetest.write_json({
|
||||
_arena = arena.name,
|
||||
_pos = 2,
|
||||
})
|
||||
|
||||
local obj = minetest.add_entity(pos2, "wormball:pos_ent", staticdata)
|
||||
end
|
||||
|
||||
|
||||
local tbl = {"wormball:pos1","wormball:pos2","arena_lib:settings_rename_author","arena_lib:settings_properties","arena_lib:settings_delete",}
|
||||
return tbl
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
minetest.register_entity("wormball:pos_ent",{
|
||||
initial_properties = {
|
||||
physical = false,
|
||||
use_texture_alpha = true,
|
||||
collisionbox = {-0.01, -0.01, -0.01, 0.01, 0.01, 0.01},
|
||||
visual = "cube",
|
||||
textures = {"blank.png","blank.png","blank.png","blank.png","blank.png","blank.png"},
|
||||
visual_size = {x = 1.3, y = 1.3, z = 1.3},
|
||||
static_save = false,
|
||||
},
|
||||
on_activate = function(self, staticdata, dtime_s)
|
||||
if staticdata ~= "" and staticdata ~= nil then
|
||||
local data = minetest.parse_json(staticdata) or {}
|
||||
if data._arena then self._arena = data._arena end
|
||||
if data._pos then self._pos = data._pos end
|
||||
end
|
||||
end,
|
||||
on_step = function(self, dtime, moveresult)
|
||||
|
||||
self._timer = self._timer + dtime
|
||||
|
||||
if self._timer > .1 then
|
||||
|
||||
if self._arena == "" then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
|
||||
if not arena_lib.get_arena_by_name('wormball', self._arena ) then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
|
||||
local arena_id, arena = arena_lib.get_arena_by_name('wormball', self._arena )
|
||||
|
||||
if arena.enabled == true then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
|
||||
if self._pos == 1 then
|
||||
self.object:set_properties({textures = {"wormball_loc1.png","wormball_loc1.png","wormball_loc1.png","wormball_loc1.png","wormball_loc1.png","wormball_loc1.png",}})
|
||||
local objpos = vector.floor(self.object:get_pos())
|
||||
local arpos = arena.area_to_clear_after_game_pos_1
|
||||
if not(objpos.x == arpos.x and objpos.y == arpos.y and objpos.z == arpos.z) then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
end
|
||||
if self._pos == 2 then
|
||||
self.object:set_properties({textures = {"wormball_loc2.png","wormball_loc2.png","wormball_loc2.png","wormball_loc2.png","wormball_loc2.png","wormball_loc2.png",}})
|
||||
local objpos = vector.floor(self.object:get_pos())
|
||||
local arpos = arena.area_to_clear_after_game_pos_2
|
||||
if not(objpos.x == arpos.x and objpos.y == arpos.y and objpos.z == arpos.z) then
|
||||
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end,
|
||||
|
||||
_arena = "",
|
||||
_pos = 0,
|
||||
_timer = 0.0,
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
minetest.register_tool("wormball:pos1",{
|
||||
|
||||
description = "Area to Clear Pos 1",
|
||||
|
@ -24,11 +132,20 @@ minetest.register_tool("wormball:pos1",{
|
|||
|
||||
local mod = user:get_meta():get_string("arena_lib_editor.mod")
|
||||
local arena_name = user:get_meta():get_string("arena_lib_editor.arena")
|
||||
local pos = vector.floor(user:get_pos())
|
||||
local pos = vector.round(user:get_pos())
|
||||
local pos_string = '{ x = '..pos.x .. ", y = " .. pos.y .. ", z = " .. pos.z .. "}"
|
||||
|
||||
arena_lib.change_arena_property(user:get_player_name(), 'wormball', arena_name, "area_to_clear_after_game_pos_1", pos_string , true)
|
||||
minetest.chat_send_player(user:get_player_name(), "Pos_1 has been set to :"..dump(pos))
|
||||
|
||||
|
||||
local staticdata = minetest.write_json({
|
||||
_arena = arena_name,
|
||||
_pos = 1,
|
||||
})
|
||||
|
||||
minetest.add_entity(pos, "wormball:pos_ent", staticdata)
|
||||
|
||||
end
|
||||
})
|
||||
|
||||
|
@ -46,9 +163,17 @@ minetest.register_tool("wormball:pos2",{
|
|||
|
||||
local mod = user:get_meta():get_string("arena_lib_editor.mod")
|
||||
local arena_name = user:get_meta():get_string("arena_lib_editor.arena")
|
||||
local pos = vector.floor(user:get_pos())
|
||||
local pos = vector.round(user:get_pos())
|
||||
local pos_string = '{ x = '..pos.x .. ", y = " .. pos.y .. ", z = " .. pos.z .. "}"
|
||||
arena_lib.change_arena_property(user:get_player_name(), 'wormball', arena_name, "area_to_clear_after_game_pos_2", pos_string , true) minetest.chat_send_player(user:get_player_name(), "Pos_2 has been set to :"..dump(pos))
|
||||
minetest.chat_send_player(user:get_player_name(), "Pos_2 has been set to :"..dump(pos))
|
||||
local staticdata = minetest.write_json({
|
||||
_arena = arena_name,
|
||||
_pos = 2,
|
||||
})
|
||||
|
||||
minetest.add_entity(pos, "wormball:pos_ent", staticdata)
|
||||
end
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 672 B |
Binary file not shown.
After Width: | Height: | Size: 680 B |
Loading…
Reference in New Issue