From f825931f92cd76e5cabf5e4fd7f032ccb61ae271 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 15 Apr 2019 18:53:31 -0400 Subject: [PATCH] Consistent output timer --- .../mindustry/editor/generation/GenerateFilter.java | 5 +++++ .../anuke/mindustry/editor/generation/OreFilter.java | 12 ++++++------ core/src/io/anuke/mindustry/world/Block.java | 5 +++++ .../mindustry/world/blocks/production/Drill.java | 3 +-- .../world/blocks/production/GenericCrafter.java | 4 +--- .../mindustry/world/blocks/production/Separator.java | 4 +--- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java b/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java index 837787c779..bd8551b23a 100644 --- a/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java +++ b/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java @@ -5,6 +5,7 @@ import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Pack; import io.anuke.arc.util.noise.RidgedPerlin; import io.anuke.arc.util.noise.Simplex; +import io.anuke.mindustry.content.Blocks; import io.anuke.mindustry.editor.MapEditor; import io.anuke.mindustry.editor.MapGenerateDialog.DummyTile; import io.anuke.mindustry.world.Block; @@ -50,6 +51,10 @@ public abstract class GenerateFilter{ public final void apply(GenerateInput in){ this.in = in; apply(); + //remove extra ores on liquids + if(((Floor)in.floor).isLiquid){ + in.ore = Blocks.air; + } } public static class GenerateInput{ diff --git a/core/src/io/anuke/mindustry/editor/generation/OreFilter.java b/core/src/io/anuke/mindustry/editor/generation/OreFilter.java index 999661a705..c5af869165 100644 --- a/core/src/io/anuke/mindustry/editor/generation/OreFilter.java +++ b/core/src/io/anuke/mindustry/editor/generation/OreFilter.java @@ -13,11 +13,11 @@ public class OreFilter extends GenerateFilter{ { options( - new SliderOption("scale", () -> scl, f -> scl = f, 1f, 500f), - new SliderOption("threshold", () -> threshold, f -> threshold = f, 0f, 1f), - new SliderOption("octaves", () -> octaves, f -> octaves = f, 1f, 10f), - new SliderOption("falloff", () -> falloff, f -> falloff = f, 0f, 1f), - new BlockOption("ore", () -> ore, b -> ore = b, oresOnly) + new SliderOption("scale", () -> scl, f -> scl = f, 1f, 500f), + new SliderOption("threshold", () -> threshold, f -> threshold = f, 0f, 1f), + new SliderOption("octaves", () -> octaves, f -> octaves = f, 1f, 10f), + new SliderOption("falloff", () -> falloff, f -> falloff = f, 0f, 1f), + new BlockOption("ore", () -> ore, b -> ore = b, oresOnly) ); } @@ -25,7 +25,7 @@ public class OreFilter extends GenerateFilter{ public void apply(){ float noise = noise(in.x, in.y, scl, 1f, octaves, falloff); - if(noise > threshold && !in.srcfloor.isLiquid){ + if(noise > threshold){ in.ore = ore; } } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index c92d9a10cf..bbcd360ecf 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -113,6 +113,11 @@ public class Block extends BlockStorage{ protected TextureRegion[] variantRegions, editorVariantRegions; protected TextureRegion region, editorIcon; + /** Dump timer ID.*/ + protected final int timerDump = timers++; + /** How often to try dumping items in ticks, e.g. 5 = 12 times/sec*/ + protected final int dumpTime = 5; + public Block(String name){ super(name); this.description = Core.bundle.getOrNull("block." + name + ".description"); diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java index 7105790f00..d9e814c8ca 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java @@ -27,7 +27,6 @@ import static io.anuke.mindustry.Vars.content; public class Drill extends Block{ protected final static float hardnessDrillMultiplier = 50f; - protected final int timerDump = timers++; protected final ObjectIntMap oreCount = new ObjectIntMap<>(); protected final Array itemArray = new Array<>(); @@ -192,7 +191,7 @@ public class Drill extends Block{ float totalHardness = entity.dominantItems * entity.dominantItem.hardness; - if(entity.timer.get(timerDump, 5)){ + if(entity.timer.get(timerDump, dumpTime)){ tryDump(tile, entity.dominantItem); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java index 67215d9b75..7376b0738b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java @@ -20,8 +20,6 @@ import io.anuke.mindustry.world.meta.StatUnit; import java.io.*; public class GenericCrafter extends Block{ - protected final int timerDump = timers++; - protected ItemStack outputItem; protected LiquidStack outputLiquid; @@ -110,7 +108,7 @@ public class GenericCrafter extends Block{ entity.progress = 0f; } - if(outputItem != null && tile.entity.timer.get(timerDump, 5)){ + if(outputItem != null && tile.entity.timer.get(timerDump, dumpTime)){ tryDump(tile, outputItem.item); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java index 65a3f90045..e29f2fe218 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java @@ -20,8 +20,6 @@ import io.anuke.mindustry.world.meta.values.ItemFilterValue; * Extracts a random list of items from an input item and an input liquid. */ public class Separator extends Block{ - protected final int timerDump = timers++; - protected ItemStack[] results; protected float craftTime; protected float spinnerRadius = 2.5f; @@ -116,7 +114,7 @@ public class Separator extends Block{ } } - if(entity.timer.get(timerDump, 5)){ + if(entity.timer.get(timerDump, dumpTime)){ tryDump(tile); } }