starlit  Diff

Differences From Artifact [033036f747]:

To Artifact [43f9137bd9]:


     1      1   local T = starlit.translator
     2      2   local lib = starlit.mod.lib
     3      3   
     4      4   starlit.terrain = {}
     5      5   local soilSounds = {
     6      6   	footstep = 'default-dirt-footstep';
     7         -	dig = 'default-dig-crumbly';
     8      7   	dug = 'default-dug-node';
     9      8   }
    10      9   local sandSounds = {
    11     10   	footstep = {name='default-sand-footstep',gain=0.1};
    12         -	dig = 'default-dig-crumbly';
    13     11   	dug = 'default-dug-node';
    14     12   }
    15     13   local grassSounds = {
    16     14   	footstep = 'default-grass-footstep';
    17         -	dig = 'default-dig-crumbly';
           15  +	dug = 'default-dug-node';
           16  +}
           17  +local hardSounds = {
           18  +	footstep = 'default-hard-footstep';
    18     19   	dug = 'default-dug-node';
    19     20   }
    20     21   
           22  +local soilDrop = {
           23  +	max_items = 3;
           24  +	items = {
           25  +		{rarity = 2, items = {'starlit:soil_clump'}};
           26  +		{rarity = 3, items = {'starlit:soil_clump'}};
           27  +		{rarity = 4, items = {'starlit:soil_clump'}};
           28  +	};
           29  +}
    21     30   minetest.register_node('starlit:soil', {
    22     31   	description = T 'Soil';
    23         -	tiles = {'default_dirt.png'};
    24         -	groups = {dirt = 1};
    25         -	drop = '';
           32  +	tiles = {'starlit-terrain-soil.png'};
           33  +	groups = {looseClump = 2, soil = 1};
           34  +	drop = soilDrop;
    26     35   	sounds = soilSounds;
    27     36   	_starlit = {
    28     37   		kind = 'block';
    29     38   		elements = {};
    30     39   	};
    31     40   })
    32     41   
    33     42   
    34     43   minetest.register_node('starlit:sand', {
    35     44   	description = T 'Sand';
    36         -	tiles = {'default_sand.png'};
    37         -	groups = {dirt = 1};
           45  +	tiles = {'starlit-terrain-sand.png'};
           46  +	groups = {looseClump = 1, sand  = 1};
    38     47   	drop = '';
    39     48   	sounds = sandSounds;
    40     49   	_starlit = {
    41     50   		kind = 'block';
    42     51   		fab = starlit.type.fab { element = { silicon = 25 } };
    43     52   	};
    44     53   })
................................................................................
    46     55   	short_description = T 'Soil';
    47     56   	description = starlit.ui.tooltip {
    48     57   		title = T 'Soil';
    49     58   		desc = 'A handful of nutrient-packed soil, suitable for growing plants';
    50     59   		color = lib.color(0.3,0.2,0.1);
    51     60   	};
    52     61   	inventory_image = 'starlit-item-soil.png';
    53         -	groups = {soil = 1};
           62  +	groups = {looseClump = 2, soil = 1};
           63  +	on_place = function(me, luser, point)
           64  +		if me:get_count() < 3 then return end
           65  +		if minetest.place_node(point.above, {name = 'starlit:soil'}, luser) then
           66  +			me:take_item(3)
           67  +		end
           68  +		return me
           69  +	end;
    54     70   	_starlit = {
    55     71   		fab = starlit.type.fab { element = { carbon = 12 / 4 } };
    56     72   	};
    57     73   })
    58     74   
    59     75   function starlit.terrain.createGrass(def)
    60     76   	local drop = {
................................................................................
    66     82   			};
    67     83   		};
    68     84   	}
    69     85   	minetest.register_node(def.name, {
    70     86   		description = T 'Greengraze';
    71     87   		tiles = {
    72     88   			def.img .. '.png';
    73         -			'default_dirt.png';
           89  +			'starlit-terrain-soil.png';
    74     90   			{
    75         -				name = 'default_dirt.png^' .. def.img ..'_side.png';
           91  +				name = 'starlit-terrain-soil.png^' .. def.img ..'-overlay.png';
    76     92   				tileable_vertical = false;
    77     93   			};
    78     94   		};
    79         -		groups = {grass = 1, dirt = 1, sub_walk = 1};
    80         -		drop = '';
           95  +		groups = {looseClump = 2, grass = 1, soil = 1, sub_walk = 1};
           96  +		drop = soilDrop;
    81     97   		sounds = grassSounds;
    82     98   		_starlit = {
    83     99   			fab = def.fab;
    84    100   			recover = def.recover;
    85    101   			recover_vary = def.recover_vary;
    86    102   		};
    87    103   	})
    88    104   end
    89    105   
    90    106   
    91    107   starlit.terrain.createGrass {
    92    108   	name = 'starlit:greengraze';
    93    109   	desc = T 'Greengraze';
    94         -	img = 'default_grass';
          110  +	img = 'starlit-terrain-greengraze';
    95    111   	fab = starlit.type.fab {
    96    112   		element = {
    97    113   			carbon = 12;
    98    114   		};
    99    115   		time = {
   100    116   			shred = 2.5;
   101    117   		};
................................................................................
   156    172   		tiles = m.tiles or 
   157    173   				(m.tone and {
   158    174   					string.format('default_stone.png^[colorizehsl:%s:%s:%s',
   159    175   						m.tone.hue, m.tone.sat, m.tone.lum)
   160    176   				}) or {'default_stone.png'};
   161    177   		groups = grp;
   162    178   		drop = m.rocks or '';
          179  +		sounds = hardSounds;
   163    180   		_starlit = {
   164    181   			kind = 'block';
   165    182   			elements = m.elements;
   166    183   			fab = m.fab;
   167    184   			recover = m.recover;
   168    185   			recover_vary = m.recover_vary;
   169    186   		};