12345678910111213141516171819202122232425262728293031 |
- local drive_speed = 20
- local drive_distance = 30
- core.register_entity("soundstuff:racecar", {
- initial_properties = {
- physical = false,
- collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
- visual = "upright_sprite",
- visual_size = {x = 1, y = 1, z = 1},
- textures = {"soundstuff_racecar.png", "soundstuff_racecar.png^[transformFX"},
- static_save = false,
- },
- on_activate = function(self, _staticdata, _dtime_s)
- self.min_x = self.object:get_pos().x - drive_distance * 0.5
- self.max_x = self.min_x + drive_distance
- self.vel = vector.new(drive_speed, 0, 0)
- end,
- on_step = function(self, _dtime, _moveresult)
- local pos = self.object:get_pos()
- if pos.x < self.min_x then
- self.vel = vector.new(drive_speed, 0, 0)
- elseif pos.x > self.max_x then
- self.vel = vector.new(-drive_speed, 0, 0)
- end
- self.object:set_velocity(self.vel)
- end,
- })
|