Go to file
Jacob Gustafson eb7b9d7916 placed hoes in birthstones namespace 2017-02-14 14:07:04 -05:00
etc changed texture to make more seemless 2017-02-13 22:03:16 -05:00
textures changed texture to make more seemless 2017-02-13 22:03:16 -05:00
.gitattributes Birthstones mod for Minetest 2012-11-20 20:01:57 -07:00
.gitignore testing prerendered block images 2017-02-12 23:20:17 -05:00
LICENSE.txt added farming hoes and clarified wording 2017-02-12 12:24:05 -05:00
README.md experimental pre-rendered texture for topaz block 2017-02-13 16:01:03 -05:00
aliases.lua initial changes in expertmm fork 2017-02-12 00:02:53 -05:00
crafting.lua added farming hoes and clarified wording 2017-02-12 12:24:05 -05:00
craftitems.lua combined tool creation functions, fixed zircon texture path 2017-02-12 01:12:10 -05:00
depends.txt added farming hoes and clarified wording 2017-02-12 12:24:05 -05:00
init.lua initial changes in expertmm fork 2017-02-12 00:02:53 -05:00
nodes.lua experimental pre-rendered texture for topaz block 2017-02-13 16:01:03 -05:00
oregen.lua initial changes in expertmm fork 2017-02-12 00:02:53 -05:00
tools.lua placed hoes in birthstones namespace 2017-02-14 14:07:04 -05:00
update in C games Minetest games ENLIVEN.bat changed texture to make more seemless 2017-02-13 22:03:16 -05:00

README.md

Minetest Game mod: birthstones

(Based on birthstones Minetest mod by Doc22; textures based on CC-BY-SA work by various authors-- see LICENSE for full credits)

Primary differences from original

Main reasons for fork:

  • add more tools
  • make changes to code to make use of modern Minetest (such as ore drop string)

Notable issues found in original (see items marked with '!' in "Changes" section for others):

(hopefully these changes get corrected there)

  • birthstones were wrong month (see "birthstones list.csv" in etc folder for corrections, though month names are removed in fork)
  • now stone_with_opal is generated now (was impossible to get by mining before, apparently)
  • crafting block back to 9 gemstones is now possible
  • found some code bugs (see exclamation points under "Changes" below)

Other major differences from original

Some major changes were done to make the mod easier to maintain:

  • changed to minetest_game's naming scheme for filenames and node/tool names (aliases added for backward compatibility)
  • componentized into separate lua files for each category of operations

Changes:

'!' is for bugs in 2012 version that are fixed (as opposed to features that were changed/added) in this fork

  • (2017-02-13) Made multi-sided Topaz Block (WIP)
  • (2017-02-13) Made Blender project for gem rendering (see Developer Notes below for usage)
  • (2017-02-12) Add farming hoes
  • (2017-02-11) Add recipe to create default:diamond from dye:blue + birthstones:diamond for playability (for when other mods like technic need diamonds for things)
  • (2017-02-11) Add crafting recipe to convert block back into 9 gems
  • (2017-02-11) Add Swords & Shovels
  • (2017-02-11) Componentize into separate lua files for each category of operations
  • !(2017-02-11) Make opal possible to get: added missing register_on_generated for changing some stone to opal (see oregen.lua)
  • !(2017-02-11) Change drop for stone_with_topaz from stone_with_topaz to topaz (apparently this didn't cause an issue since craft method had been used)
  • !(2017-02-11) Change drop of ores (to match modern style from default in minetest_game from minetest 0.4.15-git 2017-01), where * below is name:
	-- drop = 'craft "birthstones:*" 1',
	drop = "birthstones:*",
  • !(2017-02-11) Block needs better pick to be mined: Changed groups:
	-- groups = {cracky = 3}
	groups = {cracky = 1, level = 3}
  • !(2017-02-11) Ore needs better pick to be mined: changed groups.cracky of all from 3 to 1
  • (2017-02-11) Changed "* Ore" to "Stone with *" (because why copy other people when you can make sense instead)
  • !(2017-02-11) Preliminary step in fixing one-chop axes: changed register_tool time2 and time3 from: [1]=time1-2.0, [2]=2.0-time2, [3]=2.0-time3} to times={[1]=time1/2.0, [2]=time2/2.0, [3]=time3/2.0}
  • !(2017-02-10) Removed month from display names to avoid breaking immersion (draws too much attention to the items having a "label") if re-added, months would have to be corrected anyway as follows (in the original mod, alphabetical order instead of actual birthstone month determined month): see etc/birthstones list.csv
  • !(2017-02-10) Fixed issue where topaz ore was registered twice (didn't seem to cause problems)
  • !(2017-02-10) Capitalized stone name when used within tool display name
  • (2017-02-10) Naming changed to match minetest texture&variable naming scheme
    (see changes below, where ^* is capitalized mineral name and * is uncapitalized)
	(aliases added only for backward compatibility--see aliases.lua--doing aliases can be commented in init.lua)
	Files:
		^* TO birthstones_* (ITEM)
		^*_overlay TO birthstones_mineral_* (ORE OVERLAY)
		^*_block TO birthstones_*_block
		*_axe to birthstones_tool_*axe
		*_pick to birthstones_tool_*pick
		^*_block to birthstones_*_block
	Variables:
		birthstones:*ore TO birthstones:stone_with_*
		"birthstones:".. name .. "_pick" TO "birthstones:pick_"..name
		"birthstones:".. name .. "_axe" TO "birthstones:axe_"..name
  • (2017-02-10) expertmm fork starting today

Known Issues

  • Improve block textures
  • Make a trm for treasurer (separate mod)
  • Make variables based on real hardness values (but allow all birthstones to break the same types of blocks, for playability):
    • #of uses, dig times, and fleshy damage group value now all based on real-life hardness values (see xlsx spreadsheet for details and sources and extrapolation formulas)
    • Formulas were determined using Excel:
      • Diamond theoretical Brinell explanation: Excel says the curve on 18carat.co.uk, if a power curve, is Brinell = 2.9592*(ans^2.2856) where ans is Moh value
      • Other extrapolated Brinell values (rounded to nearest whole number) explanation: Excel says power function for predicting from density is Brinell = 9.0954*(ans^2.9757) where ans is metric density value
      • Extrapolated Moh values explanation: Excel says power curve from 18carat.co.uk materials is: Moh = 0.6514*(ans^0.4269) where ans is Brinell value (to use Speedcrunch to get values not listed, enter the number without any equation, then paste the formulas above exactly to use that "answer" as a variable--see spreadsheet's "Hardness - Extrapolated" sheet for spreadsheet version of formulas)

Things that will be kept the same:

  • You must manually delete the etc folder (source material) from your mods/birthtones folder to reduce download times of the mod when using a server
  • birthstones:diamond will still be present for now (as opposed to becoming an alias for default:diamond), since the birthstones diamond texture looks cool. The display names for all of the items will say "White Diamond". (planned: recipe to make it into regular diamond)
  • No shields & armor (planned as separate mod: birthstones_3d_armor)
  • No arrows (planned as separate mod: birthstones_throwing)

Future plans

	local glooptest = minetest.get_modpath("glooptest")
	if glooptest then
		register_alias("birthstones:amethyst","glooptest:amethyst_gem")
		register_alias("birthstones:emerald","glooptest:emerald_gem")
		register_alias("birthstones:ruby","glooptest:ruby_gem")
		register_alias("birthstones:sapphire","glooptest:sapphire_gem")
		register_alias("birthstones:topaz","glooptest:topaz_gem")
		-- (and glooptest:*_block for all of those)
	else
		-- create those ores
		-- register those ore nodes
		-- register those block nodes
	end
	-- If neeeded, can also do things like drop = glooptest and "glooptest:topaz_gem" or "birthstones:topaz"

Minerals of note not in birthstones (for reference only) with density values from website above:

MORE but with hardness values available from 18carat.co.uk link above:

  • Name,Density,Moh,Brinell
  • Apatite,3.16-3.23,5,137
  • Calcite,2.69-2.71,3,53

Developer Notes

xcf file has colors used for manual tinting Blender Cycles project has nodes with custom labels with the following values:

  • If you rotate the gems, rotation must be applied, since absorption is manually done along object z axis (see "Blender gem tutorial" link below for why) Name,GemColor,IOR**,Scatter,Gloss,Clarity,Absorption Topaz, E5A55F, 1.62, .5, .5, 1.0, 0.0

Special Thanks

Blender gem tutorial https://www.youtube.com/watch?v=3EN6mAFDqaI by Marijus Jacevičius

Complete IOR List ** http://forums.cgsociety.org/archive/index.php?t-513458.html

Minetest 2017 API notes

(see http://wiki.minetest.net/Groups and 142e2d3b74/doc/lua_api.txt (L736) )

groupcaps (in tool_capabilities dict in register_tool 2nd param dict): a dictionary of groupcap dictionaries such as:

  • choppy: chops wood
  • snappy: leaves and other thin materials -- possible with sword, but wears sword out quickly
  • fleshy: damage mobs/players
  • crumbly: shovels etc
  • cracky: picks etc (and more unrelated to this mod)

register_node:

http://dev.minetest.net/minetest.register_node http://dev.minetest.net/Groups

  • groups.cracky: like other dig types, the value is normally 1 to 3, and 1 requires the best pick to mine.
  • groups.level: prevents being mined by lower level stuff