24 Commits

Author SHA1 Message Date
est31
a1649ec2ab Fix release build warning 2015-05-13 17:01:42 +10:00
est31
bad2dd4ab5 Remove craftdef serialisation
It isn't needed anymore, sending ICraftDefManager over the network has been obsoleted
by protocol version 7.
2015-04-26 21:30:52 +02:00
est31
0769bd28a6 Craftdef refactor
Fix style, refactor assert, use '"' instead of "\"",
replace code duplicating craftGetItemName, rename iterators.
2015-04-26 21:28:40 +02:00
Loic Blot
4b13b7a736 craftdef.cpp: Return 0 after assert to make Clang happy 2015-04-05 11:16:12 +02:00
est31
14ede81c60 Crafting speedup
This greatly increases crafting performance, especially in worlds with many mods.

Approved by @kwolekr.

Introduces a hash-type-layered fall-through mechanism, where every layer specifies one hash algorithm,
and the "deeper the fall", the more collisions to expect for the algorithm. One Craft definition
only resides at one layer, which improves speed for lower layers (and a complete fail), due to most
craft definitions residing at high layers.

Due to the fall-through design, the undocumented behaviour that later craft recipes
override older ones had to be weaked up a bit, but craft recipes with the same hash and layer
will still override.
2015-04-05 09:25:46 +02:00
gregorycu
304a9e8016 Optimize minetest.get_(all)_craft_recipe(s)
Signed off by: ShadowNinja, kwolekr
2015-03-20 21:41:18 -04:00
Loic Blot
9f9f68393b Craftdef.cpp: Improve loop and mathematics for CraftDefinitionShaped::check 2015-02-10 14:16:28 +01:00
sapier
a48ef2c487 Fix getCraftRecipe returing wrong reciep due to way to unspecific output matching 2015-02-02 21:32:23 +01:00
Kahrl
458bf6cc5f Fix aliases not working in shapeless crafting recipes 2013-08-25 18:14:26 +02:00
Kahrl
ee90d438b8 Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu 2013-08-14 21:03:33 +02:00
RealBadAngel
7ccbd37343 Added method to get all registered recipes for item(node) 2013-03-05 23:32:33 -05:00
Sfan5
3fab3825aa Update Copyright Years 2013-02-24 20:15:24 +01:00
PilzAdam
269f01224b Change Minetest-c55 to Minetest 2013-02-24 18:49:03 +01:00
Perttu Ahola
1608d1439a Working group-shapeless and multigroup recipes 2012-07-26 13:49:13 +03:00
darkrose
b556ef87cb Add minetest.get_craft_recipe() 2012-07-21 02:33:22 +03:00
Perttu Ahola
ec937ecdd8 Properly and efficiently use split utility headers 2012-06-17 02:40:36 +03:00
Perttu Ahola
29bef2a8ab Allow groups in crafting recipes 2012-06-06 23:39:17 +03:00
Kahrl
d8c8d223ac Allow replacements in cooking and fuel recipes 2012-06-06 00:22:34 +03:00
Perttu Ahola
e70b6545b1 Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2/later, by agreement of major contributors 2012-06-05 18:54:07 +03:00
Perttu Ahola
f1d9880006 Clean up log messages everywhere 2012-03-11 04:15:45 +02:00
Kahrl
6a76c226e1 The huge item definition and item namespace unification patch (itemdef), see http://c55.me/minetest/wiki/doku.php?id=changes:itemdef 2012-01-12 06:10:39 +01:00
Perttu Ahola
103173fc9b Add InvRef and InvStack (currently untested and unusable) 2012-01-02 01:49:38 +02:00
Perttu Ahola
cebbaf1664 Catch SerializationError in CCraftDefManager::getCraftResult() 2011-11-29 19:13:48 +02:00
Perttu Ahola
9d5b458479 Crafting definition in scripts 2011-11-29 19:13:48 +02:00