Luanti basic entity toevoegen
In deze tutorial leer je hoe je een Luanti mod maakt die een basisentiteit registreert en een chatcommand toevoegt om deze te spawnen.
Mod toevoegen
Voeg een nieuwe map toe in de de map mods
van luanti, bijvoorbeeld basic-entity-mod
. Open de map in VsCode en voer het commando Luanti Tools: New Mod Project
uit.
Entity registreren
Voeg de volgende code toe aan init.lua om een entity te registreren:
core.register_entity("basicentity:block", {
initial_properties = {
visual = "cube",
textures = {"entity.png","entity.png", "entity.png", "entity.png", "entity.png", "entity.png"},
visual_size = {x = 1, y = 1, z = 1},
collide_with_objects = true,
physical = true,
},
on_activate = function(self, staticdata, dtime_s)
self.object:set_velocity(vector.new(1, 0, 0))
end
})
De entiteit wordt geregistreerd met core.register_entity. De initial_properties bepalen hoe de entiteit eruitziet en zich gedraagt:
- visual: De visuele vorm van de entiteit (hier een kubus).
- textures: De textures die op de kubus worden toegepast.
- physical: Zorgt ervoor dat de entiteit fysiek is en kan botsen met objecten.
De on_activate functie wordt uitgevoerd wanneer de entiteit wordt gespawnd. Hier wordt de snelheid ingesteld met self.object:set_velocity.
Entity spawnen met een chatcommando
Om de enity in de game te kunnen spawnen kan de volgende code worden gebruikt:
core.register_chatcommand("spawn", {
func = function(name, param)
local player = core.get_player_by_name(name)
local position = player:get_pos()
position = vector.add(position, vector.new(2, 0.5, 0))
core.add_entity(position, "basicentity:block")
end,
})
Met core.register_chatcommand wordt een chatcommand toegevoegd. Wanneer een speler /spawn
typt, wordt de entiteit gespawnd op een positie vlakbij de speler.
Voorbeeldcode: https://github.com/tim-vh/game-dev/tree/main/examples/luanti/mods/basic-enity-mod