From 7db61e9890c6c5174d82c0f4c8c70d3a11994974 Mon Sep 17 00:00:00 2001 From: Maverick2797 Date: Wed, 18 Aug 2021 18:10:41 +0800 Subject: Automatically group wagons and locomotives based on definition values Based on the advtrains wiki groups: Type Group Classifier - Locomotives: group:at_loco is_locomotive = true - Controllable: group:at_control seat_groups.dstand - Passengers: group:at_pax seat_groups.pass - Freight: group:at_freight has_inventory = true --- advtrains/wagons.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index 4093f06..94eda30 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -1316,14 +1316,23 @@ function advtrains.register_wagon(sysname_p, prototype, desc, inv_img, nincreati minetest.register_entity(":"..sysname,prototype) advtrains.wagon_prototypes[sysname] = prototype + --group classification to make recipe searching easier + local wagon_groups = { not_in_creative_inventory = nincreative and 1 or 0} + if prototype.is_locomotive then wagon_groups['at_loco'] = 1 end + if prototype.seat_groups then + if prototype.seat_groups.dstand then wagon_groups['at_control'] = 1 end + if prototype.seat_groups.pass then wagon_groups['at_pax'] = 1 end + end + if prototype.has_inventory then wagon_groups['at_freight'] = 1 end + minetest.register_craftitem(":"..sysname, { description = desc, inventory_image = inv_img, wield_image = inv_img, stack_max = 1, - groups = { not_in_creative_inventory = nincreative and 1 or 0}, - + groups = wagon_groups, + on_place = function(itemstack, placer, pointed_thing) if not pointed_thing.type == "node" then return -- cgit v1.2.3