Cryofluid floor tweaks

This commit is contained in:
Anuken
2021-09-27 15:07:10 -04:00
12 changed files with 462 additions and 16 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1133,6 +1133,7 @@ block.sand-boulder.name = Sand Boulder
block.basalt-boulder.name = Basalt Boulder block.basalt-boulder.name = Basalt Boulder
block.grass.name = Grass block.grass.name = Grass
block.molten-slag.name = Slag block.molten-slag.name = Slag
block.pooled-cryofluid.name = Cryofluid
block.space.name = Space block.space.name = Space
block.salt.name = Salt block.salt.name = Salt
block.salt-wall.name = Salt Wall block.salt-wall.name = Salt Wall

View File

@@ -0,0 +1,363 @@
63743=spawn|block-spawn-ui
63742=deepwater|block-deepwater-ui
63741=shallow-water|block-shallow-water-ui
63740=tainted-water|block-tainted-water-ui
63739=darksand-tainted-water|block-darksand-tainted-water-ui
63738=sand-water|block-sand-water-ui
63737=darksand-water|block-darksand-water-ui
63736=tar|block-tar-ui
63735=stone|block-stone-ui
63734=craters|block-craters-ui
63733=char|block-char-ui
63732=ignarock|block-ignarock-ui
63731=hotrock|block-hotrock-ui
63730=magmarock|block-magmarock-ui
63729=sand|block-sand-ui
63728=darksand|block-darksand-ui
63726=grass|block-grass-ui
63725=salt|block-salt-ui
63724=snow|block-snow-ui
63723=ice|block-ice-ui
63722=ice-snow|block-ice-snow-ui
63721=cliffs|block-cliffs-ui
63718=rock|block-rock-ui
63717=snowrock|block-snowrock-ui
63711=spore-pine|block-spore-pine-ui
63710=snow-pine|block-snow-pine-ui
63709=pine|block-pine-ui
63708=shrubs|block-shrubs-ui
63707=white-tree-dead|block-white-tree-dead-ui
63706=white-tree|block-white-tree-ui
63705=spore-cluster|block-spore-cluster-ui
63704=shale|block-shale-ui
63702=shale-boulder|block-shale-boulder-ui
63701=sand-boulder|block-sand-boulder-ui
63700=moss|block-moss-ui
63699=spore-moss|block-spore-moss-ui
63698=metal-floor|block-metal-floor-ui
63697=metal-floor-damaged|block-metal-floor-damaged-ui
63696=metal-floor-2|block-metal-floor-2-ui
63695=metal-floor-3|block-metal-floor-3-ui
63694=metal-floor-5|block-metal-floor-5-ui
63693=dark-panel-1|block-dark-panel-1-ui
63692=dark-panel-2|block-dark-panel-2-ui
63691=dark-panel-3|block-dark-panel-3-ui
63690=dark-panel-4|block-dark-panel-4-ui
63689=dark-panel-5|block-dark-panel-5-ui
63688=dark-panel-6|block-dark-panel-6-ui
63687=dark-metal|block-dark-metal-ui
63686=pebbles|block-pebbles-ui
63685=tendrils|block-tendrils-ui
63684=ore-copper|block-ore-copper-ui
63683=ore-lead|block-ore-lead-ui
63682=ore-scrap|block-ore-scrap-ui
63681=ore-coal|block-ore-coal-ui
63680=ore-titanium|block-ore-titanium-ui
63679=ore-thorium|block-ore-thorium-ui
63678=graphite-press|block-graphite-press-ui
63677=multi-press|block-multi-press-ui
63676=silicon-smelter|block-silicon-smelter-ui
63675=kiln|block-kiln-ui
63674=plastanium-compressor|block-plastanium-compressor-ui
63673=phase-weaver|block-phase-weaver-ui
63672=alloy-smelter|block-alloy-smelter-ui
63671=cryofluid-mixer|block-cryofluid-mixer-ui
63670=blast-mixer|block-blast-mixer-ui
63669=pyratite-mixer|block-pyratite-mixer-ui
63668=melter|block-melter-ui
63667=separator|block-separator-ui
63666=spore-press|block-spore-press-ui
63665=pulverizer|block-pulverizer-ui
63664=coal-centrifuge|block-coal-centrifuge-ui
63663=incinerator|block-incinerator-ui
63662=copper-wall|block-copper-wall-ui
63661=copper-wall-large|block-copper-wall-large-ui
63660=titanium-wall|block-titanium-wall-ui
63659=titanium-wall-large|block-titanium-wall-large-ui
63658=plastanium-wall|block-plastanium-wall-ui
63657=plastanium-wall-large|block-plastanium-wall-large-ui
63656=thorium-wall|block-thorium-wall-ui
63655=thorium-wall-large|block-thorium-wall-large-ui
63654=phase-wall|block-phase-wall-ui
63653=phase-wall-large|block-phase-wall-large-ui
63652=surge-wall|block-surge-wall-ui
63651=surge-wall-large|block-surge-wall-large-ui
63650=door|block-door-ui
63649=door-large|block-door-large-ui
63648=scrap-wall|block-scrap-wall-ui
63647=scrap-wall-large|block-scrap-wall-large-ui
63646=scrap-wall-huge|block-scrap-wall-huge-ui
63645=scrap-wall-gigantic|block-scrap-wall-gigantic-ui
63644=thruster|block-thruster-ui
63643=mender|block-mender-ui
63642=mend-projector|block-mend-projector-ui
63641=overdrive-projector|block-overdrive-projector-ui
63640=force-projector|block-force-projector-ui
63639=shock-mine|block-shock-mine-ui
63638=conveyor|block-conveyor-ui
63637=titanium-conveyor|block-titanium-conveyor-ui
63636=armored-conveyor|block-armored-conveyor-ui
63635=junction|block-junction-ui
63634=bridge-conveyor|block-bridge-conveyor-ui
63633=phase-conveyor|block-phase-conveyor-ui
63632=sorter|block-sorter-ui
63631=inverted-sorter|block-inverted-sorter-ui
63630=router|block-router-ui
63629=distributor|block-distributor-ui
63628=overflow-gate|block-overflow-gate-ui
63627=mass-driver|block-mass-driver-ui
63626=mechanical-pump|block-mechanical-pump-ui
63625=rotary-pump|block-rotary-pump-ui
63624=thermal-pump|block-thermal-pump-ui
63623=conduit|block-conduit-ui
63622=pulse-conduit|block-pulse-conduit-ui
63621=plated-conduit|block-plated-conduit-ui
63620=liquid-router|block-liquid-router-ui
63619=liquid-tank|block-liquid-tank-ui
63618=liquid-junction|block-liquid-junction-ui
63617=bridge-conduit|block-bridge-conduit-ui
63616=phase-conduit|block-phase-conduit-ui
63615=power-node|block-power-node-ui
63614=power-node-large|block-power-node-large-ui
63613=surge-tower|block-surge-tower-ui
63612=diode|block-diode-ui
63611=battery|block-battery-ui
63610=battery-large|block-battery-large-ui
63609=combustion-generator|block-combustion-generator-ui
63608=thermal-generator|block-thermal-generator-ui
63607=steam-generator|block-steam-generator-ui
63606=differential-generator|block-differential-generator-ui
63605=rtg-generator|block-rtg-generator-ui
63604=solar-panel|block-solar-panel-ui
63603=solar-panel-large|block-solar-panel-large-ui
63602=thorium-reactor|block-thorium-reactor-ui
63601=impact-reactor|block-impact-reactor-ui
63600=mechanical-drill|block-mechanical-drill-ui
63599=pneumatic-drill|block-pneumatic-drill-ui
63598=laser-drill|block-laser-drill-ui
63597=blast-drill|block-blast-drill-ui
63596=water-extractor|block-water-extractor-ui
63595=cultivator|block-cultivator-ui
63594=oil-extractor|block-oil-extractor-ui
63593=core-shard|block-core-shard-ui
63592=core-foundation|block-core-foundation-ui
63591=core-nucleus|block-core-nucleus-ui
63590=vault|block-vault-ui
63589=container|block-container-ui
63588=unloader|block-unloader-ui
63587=launch-pad|block-launch-pad-ui
63586=launch-pad-large|block-launch-pad-large-ui
63585=duo|block-duo-ui
63584=scatter|block-scatter-ui
63583=scorch|block-scorch-ui
63582=hail|block-hail-ui
63581=wave|block-wave-ui
63580=lancer|block-lancer-ui
63579=arc|block-arc-ui
63578=swarmer|block-swarmer-ui
63577=salvo|block-salvo-ui
63576=fuse|block-fuse-ui
63575=ripple|block-ripple-ui
63574=cyclone|block-cyclone-ui
63573=spectre|block-spectre-ui
63572=meltdown|block-meltdown-ui
63571=draug-factory|block-draug-factory-ui
63570=spirit-factory|block-spirit-factory-ui
63569=phantom-factory|block-phantom-factory-ui
63568=command-center|block-command-center-ui
63567=wraith-factory|block-wraith-factory-ui
63566=ghoul-factory|block-ghoul-factory-ui
63565=revenant-factory|block-revenant-factory-ui
63564=dagger-factory|block-dagger-factory-ui
63563=crawler-factory|block-crawler-factory-ui
63562=titan-factory|block-titan-factory-ui
63561=fortress-factory|block-fortress-factory-ui
63560=repair-point|block-repair-point-ui
63559=dart-mech-pad|block-dart-mech-pad-ui
63558=delta-mech-pad|block-delta-mech-pad-ui
63557=tau-mech-pad|block-tau-mech-pad-ui
63556=omega-mech-pad|block-omega-mech-pad-ui
63555=javelin-ship-pad|block-javelin-ship-pad-ui
63554=trident-ship-pad|block-trident-ship-pad-ui
63553=glaive-ship-pad|block-glaive-ship-pad-ui
63552=power-source|block-power-source-ui
63551=power-void|block-power-void-ui
63550=item-source|block-item-source-ui
63549=item-void|block-item-void-ui
63548=liquid-source|block-liquid-source-ui
63547=liquid-void|block-liquid-void-ui
63546=message|block-message-ui
63545=illuminator|block-illuminator-ui
63544=copper|item-copper-ui
63543=lead|item-lead-ui
63542=metaglass|item-metaglass-ui
63541=graphite|item-graphite-ui
63540=sand|item-sand-ui
63539=coal|item-coal-ui
63538=titanium|item-titanium-ui
63537=thorium|item-thorium-ui
63536=scrap|item-scrap-ui
63535=silicon|item-silicon-ui
63534=plastanium|item-plastanium-ui
63533=phase-fabric|item-phase-fabric-ui
63532=surge-alloy|item-surge-alloy-ui
63531=spore-pod|item-spore-pod-ui
63530=blast-compound|item-blast-compound-ui
63529=pyratite|item-pyratite-ui
63528=water|liquid-water-ui
63527=slag|liquid-slag-ui
63526=oil|liquid-oil-ui
63525=cryofluid|liquid-cryofluid-ui
63524=underflow-gate|block-underflow-gate-ui
63523=dart-ship-pad|block-dart-ship-pad-ui
63522=alpha-mech-pad|block-alpha-mech-pad-ui
63521=cliff|block-cliff-ui
63520=legacy-mech-pad|block-legacy-mech-pad-ui
63519=ground-factory|block-ground-factory-ui
63518=legacy-unit-factory|block-legacy-unit-factory-ui
63517=mass-conveyor|block-mass-conveyor-ui
63516=legacy-command-center|block-legacy-command-center-ui
63515=block-forge|block-block-forge-ui
63514=block-launcher|block-block-launcher-ui
63513=plastanium-conveyor|block-plastanium-conveyor-ui
63512=crater|crater
63511=naval-factory|block-naval-factory-ui
63510=air-factory|block-air-factory-ui
63509=basic-reconstructor|block-basic-reconstructor-ui
63508=block-loader|block-block-loader-ui
63507=block-unloader|block-block-unloader-ui
63506=core-silo|block-core-silo-ui
63505=data-processor|block-data-processor-ui
63504=payload-router|block-payload-router-ui
63503=silicon-crucible|block-silicon-crucible-ui
63502=segment|block-segment-ui
63501=large-overdrive-projector|block-large-overdrive-projector-ui
63500=disassembler|block-disassembler-ui
63499=advanced-reconstructor|block-advanced-reconstructor-ui
63498=reconstructor-basis|block-reconstructor-basis-ui
63497=reconstructor-morphism|block-reconstructor-morphism-ui
63496=reconstructor-functor|block-reconstructor-functor-ui
63495=reconstructor-prime|block-reconstructor-prime-ui
63494=additive-reconstructor|block-additive-reconstructor-ui
63493=multiplicative-reconstructor|block-multiplicative-reconstructor-ui
63492=exponential-reconstructor|block-exponential-reconstructor-ui
63491=tetrative-reconstructor|block-tetrative-reconstructor-ui
63490=resupply-point|block-resupply-point-ui
63489=parallax|block-parallax-ui
63488=dagger|unit-dagger-ui
63487=mace|unit-mace-ui
63486=fortress|unit-fortress-ui
63485=nova|unit-nova-ui
63484=pulsar|unit-pulsar-ui
63483=quasar|unit-quasar-ui
63482=crawler|unit-crawler-ui
63481=atrax|unit-atrax-ui
63480=spiroct|unit-spiroct-ui
63479=arkyid|unit-arkyid-ui
63478=flare|unit-flare-ui
63477=horizon|unit-horizon-ui
63476=zenith|unit-zenith-ui
63475=antumbra|unit-antumbra-ui
63474=eclipse|unit-eclipse-ui
63473=mono|unit-mono-ui
63472=poly|unit-poly-ui
63471=mega|unit-mega-ui
63470=risse|unit-risse-ui
63469=minke|unit-minke-ui
63468=bryde|unit-bryde-ui
63467=alpha|unit-alpha-ui
63466=beta|unit-beta-ui
63465=gamma|unit-gamma-ui
63464=block|unit-block-ui
63463=risso|unit-risso-ui
63462=overdrive-dome|block-overdrive-dome-ui
63461=logic-processor|block-logic-processor-ui
63460=micro-processor|block-micro-processor-ui
63459=logic-display|block-logic-display-ui
63458=switch|block-switch-ui
63457=memory-cell|block-memory-cell-ui
63456=payload-conveyor|block-payload-conveyor-ui
63455=hyper-processor|block-hyper-processor-ui
63454=toxopid|unit-toxopid-ui
63453=vestige|unit-vestige-ui
63452=cataclyst|unit-cataclyst-ui
63451=scepter|unit-scepter-ui
63450=reign|unit-reign-ui
63449=dirt|block-dirt-ui
63447=stone-wall|block-stone-wall-ui
63446=spore-wall|block-spore-wall-ui
63445=ice-wall|block-ice-wall-ui
63444=snow-wall|block-snow-wall-ui
63443=dune-wall|block-dune-wall-ui
63442=sand-wall|block-sand-wall-ui
63441=salt-wall|block-salt-wall-ui
63440=shale-wall|block-shale-wall-ui
63439=dirt-wall|block-dirt-wall-ui
63437=basalt|block-basalt-ui
63436=dacite|block-dacite-ui
63435=boulder|block-boulder-ui
63434=snow-boulder|block-snow-boulder-ui
63433=dacite-wall|block-dacite-wall-ui
63432=dacite-boulder|block-dacite-boulder-ui
63431=large-logic-display|block-large-logic-display-ui
63430=omura|unit-omura-ui
63429=mud|block-mud-ui
63428=sei|unit-sei-ui
63427=quad|unit-quad-ui
63426=oct|unit-oct-ui
63425=vela|unit-vela-ui
63424=corvus|unit-corvus-ui
63423=memory-bank|block-memory-bank-ui
63422=foreshadow|block-foreshadow-ui
63421=tsunami|block-tsunami-ui
63420=space|block-space-ui
63419=legacy-unit-factory-air|block-legacy-unit-factory-air-ui
63418=legacy-unit-factory-ground|block-legacy-unit-factory-ground-ui
63417=interplanetary-accelerator|block-interplanetary-accelerator-ui
63416=basalt-boulder|block-basalt-boulder-ui
63415=none|status-none-ui
63414=burning|status-burning-ui
63413=freezing|status-freezing-ui
63412=unmoving|status-unmoving-ui
63411=slow|status-slow-ui
63410=wet|status-wet-ui
63409=muddy|status-muddy-ui
63408=melting|status-melting-ui
63407=sapped|status-sapped-ui
63406=spore-slowed|status-spore-slowed-ui
63405=tarred|status-tarred-ui
63404=overdrive|status-overdrive-ui
63403=overclock|status-overclock-ui
63402=shielded|status-shielded-ui
63401=boss|status-boss-ui
63400=shocked|status-shocked-ui
63399=blasted|status-blasted-ui
63398=corroded|status-corroded-ui
63397=disarmed|status-disarmed-ui
63385=duct|block-duct-ui
63376=repair-turret|block-repair-turret-ui
63375=payload-propulsion-tower|block-payload-propulsion-tower-ui
63374=payload-incinerator|block-payload-incinerator-ui
63373=payload-void|block-payload-void-ui
63372=payload-source|block-payload-source-ui
63368=retusa|unit-retusa-ui
63367=directional-item-bridge|block-directional-item-bridge-ui
63366=duct-router|block-duct-router-ui
63365=duct-bridge|block-duct-bridge-ui
63364=oxynoe|unit-oxynoe-ui
63363=cyerce|unit-cyerce-ui
63362=aegires|unit-aegires-ui
63361=electrified|status-electrified-ui
63360=navanax|unit-navanax-ui
63354=payload-launch-pad|block-payload-launch-pad-ui
63353=silicon-arc-furnace|block-silicon-arc-furnace-ui
63352=metal-floor-4|block-metal-floor-4-ui
63351=invincible|status-invincible-ui
63356=sharded|team-sharded
63357=crux|team-crux
63358=derelict|team-derelict
63350=deep-water|block-deep-water-ui
63348=molten-slag|block-molten-slag-ui
63347=crater-stone|block-crater-stone-ui
63346=deep-tainted-water|block-deep-tainted-water-ui
63345=pooled-cryofluid|block-pooled-cryofluid-ui

Binary file not shown.

View File

@@ -0,0 +1,35 @@
#define HIGHP
//shades of cryofluid
#define S1 vec3(53.0, 83.0, 93.0) / 100.0
#define S2 vec3(68.0, 90.0, 97.0) / 100.0
#define NSCALE 100.0 / 2.0
uniform sampler2D u_texture;
uniform sampler2D u_noise;
uniform vec2 u_campos;
uniform vec2 u_resolution;
uniform float u_time;
varying vec2 v_texCoords;
const float shakeScl = 20.0;
void main(){
vec2 c = v_texCoords.xy;
vec2 coords = vec2(c.x * u_resolution.x + u_campos.x, c.y * u_resolution.y + u_campos.y);
float btime = u_time / 5000.0;
float wave = abs(sin(coords.x * 1.1 + coords.y) + 0.1 * sin(2.5 * coords.x) + 0.15 * sin(3.0 * coords.y)) / 30.0;
float noise = wave + (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.2, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(0.8, -1.0)).r) / 2.0;
vec4 color = texture2D(u_texture, c);
if(noise > 0.54 && noise < 0.57){
color.rgb = S2;
}else if (noise > 0.49 && noise < 0.62){
color.rgb = S1;
}
gl_FragColor = color;
}

View File

@@ -35,7 +35,7 @@ public class Blocks implements ContentList{
public static Block public static Block
//environment //environment
air, spawn, cliff, deepwater, water, taintedWater, deepTaintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space, air, spawn, cliff, deepwater, water, taintedWater, deepTaintedWater, tar, slag, cryofluid, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space,
dacite, dacite,
stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster,
iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt, iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt,
@@ -196,6 +196,22 @@ public class Blocks implements ContentList{
cacheLayer = CacheLayer.tar; cacheLayer = CacheLayer.tar;
}}; }};
cryofluid = new Floor("pooled-cryofluid"){{
drownTime = 150f;
status = StatusEffects.freezing;
statusDuration = 240f;
speedMultiplier = 0.5f;
variants = 0;
liquidDrop = Liquids.cryofluid;
liquidMultiplier = 0.5f;
isLiquid = true;
cacheLayer = CacheLayer.cryofluid;
emitLight = true;
lightRadius = 25f;
lightColor = Color.cyan.cpy().a(0.19f);
}};
slag = new Floor("molten-slag"){{ slag = new Floor("molten-slag"){{
drownTime = 150f; drownTime = 150f;
status = StatusEffects.melting; status = StatusEffects.melting;

View File

@@ -362,13 +362,13 @@ public class Fx{
Fill.circle(e.x, e.y, e.fin() * 10); Fill.circle(e.x, e.y, e.fin() * 10);
Drawf.light(e.x, e.y, e.fin() * 20f, Pal.heal, 0.7f); Drawf.light(e.x, e.y, e.fin() * 20f, Pal.heal, 0.7f);
}).followParent(true), }).followParent(true).rotWithParent(true),
greenLaserChargeSmall = new Effect(40f, 100f, e -> { greenLaserChargeSmall = new Effect(40f, 100f, e -> {
color(Pal.heal); color(Pal.heal);
stroke(e.fin() * 2f); stroke(e.fin() * 2f);
Lines.circle(e.x, e.y, e.fout() * 50f); Lines.circle(e.x, e.y, e.fout() * 50f);
}).followParent(true), }).followParent(true).rotWithParent(true),
greenCloud = new Effect(80f, e -> { greenCloud = new Effect(80f, e -> {
color(Pal.heal); color(Pal.heal);
@@ -1943,7 +1943,7 @@ public class Fx{
} }
Lines.endLine(); Lines.endLine();
}).followParent(false), }).followParent(false).rotWithParent(false),
chainEmp = new Effect(30f, 300f, e -> { chainEmp = new Effect(30f, 300f, e -> {
if(!(e.data instanceof Position p)) return; if(!(e.data instanceof Position p)) return;
@@ -1980,5 +1980,5 @@ public class Fx{
} }
Lines.endLine(); Lines.endLine();
}).followParent(false); }).followParent(false).rotWithParent(false);
} }

View File

@@ -30,8 +30,12 @@ public class Effect{
public float lifetime = 50f; public float lifetime = 50f;
/** Clip size. */ /** Clip size. */
public float clip; public float clip;
/** Amount added to rotation */
public float baseRotation;
/** If true, parent unit is data are followed. */ /** If true, parent unit is data are followed. */
public boolean followParent; public boolean followParent;
/** If this and followParent are true, the effect will offset and rotate with the parent's rotation. */
public boolean rotWithParent;
public float layer = Layer.effect; public float layer = Layer.effect;
public float layerDuration; public float layerDuration;
@@ -61,11 +65,21 @@ public class Effect{
return this; return this;
} }
public Effect rotWithParent(boolean follow){
rotWithParent = follow;
return this;
}
public Effect layer(float l){ public Effect layer(float l){
layer = l; layer = l;
return this; return this;
} }
public Effect baseRotation(float d){
baseRotation = d;
return this;
}
public Effect layer(float l, float duration){ public Effect layer(float l, float duration){
layer = l; layer = l;
this.layerDuration = duration; this.layerDuration = duration;
@@ -156,12 +170,15 @@ public class Effect{
EffectState entity = EffectState.create(); EffectState entity = EffectState.create();
entity.effect = effect; entity.effect = effect;
entity.rotation = rotation; entity.rotation = effect.baseRotation + rotation;
entity.data = data; entity.data = data;
entity.lifetime = effect.lifetime; entity.lifetime = effect.lifetime;
entity.set(x, y); entity.set(x, y);
entity.color.set(color); entity.color.set(color);
if(effect.followParent && data instanceof Posc p) entity.parent = p; if(effect.followParent && data instanceof Posc p){
entity.parent = p;
entity.rotWithParent = effect.rotWithParent;
}
entity.add(); entity.add();
} }
} }

View File

@@ -1,29 +1,41 @@
package mindustry.entities.comp; package mindustry.entities.comp;
import arc.math.*;
import arc.util.*; import arc.util.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
import mindustry.gen.*; import mindustry.gen.*;
@Component @Component
abstract class ChildComp implements Posc{ abstract class ChildComp implements Posc, Rotc{
@Import float x, y; @Import float x, y, rotation;
@Nullable Posc parent; @Nullable Posc parent;
float offsetX, offsetY; boolean rotWithParent;
float offsetX, offsetY, offsetPos, offsetRot;
@Override @Override
public void add(){ public void add(){
if(parent != null){ if(parent != null){
offsetX = x - parent.getX(); offsetX = x - parent.getX();
offsetY = y - parent.getY(); offsetY = y - parent.getY();
if(rotWithParent && parent instanceof Rotc r){
offsetPos = -r.rotation();
offsetRot = rotation - r.rotation();
}
} }
} }
@Override @Override
public void update(){ public void update(){
if(parent != null){ if(parent != null){
x = parent.getX() + offsetX; if(rotWithParent && parent instanceof Rotc r){
y = parent.getY() + offsetY; x = parent.getX() + Angles.trnsx(r.rotation() + offsetPos, offsetX, offsetY);
y = parent.getY() + Angles.trnsy(r.rotation() + offsetPos, offsetX, offsetY);
rotation = r.rotation() + offsetRot;
}else{
x = parent.getX() + offsetX;
y = parent.getY() + offsetY;
}
} }
} }
} }

View File

@@ -10,7 +10,7 @@ import static mindustry.Vars.*;
public class CacheLayer{ public class CacheLayer{
public static CacheLayer public static CacheLayer
water, mud, tar, slag, space, normal, walls; water, mud, cryofluid, tar, slag, space, normal, walls;
public static CacheLayer[] all = {}; public static CacheLayer[] all = {};
@@ -37,6 +37,7 @@ public class CacheLayer{
mud = new ShaderLayer(Shaders.mud), mud = new ShaderLayer(Shaders.mud),
tar = new ShaderLayer(Shaders.tar), tar = new ShaderLayer(Shaders.tar),
slag = new ShaderLayer(Shaders.slag), slag = new ShaderLayer(Shaders.slag),
cryofluid = new ShaderLayer(Shaders.cryofluid),
space = new ShaderLayer(Shaders.space), space = new ShaderLayer(Shaders.space),
normal = new CacheLayer(), normal = new CacheLayer(),
walls = new CacheLayer() walls = new CacheLayer()

View File

@@ -21,7 +21,7 @@ public class Shaders{
public static UnitBuildShader build; public static UnitBuildShader build;
public static DarknessShader darkness; public static DarknessShader darkness;
public static LightShader light; public static LightShader light;
public static SurfaceShader water, mud, tar, slag, space, caustics; public static SurfaceShader water, mud, tar, slag, cryofluid, space, caustics;
public static PlanetShader planet; public static PlanetShader planet;
public static PlanetGridShader planetGrid; public static PlanetGridShader planetGrid;
public static AtmosphereShader atmosphere; public static AtmosphereShader atmosphere;
@@ -47,6 +47,7 @@ public class Shaders{
mud = new SurfaceShader("mud"); mud = new SurfaceShader("mud");
tar = new SurfaceShader("tar"); tar = new SurfaceShader("tar");
slag = new SurfaceShader("slag"); slag = new SurfaceShader("slag");
cryofluid = new SurfaceShader("cryofluid");
space = new SpaceShader("space"); space = new SpaceShader("space");
//caustics = new SurfaceShader("caustics"){ //caustics = new SurfaceShader("caustics"){
// @Override // @Override

View File

@@ -17,7 +17,7 @@ def doAntialias = !project.hasProperty("disableAntialias")
def colorMap = new IntMap<List<Color>>(), colorIndexMap = new IntIntMap() def colorMap = new IntMap<List<Color>>(), colorIndexMap = new IntIntMap()
//on my machine, I have a native Nim AA implementation that is ~10x faster //on my machine, I have a native Nim AA implementation that is ~10x faster
//it's not compiled for other platforms so they don't get it //it's not compiled for other platforms so they don't get it
def useFastAA = System.getProperty("user.name") == "anuke" def useFastAA = project.hasProperty("fastAA") || System.getProperty("user.name") == "anuke"
def transformColors = { List<List<String>> list -> def transformColors = { List<List<String>> list ->
list.each{ colors -> list.each{ colors ->
@@ -281,4 +281,4 @@ task updateScripts(dependsOn: classes, type: JavaExec){
classpath = sourceSets.main.runtimeClasspath classpath = sourceSets.main.runtimeClasspath
standardInput = System.in standardInput = System.in
workingDir = "../" workingDir = "../"
} }