improve the editor

master
MisterE123 2021-12-31 00:01:06 -05:00
parent e437d25e30
commit 2bedfb03dd
3 changed files with 129 additions and 4 deletions

View File

@ -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
})
})

BIN
textures/wormball_loc1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

BIN
textures/wormball_loc2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B