From ec32f6564669af8b5da39792a37f83eb01d0fc8f Mon Sep 17 00:00:00 2001 From: Patrick 'Quezler' Mounier Date: Thu, 2 Jan 2020 08:11:37 +0100 Subject: [PATCH] Avoid recursion --- .../blocks/distribution/PlastaniumConveyor.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/world/blocks/distribution/PlastaniumConveyor.java b/core/src/mindustry/world/blocks/distribution/PlastaniumConveyor.java index 421ac35c69..ad6fc0fed6 100644 --- a/core/src/mindustry/world/blocks/distribution/PlastaniumConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/PlastaniumConveyor.java @@ -3,6 +3,7 @@ package mindustry.world.blocks.distribution; import arc.*; import arc.func.*; import arc.util.*; +import arc.struct.*; import mindustry.ui.*; import mindustry.type.*; import mindustry.world.*; @@ -80,10 +81,13 @@ public class PlastaniumConveyor extends ArmoredConveyor{ PlastaniumConveyorEntity entity = tile.ent(); if(entity.reload > 0) entity.reload--; - if(tile.front() == null || !(tile.front().block() instanceof PlastaniumConveyor)){ - entity.tree = 0; - }else{ - entity.tree = ((PlastaniumConveyorEntity)tile.front().ent()).tree + 1; + Tile cur = tile; + ObjectSet walked = new ObjectSet<>(); + entity.tree = 0; + while(cur.front() != null && cur.front().block() instanceof PlastaniumConveyor && !walked.contains(cur)){ + walked.add(cur); + cur = cur.front(); + entity.tree++; } }