diff --git a/core/assets-raw/sprites/blocks/drills/beam-drill-top.png b/core/assets-raw/sprites/blocks/drills/beam-drill-top.png deleted file mode 100644 index fcc4ecbced..0000000000 Binary files a/core/assets-raw/sprites/blocks/drills/beam-drill-top.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/drills/beam-drill.png b/core/assets-raw/sprites/blocks/drills/beam-drill.png deleted file mode 100644 index 040474476f..0000000000 Binary files a/core/assets-raw/sprites/blocks/drills/beam-drill.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/drills/plasma-bore-top.png b/core/assets-raw/sprites/blocks/drills/plasma-bore-top.png new file mode 100644 index 0000000000..c0bd115356 Binary files /dev/null and b/core/assets-raw/sprites/blocks/drills/plasma-bore-top.png differ diff --git a/core/assets-raw/sprites/blocks/drills/plasma-bore.png b/core/assets-raw/sprites/blocks/drills/plasma-bore.png new file mode 100644 index 0000000000..35d8889be8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/drills/plasma-bore.png differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index bec00ed84d..ffe341fdc9 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -408,3 +408,4 @@ 63300=scuttler|unit-scuttler-ui 63299=breach|block-breach-ui 63298=core-bastion|block-core-bastion-ui +63297=plasma-bore|block-plasma-bore-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 0a7a8904db..adb153965d 100644 Binary files a/core/assets/logicids.dat and b/core/assets/logicids.dat differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 5843eeaaad..225d96c73b 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -81,7 +81,7 @@ public class Blocks implements ContentList{ //production mechanicalDrill, pneumaticDrill, laserDrill, blastDrill, waterExtractor, oilExtractor, cultivator, - cliffCrusher, beamDrill, + cliffCrusher, plasmaBore, //storage coreShard, coreFoundation, coreNucleus, vault, container, unloader, @@ -1603,12 +1603,12 @@ public class Blocks implements ContentList{ output = Items.sand; }}; - beamDrill = new BeamDrill("beam-drill"){{ - requirements(Category.production, with(Items.copper, 10)); + plasmaBore = new BeamDrill("plasma-bore"){{ + requirements(Category.production, with(Items.graphite, 20, Items.beryllium, 10, Items.lead, 20)); consumes.power(0.2f); tier = 4; size = 2; - range = 4; + range = 2; }}; //endregion diff --git a/core/src/mindustry/world/blocks/production/BeamDrill.java b/core/src/mindustry/world/blocks/production/BeamDrill.java index 238028e8ed..73af805a08 100644 --- a/core/src/mindustry/world/blocks/production/BeamDrill.java +++ b/core/src/mindustry/world/blocks/production/BeamDrill.java @@ -23,6 +23,7 @@ public class BeamDrill extends Block{ public @Load("drill-laser") TextureRegion laser; public @Load("drill-laser-end") TextureRegion laserEnd; + public @Load("drill-laser-center") TextureRegion laserCenter; public @Load("@-top") TextureRegion topRegion; public float drillTime = 200f; @@ -33,7 +34,7 @@ public class BeamDrill extends Block{ public Color sparkColor = Color.valueOf("fd9e81"), glowColor = Color.white; public float glowIntensity = 0.2f, pulseIntensity = 0.07f; public float glowScl = 3f; - public int sparks = 11; + public int sparks = 8; public float sparkRange = 10f, sparkLife = 27f, sparkRecurrence = 4f, sparkSpread = 45f, sparkSize = 3.5f; public BeamDrill(String name){ @@ -189,12 +190,11 @@ public class BeamDrill extends Block{ super.updateTile(); if(lasers[0] == null) updateLasers(); - boolean cons = shouldConsume(); warmup = Mathf.approachDelta(warmup, Mathf.num(consValid()), 1f / 60f); lastItem = null; boolean multiple = false; - int dx = Geometry.d4x(rotation), dy = Geometry.d4y(rotation), ddx = Geometry.d4x(rotation + 1), ddy = Geometry.d4y(rotation + 1); + int dx = Geometry.d4x(rotation), dy = Geometry.d4y(rotation); //update facing tiles for(int p = 0; p < size; p++){ @@ -262,13 +262,19 @@ public class BeamDrill extends Block{ Point2 p = lasers[i]; float lx = face.worldx() - (dir.x/2f)*tilesize, ly = face.worldy() - (dir.y/2f)*tilesize; + float width = (laserWidth + Mathf.absin(Time.time + i*5 + id*9, glowScl, pulseIntensity)) * warmup; + Draw.z(Layer.power - 1); Draw.mixcol(glowColor, Mathf.absin(Time.time + i*5 + id*9, glowScl, glowIntensity)); - Drawf.laser(team, laser, laserEnd, + if(Math.abs(p.x - face.x) + Math.abs(p.y - face.y) == 0){ + Draw.rect(laserCenter, lx, ly, width * laserCenter.width * Draw.scl, width * laserCenter.height * Draw.scl); + }else{ + Drawf.laser(team, laser, laserEnd, (p.x - dir.x/2f) * tilesize, (p.y - dir.y/2f) * tilesize, lx, ly, - (laserWidth + Mathf.absin(Time.time + i*5 + id*9, glowScl, pulseIntensity)) * warmup); + width); + } Draw.mixcol(); Draw.z(Layer.effect);