SomeonesShade 4122a9d51d Reactivity and Assorted Changes (#11245)
* Implemented turretDepositCooldown (1)

* Implemented activationTime for Turrets (1)

* activationTime for Turrets Fixes (2)
readSync() line isn't needed,
Overdrive should not make the cooldown go faster, it stays as is unless there is a good argument against it.

* activationTime (3): Descriptions and SetBars()
Updated arc and lancer descriptions.
Added setBars() stuff for clearness.

* turretDepositCooldown (2):
now depositCooldown and is now on a per turret basis if needed... will potentially need further iteration

* turretDepositCooldown (3): made it opt in
added an internal gamerule (long name, need to reduce it later) to enable the balance (oriented for pvp)
depositCooldown = 0 by def
added depositCooldown entries in Blocks.java

* activationTime (4): Minor Adjustments to UI

* activitationTime (5): Implemented drawInactive() and inactiveColo, and arc/lancer sprite
Thinking if I should set the sprites to be white, then use Color.gray...

* turretDepositCooldown (4): Made the cooldown only affect turrets

* Reload Turret Coolant Fixes (1)
Made coolant and overdrive effects not get chopped off from Math.min when its too high

* activationTime (6): activationTime is now at the Base Turret Level
Also implemented the code for TractorBeamTurret thanks to the code changes
Parallax can have the feature if needed for future balancing.
Hopefully nothing was screwed up in the transition...

* Counterbalance (1): Swarmer 8 -> 7 firerate nerf, and Cyclone 7.5 -> 6 firerate nerf [First Attempt]

* Reload Turret Coolant Fixes (2): added a buffer if the excessReload exceeds more than 2 reloads.

* Reload Turret Coolant Fixes (3): hotfix, the buffer actually works this time

* turretDepositCooldown (5): Made the cooldown seperate from itemDepositCooldown

* Implemented armorMultiplier (1)

* fixing a merge

* (AT:7a) Reverted Saving Capability

* (AT:7b) Removed activation timer from lancer and arc as well as sprites

* (AT:7c) Removed visuals for activation timer
will be reimplemented via a greyscale effect if returned rather than via sprites

* (AT:7aa) oops

* Made the default value 0 when placed - Activation Timer (8)

* (depositCooldown : 6) Moved depositCooldown to Blocks.java, cleaned up canDepositItem(), removed enableTurretDepositCooldown

* armorMultiplier (2) - oops, made armorMultipler = 0 correspond to 100% armorPiercing

* Update core/src/mindustry/input/InputHandler.java

* Reload Turret Coolant Fixes (4): A bit too high

---------

Co-authored-by: Anuken <arnukren@gmail.com>
2025-12-31 14:39:22 -05:00
2025-04-14 11:38:31 -04:00
2025-12-11 13:29:32 -05:00
2025-12-09 00:22:48 -05:00
2025-12-22 18:34:25 -05:00
2025-12-19 12:56:13 -05:00
2025-04-08 01:23:58 -04:00
2025-12-23 21:28:13 -05:00
arc
2025-12-24 11:54:32 -05:00
2021-06-15 19:29:12 -04:00
2021-06-15 19:29:12 -04:00
2020-12-04 10:03:54 -05:00
2025-10-26 13:55:13 -04:00
2025-08-09 12:16:45 -04:00
2023-10-31 19:37:48 -04:00
2025-02-02 18:10:15 -05:00
2021-10-10 13:47:44 -04:00

Logo

Build Status Discord

The automation tower defense RTS, written in Java.

Trello Board
Wiki
Javadoc

Contributing

See CONTRIBUTING for general code style and PR guidelines.

If you are a first-time contributor looking for features to implement or bugs to fix, see the issues tagged with 'candidate' in the Mindustry-Suggestions repostiory.

Building

Bleeding-edge builds are generated automatically for every commit. You can see them here.

If you'd rather compile on your own, follow these instructions. First, make sure you have JDK 17 installed. Other JDK versions will not work. Open a terminal in the Mindustry directory and run the following commands:

Windows

Running: gradlew desktop:run
Building: gradlew desktop:dist
Sprite Packing: gradlew tools:pack

Linux/Mac OS

Running: ./gradlew desktop:run
Building: ./gradlew desktop:dist
Sprite Packing: ./gradlew tools:pack

Server

Server builds are bundled with each released build (in Releases). If you'd rather compile on your own, replace 'desktop' with 'server', e.g. gradlew server:dist.

Android

  1. Install the Android SDK here. Make sure you're downloading the "Command line tools only", as Android Studio is not required.
  2. In the unzipped Android SDK folder, find the cmdline-tools directory. Then create a folder inside of it called latest and put all of its contents into the newly created folder.
  3. In the same directory run the command sdkmanager --licenses (or ./sdkmanager --licenses if on linux/mac)
  4. Set the ANDROID_HOME environment variable to point to your unzipped Android SDK directory.
  5. Enable developer mode on your device/emulator. If you are on testing on a phone you can follow these instructions, otherwise you need to google how to enable your emulator's developer mode specifically.
  6. Run gradlew android:assembleDebug (or ./gradlew if on linux/mac). This will create an unsigned APK in android/build/outputs/apk.

To debug the application on a connected device/emulator, run gradlew android:installDebug android:run.

Troubleshooting

Permission Denied

If the terminal returns Permission denied or Command not found on Mac/Linux, run chmod +x ./gradlew before running ./gradlew. This is a one-time procedure.

Where is the mindustry.gen package?

As the name implies, mindustry.gen is generated at build time based on other code. You will not find source code for this package in the repository, and it should not be edited by hand.

The following is a non-exhaustive list of the "source" of generated code in mindustry.gen:

  • Call, *Packet classes: Generated from methods marked with @Remote.
  • All entity classes (Unit, EffectState, Posc, etc): Generated from component classes in the mindustry.entities.comp package, and combined using definitions in mindustry.content.UnitTypes.
  • Sounds, Musics, Tex, Icon, etc: Generated based on files in the respective asset folders.

Gradle may take up to several minutes to download files. Be patient.
After building, the output .JAR file should be in /desktop/build/libs/Mindustry.jar for desktop builds, and in /server/build/libs/server-release.jar for server builds.

Feature Requests

Post feature requests and feedback here.

Downloads

Languages
Java 99.3%
GLSL 0.4%
JavaScript 0.2%