aboutsummaryrefslogtreecommitdiff
path: root/games
Commit message (Expand)AuthorAge
...
* Minimal: Remove recently added unnecessary nodesparamat2015-07-14
* Simpler patch for saplings trying to grow on unknown nodesShadowNinja2015-06-16
* Add list-ringsest312015-06-16
* Don't crash when saplings try to grow on unknown nodesy.st2015-06-15
* Minimal: Add snow biome and jungleleaves nodes. Add mapgen aliasesparamat2015-06-12
* Minimal: Edit mapgen aliases. Use blob ore for clay, update other ores. Updat...paramat2015-06-09
* Fix NDT_GLASSLIKE normalsKahrl2015-01-31
* Remove builtin_biome.lua from builtin and add simple biome minimalparamat2015-01-11
* Add lua exception handling test codesapier2014-08-23
* Minimal game: add /dummyball <count> commandKahrl2014-08-23
* Add minetest.swap_nodeNovatux2013-11-30
* Change default value of is_ground_content to truekwolekr2013-11-30
* Fix possible crash with grass ABM.Novatux2013-11-02
* Fix grass adding/removing ABM.Novatux2013-11-02
* Move the sapling growing and grass adding/removing ABMs to LuaNovatux2013-11-02
* Remove mapgen_air alias (#935)0gb.us2013-10-05
* Add mapgen_stair_cobble alias to minimalSfan52013-09-06
* Add support for different drowning damage and allow drowning in other nodetypesBlockMen2013-08-06
* Add drowningPilzAdam2013-06-19
* Compress texturesDavid Gumberg2013-06-18
* Move scriptapi to separate folder (by sapier)sapier2013-05-25
* Use the group "soil" for nodes that saplings grow onShadowNinja2013-05-20
* games/minimal: Add menu/background.png and menu/icon.pngPerttu Ahola2013-05-02
* Add Mapgen V7, reorganize biomeskwolekr2013-04-07
* unkn own block -> unkn own nodekhonkhortisan2013-04-05
* Add different place sound for nodesPilzAdam2013-03-29
* Use minetest.register_ore() in minimalPilzAdam2013-03-24
* Mapgen indev: float islands, larger far biomesproller2013-03-24
* Liquid fine tuningproller2013-03-14
* new adjustable finite liquidproller2013-02-24
* Readded and optimized mapgen V6kwolekr2013-01-21
* Add initial Lua biomedef support, fixed biome selectionkwolekr2013-01-21
* Add the group attached_nodePilzAdam2012-12-01
* Swap out pixel-perfect nyan cat by request of Chris TorresPerttu Ahola2012-11-09
* Add functions to the default mod of minimal game to support old codePilzAdam2012-11-01
* Move falling to builtinPilzAdam2012-10-31
* Fix crash when furnace is full (minimal game)Perttu Ahola2012-08-12
* Deprecate minetest.add_to_creative_inventory and use group not_in_creative_in...Perttu Ahola2012-07-25
* Add notice in the minimal gamePerttu Ahola2012-07-25
* Improve inventory callbacks a bitPerttu Ahola2012-07-25
* Detached inventory callbacks and reworked node metadata callbacksPerttu Ahola2012-07-25
* Detached inventoriesPerttu Ahola2012-07-24
* Add node timer test in minimal/experimentalPerttu Ahola2012-07-24
* Move /give, /giveme, /spawnentity and /pulverize to builtin/chatcommands.luaPerttu Ahola2012-07-23
* Formspec button_exit[] and image_button_exit[]Perttu Ahola2012-07-22
* Add /test1 command to minimal for testing a more complicated player inventory...Perttu Ahola2012-07-22
* Implement formspecdarkrose2012-07-22
* Actually fix facedir-rotated nodes placed using minetest.env:place_node()Perttu Ahola2012-07-21
* Make lava buckets work as fuel in minimal gamedarkrose2012-07-21
* Allow defining player's inventory form in LuaPerttu Ahola2012-07-19
span> m_animation_frame = 0; u8 m_glow; }; class ParticleSpawner { public: ParticleSpawner(IGameDef* gamedef, LocalPlayer *player, const ParticleSpawnerParameters &p, u16 attached_id, video::ITexture *texture, ParticleManager* p_manager); ~ParticleSpawner() = default; void step(float dtime, ClientEnvironment *env); bool get_expired () { return p.amount <= 0 && p.time != 0; } private: void spawnParticle(ClientEnvironment *env, float radius, const core::matrix4 *attached_absolute_pos_rot_matrix); ParticleManager *m_particlemanager; float m_time; IGameDef *m_gamedef; LocalPlayer *m_player; ParticleSpawnerParameters p; video::ITexture *m_texture; std::vector<float> m_spawntimes; u16 m_attached_id; }; /** * Class doing particle as well as their spawners handling */ class ParticleManager { friend class ParticleSpawner; public: ParticleManager(ClientEnvironment* env); ~ParticleManager(); void step (float dtime); void handleParticleEvent(ClientEvent *event, Client *client, LocalPlayer *player); void addDiggingParticles(IGameDef *gamedef, LocalPlayer *player, v3s16 pos, const MapNode &n, const ContentFeatures &f); void addNodeParticle(IGameDef *gamedef, LocalPlayer *player, v3s16 pos, const MapNode &n, const ContentFeatures &f); /** * This function is only used by client particle spawners * * We don't need to check the particle spawner list because client ID will * never overlap (u64) * @return new id */ u64 generateSpawnerId() { return m_next_particle_spawner_id++; } protected: static bool getNodeParticleParams(const MapNode &n, const ContentFeatures &f, ParticleParameters &p, video::ITexture **texture, v2f &texpos, v2f &texsize, video::SColor *color, u8 tilenum = 0); void addParticle(Particle* toadd); private: void addParticleSpawner(u64 id, ParticleSpawner *toadd); void deleteParticleSpawner(u64 id); void stepParticles(float dtime); void stepSpawners(float dtime); void clearAll(); std::vector<Particle*> m_particles; std::unordered_map<u64, ParticleSpawner*> m_particle_spawners; // Start the particle spawner ids generated from here after u32_max. lower values are // for server sent spawners. u64 m_next_particle_spawner_id = U32_MAX + 1; ClientEnvironment* m_env; std::mutex m_particle_list_lock; std::mutex m_spawner_list_lock; };