From 6456aba73f0ef3f2fa7fd2b2a69cfdf8624afe23 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Sun, 24 May 2020 15:46:26 +0200 Subject: Replacement for Minimal Development Test (PR) (#9450) --- games/minimal/mods/testentities/armor.lua | 41 +++++++++++ games/minimal/mods/testentities/callbacks.lua | 75 +++++++++++++++++++++ games/minimal/mods/testentities/init.lua | 3 + games/minimal/mods/testentities/mod.conf | 2 + .../textures/testentities_armorball.png | Bin 0 -> 561 bytes .../textures/testentities_callback.png | Bin 0 -> 156 bytes .../textures/testentities_callback_step.png | Bin 0 -> 166 bytes .../testentities/textures/testentities_cube1.png | Bin 0 -> 130 bytes .../testentities/textures/testentities_cube2.png | Bin 0 -> 128 bytes .../testentities/textures/testentities_cube3.png | Bin 0 -> 124 bytes .../testentities/textures/testentities_cube4.png | Bin 0 -> 126 bytes .../testentities/textures/testentities_cube5.png | Bin 0 -> 126 bytes .../testentities/textures/testentities_cube6.png | Bin 0 -> 126 bytes .../textures/testentities_dungeon_master.png | Bin 0 -> 2855 bytes .../testentities/textures/testentities_sprite.png | Bin 0 -> 120 bytes .../textures/testentities_upright_sprite1.png | Bin 0 -> 114 bytes .../textures/testentities_upright_sprite2.png | Bin 0 -> 119 bytes games/minimal/mods/testentities/visuals.lua | 74 ++++++++++++++++++++ 18 files changed, 195 insertions(+) create mode 100644 games/minimal/mods/testentities/armor.lua create mode 100644 games/minimal/mods/testentities/callbacks.lua create mode 100644 games/minimal/mods/testentities/init.lua create mode 100644 games/minimal/mods/testentities/mod.conf create mode 100644 games/minimal/mods/testentities/textures/testentities_armorball.png create mode 100644 games/minimal/mods/testentities/textures/testentities_callback.png create mode 100644 games/minimal/mods/testentities/textures/testentities_callback_step.png create mode 100644 games/minimal/mods/testentities/textures/testentities_cube1.png create mode 100644 games/minimal/mods/testentities/textures/testentities_cube2.png create mode 100644 games/minimal/mods/testentities/textures/testentities_cube3.png create mode 100644 games/minimal/mods/testentities/textures/testentities_cube4.png create mode 100644 games/minimal/mods/testentities/textures/testentities_cube5.png create mode 100644 games/minimal/mods/testentities/textures/testentities_cube6.png create mode 100644 games/minimal/mods/testentities/textures/testentities_dungeon_master.png create mode 100644 games/minimal/mods/testentities/textures/testentities_sprite.png create mode 100644 games/minimal/mods/testentities/textures/testentities_upright_sprite1.png create mode 100644 games/minimal/mods/testentities/textures/testentities_upright_sprite2.png create mode 100644 games/minimal/mods/testentities/visuals.lua (limited to 'games/minimal/mods/testentities') diff --git a/games/minimal/mods/testentities/armor.lua b/games/minimal/mods/testentities/armor.lua new file mode 100644 index 000000000..4c30cec8d --- /dev/null +++ b/games/minimal/mods/testentities/armor.lua @@ -0,0 +1,41 @@ +-- Armorball: Test entity for testing armor groups +-- Rightclick to change armor group + +local phasearmor = { + [0]={icy=100}, + [1]={firy=100}, + [2]={fleshy=100}, + [3]={immortal=1}, + [4]={punch_operable=1}, +} + +minetest.register_entity("testentities:armorball", { + initial_properties = { + hp_max = 20, + physical = false, + collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4}, + visual = "sprite", + visual_size = {x=1, y=1}, + textures = {"testentities_armorball.png"}, + spritediv = {x=1, y=5}, + initial_sprite_basepos = {x=0, y=0}, + }, + + _phase = 2, + + on_activate = function(self, staticdata) + minetest.log("action", "[testentities] armorball.on_activate") + self.object:set_armor_groups(phasearmor[self._phase]) + self.object:set_sprite({x=0, y=self._phase}) + end, + + on_rightclick = function(self, clicker) + -- Change armor group and sprite + self._phase = self._phase + 1 + if self._phase >= 5 then + self._phase = 0 + end + self.object:set_sprite({x=0, y=self._phase}) + self.object:set_armor_groups(phasearmor[self._phase]) + end, +}) diff --git a/games/minimal/mods/testentities/callbacks.lua b/games/minimal/mods/testentities/callbacks.lua new file mode 100644 index 000000000..711079f87 --- /dev/null +++ b/games/minimal/mods/testentities/callbacks.lua @@ -0,0 +1,75 @@ +-- Entities that test their callbacks + +local message = function(msg) + minetest.log("action", msg) + minetest.chat_send_all(msg) +end + +local get_object_name = function(obj) + local name = "" + if obj then + if obj:is_player() then + name = obj:get_player_name() + else + name = "" + end + end + return name +end + +local spos = function(self) + return minetest.pos_to_string(vector.round(self.object:get_pos())) +end + +-- Callback test entity (all callbacks except on_step) +minetest.register_entity("testentities:callback", { + initial_properties = { + visual = "upright_sprite", + textures = { "testentities_callback.png" }, + }, + + on_activate = function(self, staticdata, dtime_s) + message("Callback entity: on_activate! pos="..spos(self).."; dtime_s="..dtime_s) + end, + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir, damage) + local name = get_object_name(puncher) + message( + "Callback entity: on_punch! ".. + "pos="..spos(self).."; puncher="..name.."; ".. + "time_from_last_punch="..time_from_last_punch.."; ".. + "tool_capabilities="..tostring(dump(tool_capabilities)).."; ".. + "dir="..tostring(dump(dir)).."; damage="..damage) + end, + on_rightclick = function(self, clicker) + local name = get_object_name(clicker) + message("Callback entity: on_rightclick! pos="..spos(self).."; clicker="..name) + end, + on_death = function(self, killer) + local name = get_object_name(killer) + message("Callback entity: on_death! pos="..spos(self).."; killer="..name) + end, + on_attach_child = function(self, child) + local name = get_object_name(child) + message("Callback entity: on_attach_child! pos="..spos(self).."; child="..name) + end, + on_detach_child = function(self, child) + local name = get_object_name(child) + message("Callback entity: on_detach_child! pos="..spos(self).."; child="..name) + end, + on_detach = function(self, parent) + local name = get_object_name(parent) + message("Callback entity: on_detach! pos="..spos(self).."; parent="..name) + end, + get_staticdata = function(self) + message("Callback entity: get_staticdata! pos="..spos(self)) + end, +}) + +-- Only test on_step callback +minetest.register_entity("testentities:callback_step", { + visual = "upright_sprite", + textures = { "testentities_callback_step.png" }, + on_step = function(self, dtime) + message("on_step callback entity: on_step! pos="..spos(self).."; dtime="..dtime) + end, +}) diff --git a/games/minimal/mods/testentities/init.lua b/games/minimal/mods/testentities/init.lua new file mode 100644 index 000000000..df8c72ea7 --- /dev/null +++ b/games/minimal/mods/testentities/init.lua @@ -0,0 +1,3 @@ +dofile(minetest.get_modpath("testentities").."/visuals.lua") +dofile(minetest.get_modpath("testentities").."/armor.lua") +dofile(minetest.get_modpath("testentities").."/callbacks.lua") diff --git a/games/minimal/mods/testentities/mod.conf b/games/minimal/mods/testentities/mod.conf new file mode 100644 index 000000000..7a8cb5a3e --- /dev/null +++ b/games/minimal/mods/testentities/mod.conf @@ -0,0 +1,2 @@ +name = testentities +description = Example entities for testing diff --git a/games/minimal/mods/testentities/textures/testentities_armorball.png b/games/minimal/mods/testentities/textures/testentities_armorball.png new file mode 100644 index 000000000..88147bd1f Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_armorball.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_callback.png b/games/minimal/mods/testentities/textures/testentities_callback.png new file mode 100644 index 000000000..c4c9066d1 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_callback.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_callback_step.png b/games/minimal/mods/testentities/textures/testentities_callback_step.png new file mode 100644 index 000000000..b67506a97 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_callback_step.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_cube1.png b/games/minimal/mods/testentities/textures/testentities_cube1.png new file mode 100644 index 000000000..c667e425f Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_cube1.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_cube2.png b/games/minimal/mods/testentities/textures/testentities_cube2.png new file mode 100644 index 000000000..481823420 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_cube2.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_cube3.png b/games/minimal/mods/testentities/textures/testentities_cube3.png new file mode 100644 index 000000000..03b5daa15 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_cube3.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_cube4.png b/games/minimal/mods/testentities/textures/testentities_cube4.png new file mode 100644 index 000000000..639204896 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_cube4.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_cube5.png b/games/minimal/mods/testentities/textures/testentities_cube5.png new file mode 100644 index 000000000..d8acdf0b6 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_cube5.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_cube6.png b/games/minimal/mods/testentities/textures/testentities_cube6.png new file mode 100644 index 000000000..5f81a64d9 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_cube6.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_dungeon_master.png b/games/minimal/mods/testentities/textures/testentities_dungeon_master.png new file mode 100644 index 000000000..1e3107746 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_dungeon_master.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_sprite.png b/games/minimal/mods/testentities/textures/testentities_sprite.png new file mode 100644 index 000000000..a4b019699 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_sprite.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_upright_sprite1.png b/games/minimal/mods/testentities/textures/testentities_upright_sprite1.png new file mode 100644 index 000000000..6242511df Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_upright_sprite1.png differ diff --git a/games/minimal/mods/testentities/textures/testentities_upright_sprite2.png b/games/minimal/mods/testentities/textures/testentities_upright_sprite2.png new file mode 100644 index 000000000..a79a760e3 Binary files /dev/null and b/games/minimal/mods/testentities/textures/testentities_upright_sprite2.png differ diff --git a/games/minimal/mods/testentities/visuals.lua b/games/minimal/mods/testentities/visuals.lua new file mode 100644 index 000000000..de346fd68 --- /dev/null +++ b/games/minimal/mods/testentities/visuals.lua @@ -0,0 +1,74 @@ +-- Minimal test entities to test visuals + +minetest.register_entity("testentities:sprite", { + initial_properties = { + visual = "sprite", + textures = { "testentities_sprite.png" }, + }, +}) + +minetest.register_entity("testentities:upright_sprite", { + initial_properties = { + visual = "upright_sprite", + textures = { + "testentities_upright_sprite1.png", + "testentities_upright_sprite2.png", + }, + }, +}) + +minetest.register_entity("testentities:cube", { + initial_properties = { + visual = "cube", + textures = { + "testentities_cube1.png", + "testentities_cube2.png", + "testentities_cube3.png", + "testentities_cube4.png", + "testentities_cube5.png", + "testentities_cube6.png", + }, + }, +}) + +minetest.register_entity("testentities:item", { + initial_properties = { + visual = "item", + wield_item = "testnodes:normal", + }, +}) + +minetest.register_entity("testentities:wielditem", { + initial_properties = { + visual = "wielditem", + wield_item = "testnodes:normal", + }, +}) + +minetest.register_entity("testentities:mesh", { + initial_properties = { + visual = "mesh", + mesh = "testnodes_pyramid.obj", + textures = { + "testnodes_mesh_stripes2.png" + }, + }, +}) + +-- Advanced visual tests + +-- A test entity for testing animated and yaw-modulated sprites +minetest.register_entity("testentities:yawsprite", { + initial_properties = { + selectionbox = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}, + visual = "sprite", + visual_size = {x=0.6666, y=1}, + textures = {"testentities_dungeon_master.png^[makealpha:128,0,0^[makealpha:128,128,0"}, + spritediv = {x=6, y=5}, + initial_sprite_basepos = {x=0, y=0}, + on_activate = function(self, staticdata) + self.object:set_sprite({x=0, y=0}, 1, 0, true) + end, + }, +}) + -- cgit v1.2.3