From 5f7788d2a842ce605455b011fa76ad7aeb1d306f Mon Sep 17 00:00:00 2001 From: BuckarooBanzay Date: Sat, 5 Nov 2022 22:05:29 +0100 Subject: [PATCH] fix rotated placement and removal --- build.lua | 2 +- placements/default.lua | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/build.lua b/build.lua index 93e7755..c2a4de1 100644 --- a/build.lua +++ b/build.lua @@ -128,7 +128,7 @@ function building_lib.do_build(mapblock_pos, building_name, rotation, callback) -- place into world local placement = building_lib.get_placement(building_def.placement) - local size = placement.get_size(placement, mapblock_pos, building_def) + local size = placement.get_size(placement, mapblock_pos, building_def, rotation) -- write new data for x=mapblock_pos.x,mapblock_pos.x+size.x-1 do diff --git a/placements/default.lua b/placements/default.lua index 617ca53..420cb39 100644 --- a/placements/default.lua +++ b/placements/default.lua @@ -2,7 +2,7 @@ building_lib.register_placement("default", { place = function(self, mapblock_pos, building_def, rotation, callback) local catalog = mapblock_lib.get_catalog(building_def.catalog) - local size = self.get_size(self, mapblock_pos, building_def, rotation) + local size = self.get_size(self, mapblock_pos, building_def, 0) local catalog_pos1 = {x=0, y=0, z=0} local catalog_pos2 = vector.add(catalog_pos1, vector.add(size, -1)) local iterator = mapblock_lib.pos_iterator(catalog_pos1, catalog_pos2) @@ -14,10 +14,11 @@ building_lib.register_placement("default", { return callback() end - -- TODO: rotate position - -- rel_pos = mapblock_lib.rotate_pos(rel_pos, self.manifest.range, options.rotate_y) + -- transform catalog position + local rotated_catalog_pos = mapblock_lib.rotate_pos(catalog_pos, catalog_pos2, rotation) + -- translate to world-coords + local world_pos = vector.add(mapblock_pos, rotated_catalog_pos) - local world_pos = vector.add(mapblock_pos, catalog_pos) catalog:deserialize(catalog_pos, world_pos, { transform = { rotate = {