| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -47,7 +47,21 @@ local function reg(name, basename, basedef) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        fixed = {-7/16, -8/16, -7/16, 7/16, 0/16, 7/16} | 
					 | 
					 | 
					 | 
					        fixed = {-7/16, -8/16, -7/16, 7/16, 0/16, 7/16} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    minetest.register_node(":" .. piecename, { | 
					 | 
					 | 
					 | 
					    local go_node_base = { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        tiles = {basedef.tiles[1]}, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        sounds = basedef.sounds, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        paramtype = "light", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        groups = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            snappy = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            falling_node = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        go_team = name, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    minetest.register_node(":" .. piecename, nodecore.underride({ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        description = nodedesc_base .. "Go Stone", | 
					 | 
					 | 
					 | 
					        description = nodedesc_base .. "Go Stone", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        drawtype = "mesh", | 
					 | 
					 | 
					 | 
					        drawtype = "mesh", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mesh = "go_stone.obj", | 
					 | 
					 | 
					 | 
					        mesh = "go_stone.obj", | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -55,38 +69,38 @@ local function reg(name, basename, basedef) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        selection_box = stone_selection_box, | 
					 | 
					 | 
					 | 
					        selection_box = stone_selection_box, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        collision_box = stone_selection_box, | 
					 | 
					 | 
					 | 
					        collision_box = stone_selection_box, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        tiles = {basedef.tiles[1]}, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        sounds = basedef.sounds, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mapcolor = basedef.mapcolor, | 
					 | 
					 | 
					 | 
					        mapcolor = basedef.mapcolor, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        paramtype = "light", | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        sunlight_propagates = true, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        groups = { | 
					 | 
					 | 
					 | 
					        groups = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            snappy = 1, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            falling_node = 1, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            falling_repose = 1, | 
					 | 
					 | 
					 | 
					            falling_repose = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            optic_opaque = 1, | 
					 | 
					 | 
					 | 
					            optic_opaque = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            go_stone = 1 | 
					 | 
					 | 
					 | 
					            go_stone = 1 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
					        }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        go_team = name, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        on_construct = lc_liberties.handle_placement, | 
					 | 
					 | 
					 | 
					        on_construct = lc_liberties.handle_placement, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        on_dig = lc_liberties.handle_dig, | 
					 | 
					 | 
					 | 
					        on_dig = lc_liberties.handle_dig, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        on_destruct = nodecore.smokeclear, | 
					 | 
					 | 
					 | 
					        on_destruct = nodecore.smokeclear, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }) | 
					 | 
					 | 
					 | 
					    }, go_node_base)) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    local territory_selection_box = { | 
					 | 
					 | 
					 | 
					    local territory_selection_box = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        type = "fixed", | 
					 | 
					 | 
					 | 
					        type = "fixed", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        fixed = {-5/16, -8/16, -5/16, 5/16, -2/16, 5/16} | 
					 | 
					 | 
					 | 
					        fixed = {-5/16, -8/16, -5/16, 5/16, -2/16, 5/16} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    -- base properties for token nodes only, which are more ephemeral than stones | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    go_node_base = nodecore.underride({ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        mapcolor = {a = 0}, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        sunlight_propagates = true, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        groups = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            stack_as_node = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    }, go_node_base) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    local territory_name = modname .. ":territory_" .. string_lower(name) | 
					 | 
					 | 
					 | 
					    local territory_name = modname .. ":territory_" .. string_lower(name) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    minetest.register_node(":" .. territory_name, { | 
					 | 
					 | 
					 | 
					    minetest.register_node(":" .. territory_name, nodecore.underride({ | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        description = "Stop Stone", | 
					 | 
					 | 
					 | 
					        description = "Stop Stone", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        drawtype = "nodebox", | 
					 | 
					 | 
					 | 
					        drawtype = "nodebox", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -103,34 +117,21 @@ local function reg(name, basename, basedef) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        node_placement_prediction = "", | 
					 | 
					 | 
					 | 
					        node_placement_prediction = "", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        tiles = {basedef.tiles[1]}, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        sounds = basedef.sounds, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mapcolor = {a = 0}, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        paramtype = "light", | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        sunlight_propagates = true, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        groups = { | 
					 | 
					 | 
					 | 
					        groups = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            snappy = 1, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            falling_node = 1, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            go_territory_marker = 1, | 
					 | 
					 | 
					 | 
					            go_territory_marker = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            stack_as_node = 1, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
					        }, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        go_team = name, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        on_place = lc_liberties.handle_territory_fill, | 
					 | 
					 | 
					 | 
					        on_place = lc_liberties.handle_territory_fill, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        on_dig = lc_liberties.handle_dig, | 
					 | 
					 | 
					 | 
					        on_dig = lc_liberties.handle_dig, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }) | 
					 | 
					 | 
					 | 
					    }, go_node_base)) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    local ko_selection_box = { | 
					 | 
					 | 
					 | 
					    local ko_selection_box = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        type = "fixed", | 
					 | 
					 | 
					 | 
					        type = "fixed", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        fixed = {-8/16, -8/16, -8/16, 8/16, -4/16, 8/16} | 
					 | 
					 | 
					 | 
					        fixed = {-8/16, -8/16, -8/16, 8/16, -4/16, 8/16} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    } | 
					 | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    minetest.register_node(":" .. modname .. ":ko_" .. string_lower(name), { | 
					 | 
					 | 
					 | 
					    minetest.register_node(":" .. modname .. ":ko_" .. string_lower(name), nodecore.underride({ | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        description = nodedesc_base .. "Ko Stone", | 
					 | 
					 | 
					 | 
					        description = nodedesc_base .. "Ko Stone", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        drawtype = "nodebox", | 
					 | 
					 | 
					 | 
					        drawtype = "nodebox", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -147,16 +148,8 @@ local function reg(name, basename, basedef) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        selection_box = ko_selection_box, | 
					 | 
					 | 
					 | 
					        selection_box = ko_selection_box, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        collision_box = ko_selection_box, | 
					 | 
					 | 
					 | 
					        collision_box = ko_selection_box, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        tiles = {basedef.tiles[1]}, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        sounds = basedef.sounds, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        mapcolor = {a = 0}, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        paramtype = "light", | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        sunlight_propagates = true, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        groups = { | 
					 | 
					 | 
					 | 
					        groups = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            snappy = 1, | 
					 | 
					 | 
					 | 
					            falling_node = 0, | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            stack_as_node = 1, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            ko_stone = 1, | 
					 | 
					 | 
					 | 
					            ko_stone = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            cheat = 1, | 
					 | 
					 | 
					 | 
					            cheat = 1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        }, | 
					 | 
					 | 
					 | 
					        }, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -165,10 +158,8 @@ local function reg(name, basename, basedef) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        destroy_on_dig = true, | 
					 | 
					 | 
					 | 
					        destroy_on_dig = true, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        silktouch = false, | 
					 | 
					 | 
					 | 
					        silktouch = false, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        go_team = name, | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        on_rightclick = lc_liberties.handle_click_ko, | 
					 | 
					 | 
					 | 
					        on_rightclick = lc_liberties.handle_click_ko, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }) | 
					 | 
					 | 
					 | 
					    }, go_node_base)) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    reg_stone_craft(name, "crossy") | 
					 | 
					 | 
					 | 
					    reg_stone_craft(name, "crossy") | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    reg_stone_craft(name, "starcrossy") | 
					 | 
					 | 
					 | 
					    reg_stone_craft(name, "starcrossy") | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |