From 7c240ecbc9df74fbeccada1eeccef5422734fcba Mon Sep 17 00:00:00 2001 From: oilboi <47129783+oilboi@users.noreply.github.com> Date: Sat, 4 Jul 2020 08:28:51 -0400 Subject: [PATCH] Add in actual 2d direction rotation for minecarts --- mods/fireworks/init.lua | 5 +++++ mods/minecart/init.lua | 17 +++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/mods/fireworks/init.lua b/mods/fireworks/init.lua index f52f968..f631ba7 100644 --- a/mods/fireworks/init.lua +++ b/mods/fireworks/init.lua @@ -3,6 +3,11 @@ local colors ={ "white", "blue" } +local colors_halloween ={ + "orange", + "black" +} + local function fireworks_pop(pos) for _,color in pairs(colors) do diff --git a/mods/minecart/init.lua b/mods/minecart/init.lua index 1020493..fdcfc56 100644 --- a/mods/minecart/init.lua +++ b/mods/minecart/init.lua @@ -90,6 +90,7 @@ local function rail_brain(self,pos) triggered = true end + print(dump(dir)) if triggered and not pool[minetest.hash_node_position(vector.add(pos,dir))] then local possible_dirs = create_axis(pos) if table.getn(possible_dirs) == 0 then @@ -97,13 +98,17 @@ local function rail_brain(self,pos) else for _,dir2 in pairs(possible_dirs) do if dir.x ~= 0 and dir2.z ~= 0 then - local transmitted = self.object:get_velocity().x - self.object:set_velocity(vector.new(0,0,transmitted)) - self.dir = vector.direction(vector.new(0,0,transmitted),vector.new(0,0,0)) + local intertia = math.abs(self.object:get_velocity().x) + self.object:set_velocity(vector.multiply(dir2,intertia)) + self.dir = dir2 + self.axis_lock = "z" + break elseif dir.z ~= 0 and dir2.x ~= 0 then - local transmitted = self.object:get_velocity().z - self.object:set_velocity(vector.new(transmitted,0,0)) - self.dir = vector.direction(vector.new(transmitted,0,0),vector.new(0,0,0)) + local intertia = math.abs(self.object:get_velocity().z) + self.object:set_velocity(vector.multiply(dir2,intertia)) + self.dir = dir2 + self.axis_lock = "x" + break end end end -- 2.44.0