diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index eb6acdd878..a863178208 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -30,6 +30,7 @@ public class Separator extends Block{ solid = true; hasItems = true; hasLiquids = true; + sync = true; } @Override @@ -45,6 +46,12 @@ public class Separator extends Block{ public float progress; public float totalProgress; public float warmup; + public int seed; + + @Override + public void created(){ + seed = Mathf.randomSeed(tile.pos(), 0, Integer.MAX_VALUE - 1); + } @Override public boolean shouldAmbientSound(){ @@ -91,7 +98,7 @@ public class Separator extends Block{ int sum = 0; for(ItemStack stack : results) sum += stack.amount; - int i = Mathf.random(sum); + int i = Mathf.randomSeed(seed++, 0, sum); int count = 0; Item item = null; @@ -121,11 +128,17 @@ public class Separator extends Block{ return !consumes.itemFilters.get(item.id); } + @Override + public byte version(){ + return 1; + } + @Override public void write(Writes write){ super.write(write); write.f(progress); write.f(warmup); + write.i(seed); } @Override @@ -133,6 +146,7 @@ public class Separator extends Block{ super.read(read, revision); progress = read.f(); warmup = read.f(); + if(revision == 1) seed = read.i(); } } }