aboutsummaryrefslogtreecommitdiff
path: root/src/mapnode.cpp
Commit message (Collapse)AuthorAge
* Increase performance of getLight() by at least 2xCraig Robbins2014-12-10
| | | | | | | Leads to the following increases: getSmoothLight() approx. 40% increase getTileInfo() approx. 25% increase MapBlockMesh::MapBlockMesh() 25-30%
* Optimise getTileInfo()Craig Robbins2014-11-21
| | | | | getTileInfo() ~1.5x faster getSmoothLight ~2.0x faster
* Custom collision boxes node property.RealBadAngel2014-10-19
|
* Cavegen: Respect is_ground_content MapNode setting; fix some code formatting ↵kwolekr2013-11-29
| | | | issues
* Better snow fall, finite liquid transform, leveled nodes apiproller2013-07-28
|
* Weather supportproller2013-07-27
|
* Leveled nodeboxproller2013-07-13
|
* Fix wallmounted rotations along Y axis for 90 and 270 degree caseskwolekr2013-07-08
|
* Decoration: Handle facedir and wallmounted param2types with schematic rotationkwolekr2013-07-08
|
* 6d facedirRealBadAngel2013-03-23
|
* Update Copyright YearsSfan52013-02-24
|
* Change Minetest-c55 to MinetestPilzAdam2013-02-24
|
* darkrose should work at a nuclear power plant.Perttu Ahola2012-07-24
| | | | It'd take years to figure out what caused the accident.
* Fix map deserialization and remove old serialization codePerttu Ahola2012-07-23
|
* Increase node id/param0 to 16 bits, leaving param2 always with 8 bitsdarkrose2012-07-23
|
* Custom boxy nodes (stairs, slabs) and collision changesKahrl2012-06-17
|
* Optimize headersPerttu Ahola2012-06-17
|
* Properly and efficiently use split utility headersPerttu Ahola2012-06-17
|
* Switch the license to be LGPLv2/later, with small parts still remaining as ↵Perttu Ahola2012-06-05
| | | | GPLv2/later, by agreement of major contributors
* MapBlockMesh, mesh animation system, urgent mesh updates, athmospheric ↵Kahrl2012-03-15
| | | | light, removed footprints
* Cleanup (some stuff went wrong when reverting 4-byte mapnodes); fix ↵Kahrl2012-01-22
| | | | legacy_wallmounted
* Node placement / mineral / serialization / iron freq / node_dig callbackKahrl2012-01-22
| | | | | | | | - Node placement code moved to Lua - Mineral system removed (added default:stone_with_coal and default:stone_with_iron). - MapBlock and MapNode serialization updated. - Mapgen: Frequency of iron increased. - node_dig callback and related changes.
* MapNode constructor to allow ndef+namePerttu Ahola2011-11-29
|
* Node definition namesPerttu Ahola2011-11-29
|
* Clean mapnode.h and fix other files accordinglyPerttu Ahola2011-11-29
|
* Completely generalized mesh generation; ContentFeatures serializationPerttu Ahola2011-11-29
|
* GameDef compilesPerttu Ahola2011-11-29
|
* Create framework for getting rid of global definitions of ↵Perttu Ahola2011-11-29
| | | | node/tool/item/whatever types
* Move ContentFeatures to mapnode_contentfeatures.{h,cpp} and clean stuffPerttu Ahola2011-11-29
|
* Fix water-glass and water-lava surfacesPerttu Ahola2011-11-08
|
* Make CONTENT_IGNORE to not block the view when occlusion cullingPerttu Ahola2011-11-03
|
* Automate texture listing for texture atlas makingPerttu Ahola2011-10-18
|
* Header file tweaking; mainly for speedPerttu Ahola2011-10-12
|
* lava!Perttu Ahola2011-08-15
|
* Added MaterialItem conversion from old content type namespace to newPerttu Ahola2011-07-31
|
* extended content-type rangePerttu Ahola2011-07-23
|
* Fixed the problem of <=r548 clients fucking up maps on >=r549 servers. Also, ↵Perttu Ahola2011-07-22
| | | | already fucked up maps are now loaded correctly.
* Fixed small error in mapnode.cpp (didn't cause any harm though)Perttu Ahola2011-07-22
|
* initial steps in doing content type extensionPerttu Ahola2011-07-02
|
* fixed bug in inventory textures caused from better handling of unknown blocksPerttu Ahola2011-06-27
|
* better handling of unknown blocks on clientPerttu Ahola2011-06-27
|
* Moved stuff from mapblock{h,cpp} to mapblock_mesh.{h,cpp} and ↵Perttu Ahola2011-06-17
| | | | content_mapblock.{h,cpp}
* Moved some mapnode content stuff from mapnode.{h,cpp} and digging property ↵Perttu Ahola2011-06-17
| | | | stuff from material.cpp to content_mapnode.{h,cpp}
* A very poor (but better than nothing) inventory icon for fencesCiaran Gultnieks2011-05-24
|
* Merged CiaranG's fence and fixed two thingsPerttu Ahola2011-05-24
|\
| * Added fences (but still needs an icon or something to display in inventory)Ciaran Gultnieks2011-05-24
| |
* | Some work-in-progress stuff and many comment updatesPerttu Ahola2011-05-22
|/
* fixed a small memory leak in mapnode.cppPerttu Ahola2011-05-21
|
* Added glass, with rendering and furnace support.Ciaran Gultnieks2011-05-09
|
* added cobblestone to the texture atlasPerttu Ahola2011-04-29
|
chments() {} virtual void clearParentAttachment() {} virtual void addAttachmentChild(int child_id) {} virtual void removeAttachmentChild(int child_id) {} virtual const std::unordered_set<int> &getAttachmentChildIds() { static std::unordered_set<int> rv; return rv; } virtual ServerActiveObject *getParent() const { return nullptr; } virtual ObjectProperties* accessObjectProperties() { return NULL; } virtual void notifyObjectPropertiesModified() {} // Inventory and wielded item virtual Inventory* getInventory() { return NULL; } virtual const Inventory* getInventory() const { return NULL; } virtual InventoryLocation getInventoryLocation() const { return InventoryLocation(); } virtual void setInventoryModified() {} virtual std::string getWieldList() const { return ""; } virtual int getWieldIndex() const { return 0; } virtual ItemStack getWieldedItem() const; virtual bool setWieldedItem(const ItemStack &item); inline void attachParticleSpawner(u32 id) { m_attached_particle_spawners.insert(id); } inline void detachParticleSpawner(u32 id) { m_attached_particle_spawners.erase(id); } /* Number of players which know about this object. Object won't be deleted until this is 0 to keep the id preserved for the right object. */ u16 m_known_by_count = 0; /* - Whether this object is to be removed when nobody knows about it anymore. - Removal is delayed to preserve the id for the time during which it could be confused to some other object by some client. - This is usually set to true by the step() method when the object wants to be deleted but can be set by anything else too. */ bool m_pending_removal = false; /* Same purpose as m_pending_removal but for deactivation. deactvation = save static data in block, remove active object If this is set alongside with m_pending_removal, removal takes priority. */ bool m_pending_deactivation = false; /* A getter that unifies the above to answer the question: "Can the environment still interact with this object?" */ inline bool isGone() const { return m_pending_removal || m_pending_deactivation; } /* Whether the object's static data has been stored to a block */ bool m_static_exists = false; /* The block from which the object was loaded from, and in which a copy of the static data resides. */ v3s16 m_static_block = v3s16(1337,1337,1337); /* Queue of messages to be sent to the client */ std::queue<ActiveObjectMessage> m_messages_out; protected: virtual void onAttach(int parent_id) {} virtual void onDetach(int parent_id) {} // Used for creating objects based on type typedef ServerActiveObject* (*Factory) (ServerEnvironment *env, v3f pos, const std::string &data); static void registerType(u16 type, Factory f); ServerEnvironment *m_env; v3f m_base_position; std::unordered_set<u32> m_attached_particle_spawners; private: // Used for creating objects based on type static std::map<u16, Factory> m_types; };