Merge branch 'master' of https://github.com/Anuken/Mindustry into v105

This commit is contained in:
Petr Gašparík
2020-07-13 10:42:30 +02:00
485 changed files with 11639 additions and 9071 deletions

Binary file not shown.

View File

@@ -106,6 +106,7 @@ mods.guide = Modding Guide
mods.report = Report Bug
mods.openfolder = Open Folder
mods.reload = Reload
mods.reloadexit = The game will now exit, to reload mods.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Enabled
mod.disabled = [scarlet]Disabled
@@ -120,10 +121,11 @@ mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affec
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required
mod.reloadrequired = [scarlet]Restart Required
mod.import = Import Mod
mod.import.file = Import File
mod.import.github = Import From GitHub
mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = This mod will be deleted.
mod.author = [lightgray]Author:[] {0}
@@ -196,8 +198,8 @@ server.admins.none = No admins found!
server.add = Add Server
server.delete = Are you sure you want to delete this server?
server.edit = Edit Server
server.outdated = [crimson]Outdated Server![]
server.outdated.client = [crimson]Outdated Client![]
server.outdated = [scarlet]Outdated Server![]
server.outdated.client = [scarlet]Outdated Client![]
server.version = [gray]v{0} {1}
server.custombuild = [accent]Custom Build
confirmban = Are you sure you want to ban "{0}[white]"?
@@ -219,7 +221,7 @@ connecting.data = [accent]Loading world data...
server.port = Port:
server.addressinuse = Address already in use!
server.invalidport = Invalid port number!
server.error = [crimson]Error hosting server.
server.error = [scarlet]Error hosting server.
save.new = New Save
save.overwrite = Are you sure you want to overwrite\nthis save slot?
overwrite = Overwrite
@@ -229,8 +231,8 @@ save.delete.confirm = Are you sure you want to delete this save?
save.delete = Delete
save.export = Export Save
save.import.invalid = [accent]This save is invalid!
save.import.fail = [crimson]Failed to import save: [accent]{0}
save.export.fail = [crimson]Failed to export save: [accent]{0}
save.import.fail = [scarlet]Failed to import save: [accent]{0}
save.export.fail = [scarlet]Failed to export save: [accent]{0}
save.import = Import Save
save.newslot = Save name:
save.rename = Rename
@@ -460,7 +462,9 @@ requirement.core = Destroy Enemy Core in {0}
requirement.unlock = Unlock {0}
resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
#TODO fix/remove this
launch = < LAUNCH >
launch.text = Launch
launch.title = Launch Successful
launch.next = [lightgray]next opportunity at wave {0}
launch.unable2 = [scarlet]Unable to LAUNCH.[]
@@ -468,13 +472,14 @@ launch.confirm = This will launch all resources in your core.\nYou will not be a
launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
uncover = Uncover
configure = Configure Loadout
#TODO
loadout = Loadout
resources = Resources
bannedblocks = Banned Blocks
addall = Add All
configure.locked = [lightgray]Unlock configuring loadout: {0}.
configure.invalid = Amount must be a number between 0 and {0}.
zone.unlocked = [lightgray]{0} unlocked.
zone.requirement.complete = Requirement for {0} completed:[lightgray]\n{1}
zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
zone.resources = [lightgray]Resources Detected:
zone.objective = [lightgray]Objective: [accent]{0}
zone.objective.survival = Survive
@@ -482,7 +487,7 @@ zone.objective.attack = Destroy Enemy Core
add = Add...
boss.health = Boss Health
connectfail = [crimson]Connection error:\n\n[accent]{0}
connectfail = [scarlet]Connection error:\n\n[accent]{0}
error.unreachable = Server unreachable.\nIs the address spelled correctly?
error.invalidaddress = Invalid address.
error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct!
@@ -541,7 +546,7 @@ unplaceable.sectorcaptured = [scarlet]Requires captured sector
yes = Yes
no = No
info.title = Info
error.title = [crimson]An error has occured
error.title = [scarlet]An error has occured
error.crashtitle = An error has occured
unit.nobuild = [scarlet]Unit can't build
blocks.input = Input
@@ -583,6 +588,8 @@ blocks.reload = Shots/Second
blocks.ammo = Ammo
bar.drilltierreq = Better Drill Required
bar.noresources = Missing Resources
bar.corereq = Core Base Required
bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Efficiency: {0}%
@@ -664,7 +671,6 @@ setting.effects.name = Display Effects
setting.destroyedblocks.name = Display Destroyed Blocks
setting.blockstatus.name = Display Block Status
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Controller Sensitivity
setting.saveinterval.name = Save Interval
setting.seconds = {0} seconds
@@ -678,6 +684,7 @@ setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate
setting.minimap.name = Show Minimap
setting.coreitems.name = Display Core Items (WIP)
setting.position.name = Show Player Position
setting.musicvol.name = Music Volume
setting.atmosphere.name = Show Planet Atmosphere
@@ -703,6 +710,7 @@ keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only
category.general.name = General
category.view.name = View
category.multiplayer.name = Multiplayer
category.blocks.name = Block Select
command.attack = Attack
command.rally = Rally
command.retreat = Retreat
@@ -827,7 +835,6 @@ liquid.water.name = Water
liquid.slag.name = Slag
liquid.oil.name = Oil
liquid.cryofluid.name = Cryofluid
item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]Explosiveness: {0}%
item.flammability = [lightgray]Flammability: {0}%
item.radioactivity = [lightgray]Radioactivity: {0}%
@@ -1046,21 +1053,7 @@ team.orange.name = orange
team.derelict.name = derelict
team.green.name = green
team.purple.name = purple
unit.spirit.name = Spirit Repair Drone
unit.draug.name = Draug Miner Drone
unit.phantom.name = Phantom Builder Drone
unit.dagger.name = Dagger
unit.crawler.name = Crawler
unit.titan.name = Titan
unit.ghoul.name = Ghoul Bomber
unit.wraith.name = Wraith Fighter
unit.fortress.name = Fortress
unit.revenant.name = Revenant
unit.eruptor.name = Eruptor
unit.chaos-array.name = Chaos Array
unit.eradicator.name = Eradicator
unit.lich.name = Lich
unit.reaper.name = Reaper
tutorial.next = [lightgray]<Tap to continue>
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
@@ -1103,17 +1096,7 @@ liquid.water.description = The most useful liquid. Commonly used for cooling mac
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon.
liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant.
unit.draug.description = A primitive mining drone. Cheap to produce. Expendable. Automatically mines copper and lead in the vicinity. Delivers mined resources to the closest core.
unit.spirit.description = A modified draug drone, designed for repair instead of mining. Automatically fixes any damaged blocks in the area.
unit.phantom.description = An advanced drone unit. Follows users. Assists in block construction. Rebuilds destroyed blocks.
unit.dagger.description = The most basic ground mech. Cheap to produce. Overwhelming when used in swarms.
unit.crawler.description = A ground unit consisting of a stripped-down frame with high explosives strapped on top. Not particular durable. Explodes on contact with enemies.
unit.titan.description = An advanced, armored ground unit. Attacks both ground and air targets. Equipped with two miniature Scorch-class flamethrowers.
unit.fortress.description = A heavy artillery mech. Equipped with two modified Hail-type cannons for long-range assault on enemy structures and units.
unit.eruptor.description = A heavy mech designed to take down structures. Fires a stream of slag at enemy fortifications, melting them and setting volatiles on fire.
unit.wraith.description = A fast, hit-and-run interceptor unit. Targets power generators.
unit.ghoul.description = A heavy carpet bomber. Rips through enemy structures, targeting critical infrastructure.
unit.revenant.description = A heavy, hovering missile array.
block.message.description = Stores a message. Used for communication between allies.
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.

View File

@@ -252,3 +252,4 @@
63492=exponential-reconstructor|block-exponential-reconstructor-medium
63491=tetrative-reconstructor|block-tetrative-reconstructor-medium
63490=resupply-point|block-resupply-point-medium
63489=parallax|block-parallax-medium

Binary file not shown.

View File

@@ -24,72 +24,73 @@ const extend = function(classType, params){
const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer}))
Call = Packages.mindustry.gen.Call
importPackage(Packages.arc.scene.ui)
importPackage(Packages.mindustry.editor)
importPackage(Packages.mindustry.entities.comp)
importPackage(Packages.mindustry.graphics.g3d)
importPackage(Packages.mindustry.world.blocks.sandbox)
importPackage(Packages.mindustry.game)
importPackage(Packages.mindustry.ui.dialogs)
importPackage(Packages.mindustry.ui.fragments)
importPackage(Packages.mindustry.world.blocks.environment)
importPackage(Packages.arc.math)
importPackage(Packages.mindustry.world.blocks.power)
importPackage(Packages.mindustry.core)
importPackage(Packages.mindustry.game)
importPackage(Packages.arc.scene)
importPackage(Packages.mindustry.maps.filters)
importPackage(Packages.mindustry.gen)
importPackage(Packages.arc.struct)
importPackage(Packages.mindustry.maps)
importPackage(Packages.mindustry.world.meta)
importPackage(Packages.arc.func)
importPackage(Packages.arc.math)
importPackage(Packages.mindustry.type)
importPackage(Packages.mindustry.world.blocks.environment)
importPackage(Packages.arc.scene.actions)
importPackage(Packages.mindustry.ctype)
importPackage(Packages.arc.math.geom)
importPackage(Packages.mindustry.world.consumers)
importPackage(Packages.mindustry.graphics)
importPackage(Packages.arc.graphics)
importPackage(Packages.mindustry.world.blocks.units)
importPackage(Packages.mindustry.world.blocks.distribution)
importPackage(Packages.mindustry.world.blocks)
importPackage(Packages.mindustry.ui)
importPackage(Packages.mindustry.core)
importPackage(Packages.arc.scene.ui)
importPackage(Packages.arc.scene.ui.layout)
importPackage(Packages.mindustry.entities.comp)
importPackage(Packages.mindustry.ui.fragments)
importPackage(Packages.mindustry.entities)
importPackage(Packages.mindustry.ai.formations)
importPackage(Packages.arc.scene.utils)
importPackage(Packages.mindustry.world.blocks.defense)
importPackage(Packages.mindustry.ai.types)
importPackage(Packages.mindustry.gen)
importPackage(Packages.mindustry.world.blocks.distribution)
importPackage(Packages.mindustry.world.meta)
importPackage(Packages.mindustry.maps.filters)
importPackage(Packages.mindustry.logic)
importPackage(Packages.arc.math.geom)
importPackage(Packages.mindustry.graphics)
importPackage(Packages.mindustry.entities.bullet)
importPackage(Packages.mindustry.world.meta.values)
importPackage(Packages.mindustry.input)
importPackage(Packages.mindustry.entities)
importPackage(Packages.arc.func)
importPackage(Packages.mindustry.world.blocks.experimental)
importPackage(Packages.mindustry.world.consumers)
importPackage(Packages.mindustry.ai)
importPackage(Packages.mindustry.world.blocks.legacy)
importPackage(Packages.mindustry.world.modules)
importPackage(Packages.mindustry.async)
importPackage(Packages.mindustry.content)
importPackage(Packages.arc.graphics.g2d)
importPackage(Packages.mindustry.ui)
importPackage(Packages.mindustry.ui.layout)
importPackage(Packages.mindustry.entities.units)
importPackage(Packages.mindustry.type)
importPackage(Packages.arc.scene)
importPackage(Packages.mindustry.world.blocks.production)
importPackage(Packages.mindustry)
importPackage(Packages.mindustry.world.blocks.storage)
importPackage(Packages.mindustry.world)
importPackage(Packages.mindustry.world.blocks.units)
importPackage(Packages.arc.scene.event)
importPackage(Packages.arc.scene.ui.layout)
importPackage(Packages.mindustry.world.blocks.defense.turrets)
importPackage(Packages.arc.scene.style)
importPackage(Packages.arc.graphics)
importPackage(Packages.mindustry.world.blocks.liquid)
importPackage(Packages.mindustry.world.blocks)
importPackage(Packages.mindustry.audio)
importPackage(Packages.mindustry.ai.formations.patterns)
importPackage(Packages.mindustry.world.blocks.payloads)
importPackage(Packages.mindustry.maps.planet)
importPackage(Packages.arc.util)
importPackage(Packages.mindustry.world.producers)
importPackage(Packages.arc)
importPackage(Packages.mindustry.maps.generators)
importPackage(Packages.mindustry.world.blocks.campaign)
importPackage(Packages.mindustry.content)
importPackage(Packages.mindustry.world.blocks.storage)
importPackage(Packages.mindustry.world.meta.values)
importPackage(Packages.mindustry.world)
importPackage(Packages.mindustry.world.blocks.experimental)
importPackage(Packages.arc.scene.event)
importPackage(Packages.mindustry.graphics.g3d)
importPackage(Packages.mindustry.ui.dialogs)
importPackage(Packages.mindustry.world.blocks.defense)
importPackage(Packages.mindustry.maps)
importPackage(Packages.mindustry.world.blocks.legacy)
importPackage(Packages.mindustry.ctype)
importPackage(Packages.mindustry.world.blocks.defense.turrets)
importPackage(Packages.mindustry.world.draw)
importPackage(Packages.mindustry.editor)
importPackage(Packages.mindustry.entities.bullet)
importPackage(Packages.mindustry.logic)
importPackage(Packages.arc.scene.style)
importPackage(Packages.mindustry.audio)
importPackage(Packages.mindustry.entities.units)
importPackage(Packages.mindustry.world.blocks.production)
importPackage(Packages.mindustry.ai.formations.patterns)
importPackage(Packages.mindustry.input)
importPackage(Packages.arc.util)
importPackage(Packages.mindustry.world.blocks.sandbox)
importPackage(Packages.mindustry.ai)
importPackage(Packages.mindustry.async)
importPackage(Packages.mindustry.world.blocks.liquid)
importPackage(Packages.arc)
importPackage(Packages.mindustry.ai.types)
importPackage(Packages.mindustry.world.modules)
importPackage(Packages.arc.graphics.g2d)
importPackage(Packages.mindustry.ui.layout)
importPackage(Packages.mindustry.maps.generators)
importPackage(Packages.mindustry.world.blocks.payloads)
importPackage(Packages.mindustry.world.producers)
importPackage(Packages.mindustry)
importPackage(Packages.mindustry.maps.planet)
const PlayerIpUnbanEvent = Packages.mindustry.game.EventType.PlayerIpUnbanEvent
const PlayerIpBanEvent = Packages.mindustry.game.EventType.PlayerIpBanEvent
const PlayerUnbanEvent = Packages.mindustry.game.EventType.PlayerUnbanEvent
@@ -107,7 +108,7 @@ const BlockBuildBeginEvent = Packages.mindustry.game.EventType.BlockBuildBeginEv
const ResearchEvent = Packages.mindustry.game.EventType.ResearchEvent
const UnlockEvent = Packages.mindustry.game.EventType.UnlockEvent
const StateChangeEvent = Packages.mindustry.game.EventType.StateChangeEvent
const TileChangeEvent = Packages.mindustry.game.EventType.TileChangeEvent
const BuildinghangeEvent = Packages.mindustry.game.EventType.BuildinghangeEvent
const GameOverEvent = Packages.mindustry.game.EventType.GameOverEvent
const TapConfigEvent = Packages.mindustry.game.EventType.TapConfigEvent
const TapEvent = Packages.mindustry.game.EventType.TapEvent
@@ -129,7 +130,6 @@ const WaveEvent = Packages.mindustry.game.EventType.WaveEvent
const ResetEvent = Packages.mindustry.game.EventType.ResetEvent
const PlayEvent = Packages.mindustry.game.EventType.PlayEvent
const DisposeEvent = Packages.mindustry.game.EventType.DisposeEvent
const ContentReloadEvent = Packages.mindustry.game.EventType.ContentReloadEvent
const ServerLoadEvent = Packages.mindustry.game.EventType.ServerLoadEvent
const ClientCreateEvent = Packages.mindustry.game.EventType.ClientCreateEvent
const SaveLoadEvent = Packages.mindustry.game.EventType.SaveLoadEvent
@@ -139,5 +139,4 @@ const ResizeEvent = Packages.mindustry.game.EventType.ResizeEvent
const LaunchEvent = Packages.mindustry.game.EventType.LaunchEvent
const LoseEvent = Packages.mindustry.game.EventType.LoseEvent
const WinEvent = Packages.mindustry.game.EventType.WinEvent
const TurnEvent = Packages.mindustry.game.EventType.TurnEvent
const Trigger = Packages.mindustry.game.EventType.Trigger

View File

@@ -1,4 +1,3 @@
uniform sampler2D u_texture;
varying vec2 v_texCoords;

View File

@@ -1,17 +1,14 @@
#define HIGHP
#define MAX_HITS 64
#define HIT_RADIUS 12.0
#define ALPHA 0.18
#define thickness 1.0
#define step 2.0
uniform sampler2D u_texture;
uniform vec2 u_texsize;
uniform vec2 u_invsize;
uniform float u_time;
uniform float u_dp;
uniform vec2 u_offset;
uniform vec4 u_shieldcolor;
varying vec2 v_texCoords;
@@ -20,20 +17,19 @@ void main(){
vec2 coords = (T * u_texsize) + u_offset;
T += vec2(sin(coords.y / 3.0 + u_time / 20.0), sin(coords.x / 3.0 + u_time / 20.0)) / u_texsize;
float si = sin(u_time / 20.0) / 8.0;
vec4 color = texture2D(u_texture, T);
vec2 v = vec2(1.0/u_texsize.x, 1.0/u_texsize.y);
vec2 v = u_invsize;
if(texture2D(u_texture, T).a < 0.9 &&
(texture2D(u_texture, T + vec2(0, step) * v).a > 0.0 || texture2D(u_texture, T + vec2(0, -step) * v).a > 0.0 ||
texture2D(u_texture, T + vec2(step, 0) * v).a > 0.0 || texture2D(u_texture, T + vec2(-step, 0) * v).a > 0.0)){
vec4 maxed = max(max(max(texture2D(u_texture, T + vec2(0, step) * v), texture2D(u_texture, T + vec2(0, -step) * v)), texture2D(u_texture, T + vec2(step, 0) * v)), texture2D(u_texture, T + vec2(-step, 0) * v));
gl_FragColor = mix(u_shieldcolor, vec4(1.0), si);
if(texture2D(u_texture, T).a < 0.9 && maxed.a > 0.9){
gl_FragColor = vec4(maxed.rgb, maxed.a * 100.0);
}else{
if(color.a > 0.0){
if(mod(coords.x / u_dp + coords.y / u_dp + sin(floor(coords.x / u_dp) / 5.0) * 3.0 + sin(floor(coords.y / u_dp) / 5.0) * 3.0 + u_time / 4.0, 10.0) < 2.0){
if(mod(coords.x / u_dp + coords.y / u_dp + sin(coords.x / u_dp / 5.0) * 3.0 + sin(coords.y / u_dp / 5.0) * 3.0 + u_time / 4.0, 10.0) < 2.0){
color *= 1.65;
}

View File

@@ -13,7 +13,7 @@ const float mth = 7.0;
void main(){
vec2 c = v_texCoords.xy;
vec2 c = v_texCoords;
vec2 v = vec2(1.0/u_resolution.x, 1.0/u_resolution.y);
vec2 coords = vec2(c.x / v.x + u_campos.x, c.y / v.y + u_campos.y);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

After

Width:  |  Height:  |  Size: 780 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 KiB

After

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 KiB

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 376 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 934 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 982 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB