Compare commits

...
1100 Commits
Author SHA1 Message Date
Anuken 20032def7e Fixed player turning white before drowning on multiplayer 2018-11-08 16:30:56 -05:00
Anuken 94706460c0 Merge remote-tracking branch 'origin/master' 2018-11-08 14:53:43 -05:00
Anuken b7506229f8 Minor bugfixes 2018-11-08 14:53:18 -05:00
elmenda452 58c6df3537 Update bundle_es.properties (#317)
Translated the description of nearly everything which wasn't translated and made some changes. I don't really mind if someday these get reset.
2018-11-08 14:46:39 -05:00
Timmeey86 235a1f36ec Prepared/Fixed translation files for crash reported in #translations (#318) 2018-11-08 14:46:12 -05:00
키에르 b53821976e Update bundle_ko.properties (#316)
* Update bundle_ko.properties

* Fix typo
2018-11-08 10:20:30 -05:00
Anuken 4355881fb2 Fixed save files not working 2018-11-08 09:03:42 -05:00
Anuken cf50d558ba Fixed many various things 2018-11-07 22:37:34 -05:00
Anuken 7488dc3ebb Fixed access violation crash 2018-11-07 21:49:26 -05:00
Anuken b449847ad1 Reverted to power system that wasn't broken 2018-11-07 20:30:02 -05:00
Anuken 9785745384 Fixed many multiplayer bugs 2018-11-07 20:24:38 -05:00
Anuken 56ffa7905e Fixed instant-win wave missions / Fixed units clipping off screen 2018-11-07 19:58:53 -05:00
Anuken 216433aa2d New alpha drone mechanics 2018-11-07 19:34:31 -05:00
Anuken 122fbbed22 Added a 'tutorial' / Bugfixes 2018-11-07 19:23:40 -05:00
Anuken 042c671bd4 Difficulty balance / Better map display / UI fixes 2018-11-07 18:51:27 -05:00
Timmeey86 38fdc11917 Adjustable core position (#307)
* Made starting core position configurable and fixed tutorial sector core position

* Refactored classes to use a public int interface and a GridPoint2 as internal storage

* Battle missions now spawn the core at 50, 50 again

* Default player cores are now created at the first spawnpoint

* Manually fixed formatting which was not caught by auto formatter
2018-11-07 18:14:01 -05:00
Timmeey86 2f4730a9c6 Fixed unit/second translations since (#315) 2018-11-07 18:12:01 -05:00
Anuken 3759d32c89 Improved map previews 2018-11-07 16:56:47 -05:00
Timmeey86 93c2ca8df1 Reworked and extended german translation (#314)
* Reworked existing german translation

* Translated all block descriptions

* Replaced orange by accent highlighting
2018-11-07 16:45:57 -05:00
Anuken 3c70681537 Merge remote-tracking branch 'origin/master' 2018-11-07 15:30:58 -05:00
Anuken 0ce08319e7 Removed desktop top menu / Rebound pause back to space 2018-11-07 15:30:42 -05:00
Timmeey86 17e0489164 Improved descriptions of Container, Vault and Mend Projector (#312) 2018-11-07 14:09:26 -05:00
Anuken 7953cc416b Fixed item bridge input / Fixed sandbox map name/desc 2018-11-07 13:50:39 -05:00
Valentin Sonin a670ac0aea upd bundle_ru.properties (#310)
add lines 768, 769,770
2018-11-07 12:41:30 -05:00
elmenda452 ef30018008 Update bundle_es.properties (#311)
Translated the entire tutorial, and a few more things.
2018-11-07 12:41:19 -05:00
elmenda452 66810c8b75 Update bundle_es.properties (#309)
Just translating a few things.
2018-11-07 00:11:53 -05:00
Anuken 2bba55ebd5 Clearer nuclear reactor output 2018-11-07 00:07:41 -05:00
Anuken b977ae4d3b Updated bundles / Unbroke wave table 2018-11-06 23:56:11 -05:00
Anuken d4f5e854c5 Misc. cleanup of UI / Removed 'font scale' var / Removed [orange] 2018-11-06 23:47:23 -05:00
Anuken 837f621633 Merge branch 'freetype' of https://github.com/Anuken/Mindustry 2018-11-06 21:01:21 -05:00
Anuken a781b4a387 Updated uCore 2018-11-06 21:00:51 -05:00
Anuken a73a75a7f8 Cyrillic, chinese, korean fonts 2018-11-06 20:55:18 -05:00
Anuken 17d1db913f Removed extra fonts in preparation for ttf conversion 2018-11-06 15:52:31 -05:00
Anuken a924509e92 New font file 2018-11-06 13:09:39 -05:00
Anuken 04b4321ea1 New font 2018-11-06 12:55:13 -05:00
키에르 1f9ebc7295 Update bundle_ko.properties (#308) 2018-11-06 11:11:56 -05:00
Anuken 6d88111dfc Unbroke pathfinding 2018-11-05 21:43:26 -05:00
Anuken 184e52b4ec Removed waterlogged sectors 2018-11-05 21:04:04 -05:00
Anuken 2a3cc3d88c Fixed units moving faster at high FPS 2018-11-05 16:56:35 -05:00
Anuken ffa1aae27c Removed shadow/world padding 2018-11-05 13:49:31 -05:00
Anuken 7cd842df19 Disabled tutorial until further notice 2018-11-05 13:09:04 -05:00
Anuken e399e4960c Broke tutorial 2018-11-05 10:28:18 -05:00
Anuken 5c193a47eb Item image fix / Overflow/router reload fix 2018-11-05 09:02:45 -05:00
Anuken b63c02cb10 New UI palette 2018-11-04 19:42:18 -05:00
Anuken 09418f1a5d Lakes / Fixed water placement 2018-11-04 18:52:51 -05:00
Anuken fa4491340a More avoidance 2018-11-04 17:10:09 -05:00
Anuken 192814650d less (less) terrible physics 2018-11-04 15:49:23 -05:00
Anuken 5f1addc54d Local crash saving 2018-11-04 09:57:12 -05:00
Anuken 9ffc8c6800 Merge remote-tracking branch 'origin/master' 2018-11-04 09:32:47 -05:00
Anuken 64cd8084ea Fixed some sector bugs 2018-11-04 09:32:43 -05:00
키에르 2e6c9d408c Update (#304)
* Update bundle_ko.properties

* remove text.unit.none
2018-11-04 09:25:10 -05:00
키에르 f3bea49f61 'Unkown' (#302) 2018-11-04 09:22:39 -05:00
Timmeey86 48fdae754e Fixed a bug where sector buttons would not be updated after abandoning it (#301) 2018-11-04 09:22:15 -05:00
Anuken 64f2ee67b2 New sector dialog done 2018-11-04 00:09:25 -04:00
Anuken 19d34779a0 New sector dialog done 2018-11-04 00:08:06 -04:00
Anuken 76a6a0cf75 Fixed crash when trying to open non-existent map 2018-11-03 09:39:59 -04:00
Anuken da47d97cd0 Removed unused descriptions / Re-ordered all files 2018-11-03 09:28:47 -04:00
Anuken f59441005e New sorted update script 2018-11-03 09:17:03 -04:00
Anuken e30347a11f Fixed world data not loading on mobile servers 2018-11-03 09:00:21 -04:00
Anuken 8ac079fb72 Fixed local servers sometimes not showing up 2018-11-03 08:53:59 -04:00
Anuken 4295f08a84 Fixed linked tiles sometimes being null 2018-11-02 21:40:19 -04:00
Anuken bd8eb97d46 Merge remote-tracking branch 'origin/master' 2018-11-02 20:57:17 -04:00
Anuken 329f656c40 Input fix 2018-11-02 20:57:13 -04:00
Anuken f2c7a26ce0 Sector edges 2018-11-02 20:53:28 -04:00
Anuken 930e25e64a Sector edges 2018-11-02 20:53:08 -04:00
Timmeey86 963269a685 Added descriptions for all unlockables which didn't have them (#297)
* Added english descriptions for walls and doors

* Added english descriptions for walls and doors

* Added descriptions for projectors, mine and turrets

* Added descriptions for transport blocks and two smelters

* Added descriptions for crafters

* Added descriptions for power-related items and containers

* Added descriptions for drills and extractors

* Added descriptions for ship/mech pads

* Added/updated unit/factory descriptions

* Added english descriptions for walls and doors

* Added descriptions for projectors, mine and turrets

* Added descriptions for transport blocks and two smelters

* Added descriptions for crafters

* Added descriptions for power-related items and containers

* Added descriptions for drills and extractors

* Added descriptions for ship/mech pads

* Added/updated unit/factory descriptions

* Added descriptions for liquids and related blocks.

* Updated descriptions based on discord discussion.

* Updated descriptions as requested by Anuken

* Updated shock mine description
2018-11-02 19:49:56 -04:00
Anuken de23ef5d35 Fixed crash 2018-11-02 19:46:56 -04:00
Anuken 208ae6183c Merge 2018-11-02 19:45:31 -04:00
Anuken 761ae4b816 Mission icons 2018-11-02 19:38:08 -04:00
Anuken ff308641e1 Command center label style cleanup 2018-11-02 17:50:58 -04:00
Sonnicon a2094ddf75 Command Center mode label. (#296) 2018-11-02 17:47:42 -04:00
Anuken 0391ed3e63 Icons of missions 2018-11-02 10:35:29 -04:00
Timmeey86 b6b3997498 Fixed false friend translation (#295) 2018-11-02 10:30:59 -04:00
Anuken 9f77c0c9b7 Added Graphics.begin/endClip() 2018-11-02 09:19:51 -04:00
키에르 dc4812a86e Update bundle_ko.properties (#294) 2018-11-02 08:46:43 -04:00
Baramos666 fc83b0d95b Update bundle_fr.properties (#293) 2018-11-01 20:12:41 -04:00
Sonnicon 8e70568e32 Made placement of pumps consistent across different placements. (#292) 2018-11-01 19:49:05 -04:00
Anuken f0e3a3a30c Crash fix 2018-11-01 19:47:40 -04:00
Anuken cf44efa02e Global drone repair / Fixed item bridge 2018-11-01 19:45:13 -04:00
Anuken ddc59dfb97 Merge remote-tracking branch 'origin/master' 2018-11-01 17:56:47 -04:00
Anuken ef0a3396d7 Automatic consume fragment view 2018-11-01 17:56:42 -04:00
Anuken 8bf68aa020 Cleanup 2018-11-01 09:09:12 -04:00
Timmeey86 02a90856ff Info Pages will now display tool tips for any item icons (#289)
* All block info dialogs will now display tool tips for the liquids and items which are required

* Reverted accidental dependency addition

* Drills will now display tool tips as well (except cultivator)
2018-10-31 21:29:15 -04:00
Timmeey86 8716695d4e Fixed a crash which could occur when unconstructing environment (#290) 2018-10-31 21:13:51 -04:00
Anuken 9a1bb69cd8 Cleaned up pause menu mess / Added sector links 2018-10-31 17:10:00 -04:00
Anuken 6caad0daf6 Merge remote-tracking branch 'origin/master' 2018-10-31 13:53:22 -04:00
Anuken 6508f1541b Added server logs / Kick messages / Ban messages 2018-10-31 13:51:45 -04:00
Anuken 6809b38821 Possible empty sectors 2018-10-31 10:31:07 -04:00
LQ 7f9a3efa24 powergraph update with battery (#276) 2018-10-31 09:36:59 -04:00
Anuken 8ecea9792b Slightly more fleshed out sector selection 2018-10-30 23:05:35 -04:00
Anuken 7c85a03b42 Merge branch 'master' of https://github.com/Anuken/Mindustry into new-sectors 2018-10-30 22:18:07 -04:00
Anuken d4d71b90eb Thread cleanup / Puddle fix 2018-10-30 22:13:01 -04:00
Anuken fbf614a8df Removed html module 2018-10-30 19:15:12 -04:00
Anuken c02329e4b1 Integrated thread implementation / Crash fix 2018-10-30 12:58:25 -04:00
Anuken 5aba065413 Bugfixes 2018-10-30 09:24:43 -04:00
Anuken 6e65096bb4 Improved power grid sprites / Bugfixes 2018-10-29 20:43:30 -04:00
Anuken b39f25ed51 Fixed build error 2018-10-29 16:02:09 -04:00
Anuken 3925d5ec27 Removed useless power modules methods 2018-10-29 15:41:13 -04:00
Anuken 381b59acd4 Fixed irregularly scaled maps causing various bugs 2018-10-29 10:03:41 -04:00
Anuken 5b01d923d3 Full error localization 2018-10-28 23:50:30 -04:00
Anuken 108e5a2f5e Non-blocking connect / Localized connect error messages 2018-10-28 23:47:28 -04:00
Anuken e21d17a482 Merge remote-tracking branch 'origin/master' 2018-10-28 22:29:29 -04:00
Anuken d4ea8c56c3 Added TileEntity.read/writeConfig() 2018-10-28 22:29:23 -04:00
Skybbles // L5474 783ad64353 Updated README (#284)
Proper formatting (md:h4)
Syntactic update, '.bat' no longer needs to come after 'gradlew' for Windows building
Server build instructions
2018-10-28 20:05:20 -04:00
Anuken ac918c1a81 Warning fix 2018-10-28 18:34:18 -04:00
Anuken 0f00074f77 Consistent yellow text 2018-10-28 18:22:14 -04:00
Anuken eb20ec1556 Removed useless content logging, > 2018-10-28 18:17:46 -04:00
Anuken 32f9da0724 Merge remote-tracking branch 'origin/master' 2018-10-28 18:04:15 -04:00
Anuken 968be8eb8f Fixed server run error 2018-10-28 18:04:07 -04:00
Skybbles // L5474 d7e05cde42 Added timestamps and output type labels (#283)
* Added timestamps and output type labels

* Corrected initial 'build version, client checking' warning, which is why warn exists in the first place.
2018-10-28 18:01:51 -04:00
Anuken 557b86a7a9 Comment fix 2018-10-28 16:31:57 -04:00
Anuken f144dda8b5 Fixed errors 2018-10-28 16:30:15 -04:00
Anuken 80aed31135 Broke and cleaned up server commands 2018-10-28 14:26:58 -04:00
Anuken 2a21e7c2cb Merge remote-tracking branch 'origin/master' 2018-10-28 00:31:32 -04:00
Anuken d281277797 Balancing, bugfixes 2018-10-28 00:31:28 -04:00
키에르 fb807bcde4 Update bundle_ko.properties (#278) 2018-10-27 21:26:32 -04:00
Anuken ebf6f6782f Merge remote-tracking branch 'origin/master' 2018-10-26 22:53:23 -04:00
Anuken 008df649f0 Configurable string charset 2018-10-26 22:53:19 -04:00
Anuken a810e704ad Renamed ""oil"" / Increased phase fabric boost 2018-10-26 16:06:47 -04:00
Anuken d0b3167956 Merge remote-tracking branch 'origin/master' 2018-10-26 15:30:58 -04:00
Anuken a726ecbdd8 Fixed invalid map state not being reset 2018-10-26 15:30:08 -04:00
MMG da6a8f806d Adds a few translations (#273) 2018-10-26 10:55:15 -04:00
키에르 b47f44cacd Add texts in font (#275)
* Add texts in font

* Update bundle_ko.properties

POEditor is break word spacing..
2018-10-26 10:54:42 -04:00
Anuken 0cc59adad7 Fixed crash / Made power nodes no longer link when adjacent 2018-10-26 09:54:55 -04:00
Anuken 6c076863db "silcion" 2018-10-26 00:11:58 -04:00
Anuken ddb6e74955 Fixed revenant never shooting 2018-10-26 00:09:09 -04:00
Anuken 2094bc3d80 Renamed phase matter to reduce conflicts / Item balancing 2018-10-26 00:00:25 -04:00
Anuken c922007d21 Removed unnecessary manual font specification 2018-10-25 23:22:37 -04:00
Anuken b1435c1264 Merge remote-tracking branch 'origin/master' 2018-10-25 23:21:31 -04:00
Anuken be5e1648e0 Removed font line height tweak 2018-10-25 23:21:27 -04:00
Anuken a270feb1eb Removed extra sector border 2018-10-25 23:08:19 -04:00
VizardAlpha 103b8cd13a Rename bundle_fr_be.properties to bundle_fr_BE.properties (#271)
Update Bundle
2018-10-25 12:16:04 -04:00
Anuken e6dd36283d Misc. bugfixes 2018-10-24 20:21:48 -04:00
Anuken aae2d0a5dc Broke sector dialog 2018-10-24 19:32:07 -04:00
Anuken fda1d4cc2b Merge remote-tracking branch 'origin/master' 2018-10-24 18:53:09 -04:00
Anuken 5be92460c1 Fixed crash 2018-10-24 18:53:05 -04:00
xgamezs 15ce31ea3a Adding a new string (#270)
* Update bundle_ru.properties (POEditor.com)

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_TW.properties (POEditor.com)

* Update bundle_fr.properties (POEditor.com)

* Create bundle_fr_be.properties

* Delete bundle_fr_be.properties

* Create bundle_fr_be.properties

* Update bundle_fr_be.properties (POEditor.com)

* Update bundle_de.properties (POEditor.com)

* Update bundle_in_ID.properties (POEditor.com)

* Update bundle_ita.properties (POEditor.com)

* Update bundle_ko.properties (POEditor.com)

* Update bundle_pl.properties (POEditor.com)

* Update bundle_pt_BR.properties (POEditor.com)

* Update bundle_es.properties (POEditor.com)

* Update bundle_tk.properties (POEditor.com)

* Create bundle_tr.properties

* Update bundle_tr.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_TW.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_fr.properties (POEditor.com)

* Update bundle_fr_be.properties (POEditor.com)

* Update bundle_de.properties (POEditor.com)

* Update bundle_in_ID.properties (POEditor.com)

* Update bundle_ita.properties (POEditor.com)

* Update bundle_ko.properties (POEditor.com)

* Update bundle_pl.properties (POEditor.com)

* Update bundle_pt_BR.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_es.properties (POEditor.com)

* Update bundle_tk.properties (POEditor.com)

* Update bundle_tr.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_TW.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_fr.properties (POEditor.com)

* Update bundle_fr_be.properties (POEditor.com)

* Update bundle_de.properties (POEditor.com)

* Update bundle_in_ID.properties (POEditor.com)

* Update bundle_ita.properties (POEditor.com)

* Update bundle_ko.properties (POEditor.com)

* Update bundle_pl.properties (POEditor.com)

* Update bundle_pt_BR.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_es.properties (POEditor.com)

* Update bundle_tk.properties (POEditor.com)

* Update bundle_tr.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_uk_UA.properties

* Update bundle_ru.properties

* Update bundle.properties

* Update bundle_uk_UA.properties (POEditor.com)
2018-10-24 18:38:51 -04:00
Anuken 35e5a669a0 Fixed mobile mining/targeting conflict 2018-10-24 14:03:48 -04:00
Anuken 8b8c74cf93 Added filename entry (again) 2018-10-24 13:26:32 -04:00
xgamezs cc43524b4c Update and standardize translations (POEditor.com) (#258)
* Update bundle_ru.properties (POEditor.com)

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_TW.properties (POEditor.com)

* Update bundle_fr.properties (POEditor.com)

* Create bundle_fr_be.properties

* Delete bundle_fr_be.properties

* Create bundle_fr_be.properties

* Update bundle_fr_be.properties (POEditor.com)

* Update bundle_de.properties (POEditor.com)

* Update bundle_in_ID.properties (POEditor.com)

* Update bundle_ita.properties (POEditor.com)

* Update bundle_ko.properties (POEditor.com)

* Update bundle_pl.properties (POEditor.com)

* Update bundle_pt_BR.properties (POEditor.com)

* Update bundle_es.properties (POEditor.com)

* Update bundle_tk.properties (POEditor.com)

* Create bundle_tr.properties

* Update bundle_tr.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_TW.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_fr.properties (POEditor.com)

* Update bundle_fr_be.properties (POEditor.com)

* Update bundle_de.properties (POEditor.com)

* Update bundle_in_ID.properties (POEditor.com)

* Update bundle_ita.properties (POEditor.com)

* Update bundle_ko.properties (POEditor.com)

* Update bundle_pl.properties (POEditor.com)

* Update bundle_pt_BR.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_es.properties (POEditor.com)

* Update bundle_tk.properties (POEditor.com)

* Update bundle_tr.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_zh_CN.properties (POEditor.com)

* Update bundle_zh_TW.properties (POEditor.com)

* Update bundle.properties (POEditor.com)

* Update bundle_fr.properties (POEditor.com)

* Update bundle_fr_be.properties (POEditor.com)

* Update bundle_de.properties (POEditor.com)

* Update bundle_in_ID.properties (POEditor.com)

* Update bundle_ita.properties (POEditor.com)

* Update bundle_ko.properties (POEditor.com)

* Update bundle_pl.properties (POEditor.com)

* Update bundle_pt_BR.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)

* Update bundle_es.properties (POEditor.com)

* Update bundle_tk.properties (POEditor.com)

* Update bundle_tr.properties (POEditor.com)

* Update bundle_uk_UA.properties (POEditor.com)

* Update bundle_ru.properties (POEditor.com)
2018-10-24 13:22:18 -04:00
Anuken f87d297155 Added filename entry 2018-10-24 13:09:42 -04:00
Anuken 605d50166a Made android module load only when SDK defined 2018-10-24 13:07:51 -04:00
Anuken de6681d00a Added special case for unit.none 2018-10-24 10:31:23 -04:00
Anuken 7632e33975 Merge remote-tracking branch 'origin/master' 2018-10-23 22:45:41 -04:00
Anuken 5993a596e8 Made bundle generator add spaces between = 2018-10-23 22:45:36 -04:00
키에르 2294b6babb Add more texts with Cyrillic (#262) 2018-10-23 09:23:19 -04:00
VizardAlpha c38f866363 Updates bundle_fr_be.properties (#260)
Replacing the new translations. Translation finish
2018-10-23 09:01:46 -04:00
CinExPL 511b112ac7 Update bundle_pl.properties (#257) 2018-10-23 09:01:04 -04:00
Anuken 8cd0618e85 Fixed crash 2018-10-23 08:41:52 -04:00
Anuken b4b589bfc2 Removed unnecessary synchronization 2018-10-22 22:48:15 -04:00
Baltazár Radics cb69eb7c0f Simplified power logic (#261)
* Simplified power logic

* Made the requested changes
2018-10-22 22:47:44 -04:00
Anuken 7d83cd89f2 Fixed breaking with multiblock being offseted 2018-10-22 22:21:22 -04:00
Anuken b2dca0a34f Merge branch 'optimizations' of https://github.com/Anuken/Mindustry 2018-10-21 21:50:14 -04:00
Anuken 3bd73961d7 Merged inventory saving/loading, item-based capacity 2018-10-21 21:46:12 -04:00
Anuken 67f574b5d8 Storage graph inventory sharing 2018-10-21 19:49:32 -04:00
Anuken f9b70a37aa Correct storage graphs 2018-10-21 17:20:08 -04:00
Anuken d4047e1413 Fixed crash 2018-10-21 17:03:51 -04:00
Anuken 80f5b4c3b7 Crashy storage graph implementation 2018-10-21 17:02:37 -04:00
Anuken 4668a6d8c0 Implemented sector state network sync 2018-10-20 18:41:05 -04:00
Anuken e6f076306f Merge branch 'rework-sectors' of https://github.com/Anuken/Mindustry 2018-10-20 17:36:56 -04:00
Anuken b73dc127a3 Fixed enemy base generation 2018-10-20 17:36:07 -04:00
Anuken 8c8a2311d6 Fixed sector clear not resetting 0,0 2018-10-20 16:04:13 -04:00
Anuken 0555fb22ca Fixed pump crash 2018-10-20 14:09:00 -04:00
Anuken 85cde62039 Fixed phase weaver blink / Fixed item image offset (again) 2018-10-20 13:53:25 -04:00
Anuken 46a2648d15 Merge branch 'master' of https://github.com/Anuken/Mindustry into rework-sectors 2018-10-20 13:50:30 -04:00
Anuken e55f6ecd6b Fixes to power system 2018-10-20 13:49:58 -04:00
Anuken c71fee3fed Merge branch 'master' of https://github.com/Anuken/Mindustry into rework-sectors 2018-10-20 13:21:05 -04:00
Anuken 4d6c25c9d3 Fixed flying units blocking construction 2018-10-20 13:20:35 -04:00
Anuken 6ed4e2d946 Improved random recipe selection 2018-10-20 13:19:47 -04:00
Anuken 6b4242478f Merge branch 'master' of https://github.com/Anuken/Mindustry into rework-sectors 2018-10-20 11:52:02 -04:00
Anuken ef5478279b Fixed 2 crashes 2018-10-20 11:48:59 -04:00
Anuken 62bb8bce1c Added missing imports 2018-10-20 11:44:19 -04:00
Anuken 83a5c3af8a Updated uCore with new threading changes 2018-10-20 11:41:10 -04:00
Anuken f78abd61d4 Merge remote-tracking branch 'origin/master' 2018-10-20 11:39:05 -04:00
Anuken 209c6fa1c1 Merged in better multithreading 2018-10-20 11:39:00 -04:00
Anuken 6e3c600a49 Crash fix 2018-10-20 11:36:05 -04:00
Anuken b1cda57174 Massively improved thread safety 2018-10-20 11:25:58 -04:00
키에르 412d92e782 Update bundle_ko.properties (#255) 2018-10-20 09:33:43 -04:00
Niko c0703a6a5e Add german translations (#256)
* Replace some English Text with german translations in bundle_de

* Replace some English Text with german translations in bundle_de, renamed map to karte

* Replace some English Text about Units and Fluids with german translations in bundle_de

* Replace some English Text with german translations in bundle_de, renamed map to karte

* Replace some mech and drone definitions with german translations in bundle_de

* Replace almost all definitions with german translations in bundle_de

* Merge branch 'master' into add_german_translations

# Conflicts:
#	core/assets/bundles/bundle_de.properties

* fix some typos in bundle_de
2018-10-20 09:33:35 -04:00
Anuken 64bd306c6d Fixed crash 2018-10-20 09:02:29 -04:00
Anuken 6be49f898c Removed onFirstBegin() 2018-10-19 23:20:04 -04:00
Anuken 59bc73656f Save file refactor / Changed sector size 2018-10-19 22:46:53 -04:00
Anuken bed22f51b4 Updated sector unlocking 2018-10-19 16:23:01 -04:00
Anuken c1362a02f3 Removed all references to size 2018-10-19 13:48:08 -04:00
Anuken 859a3cbe6e Fixed Java 10-related crash 2018-10-19 12:58:53 -04:00
Anuken a6d82f44b3 Initial (broken) commit 2018-10-19 12:57:24 -04:00
키에르 e66e17a41a Fix font height (#253) 2018-10-19 10:01:09 -04:00
Anuken cfa6d7080c Fixed font 2018-10-19 09:56:50 -04:00
Anuken 01ceedccd5 Updated bundles / Decreased water extractor power usage 2018-10-19 09:32:23 -04:00
Anuken ed28af7c73 Changed 'max power' to 'base power', re-scaled display stats of fuel 2018-10-19 09:31:33 -04:00
Anuken 74cf91f99e Fixed increased router storage / Fixed instant building after reload 2018-10-19 08:47:19 -04:00
Anuken 44479930df Fixed mobile mechs configuration / Block selection / Crash 2018-10-19 08:30:37 -04:00
Anuken cb1f54aac4 Removed wiki link 2018-10-18 23:00:18 -04:00
Anuken d68d2e9f30 Moved paused text details into bundle 2018-10-18 22:33:11 -04:00
Anuken 948c48ea23 Merge remote-tracking branch 'origin/master' 2018-10-18 21:57:19 -04:00
Anuken a9ccf6ca42 Updated travis config / Fixed flying mech land effect 2018-10-18 21:57:13 -04:00
Baramos666 fd7b829e70 Update bundle_fr.properties (#249) 2018-10-18 21:56:44 -04:00
LQ 87a7cc6289 add liquid out speed display (#250) 2018-10-18 21:56:35 -04:00
VizardAlpha 2f8b5e53bb Updates bundle_fr_be.properties (#251)
Recast of the French translation (Belgium)
2018-10-18 21:56:09 -04:00
Prosta4okua 8b7fa3b646 [WIP]Update bundle_ru.properties (#243)
* Update bundle_ru.properties

* Update bundle_ru.properties
2018-10-18 21:56:00 -04:00
Anuken dd2c71fe61 Removed sandbox from shuffle list / duplicate maps / mobile mech pickup 2018-10-18 18:20:07 -04:00
Anuken 3b58d57e5c Fixed unlocks not clearing / Fixed map editor not updating 2018-10-18 16:58:57 -04:00
Anuken cecf32e52e Fixed RTG generator not using items 2018-10-18 16:33:39 -04:00
Anuken 91a2dfab36 Fixed build block repair / Sectors in random maps / Editor unlocks 2018-10-18 16:31:15 -04:00
Anuken 5e5838a8c1 let me make this PAINFULLY CLEAR 2018-10-18 16:04:40 -04:00
Skybbles // L5474 0fffbc06dd Spelling correction (#252)
*maybe you mean CLI board.*
2018-10-18 14:35:33 -04:00
Anuken 4d360bfb73 Bugfixes 2018-10-18 09:19:29 -04:00
Anuken e3001b614e Fixed pathfinding through liquids / Switched overlay render layer 2018-10-18 00:02:12 -04:00
Anuken 6ecdef02ab Block break visual cleanup 2018-10-17 22:10:56 -04:00
Anuken 36903eb749 Fixed mission onBegin() being called many times 2018-10-17 17:35:33 -04:00
Anuken f530c9514f Changed placement controls / Fixed complete sectors not resetting 2018-10-17 17:28:24 -04:00
Anuken fdffa77bc5 Fixed mobile targeting / Removed 'transfer speed' / Buffed large nodes 2018-10-17 17:09:26 -04:00
Anuken 245dd39a60 Potentially fixed targeting issues 2018-10-17 14:01:18 -04:00
Anuken 4614aacc02 Fixed chat not clearing 2018-10-17 13:54:34 -04:00
Anuken 64ccdab90c Removed extra trace info (for now) 2018-10-17 13:41:25 -04:00
Anuken 02286b0c4e Fixed player build indicators, power void 2018-10-17 10:31:59 -04:00
Anuken 8e952a550b Fixed: map mirror / crashes / mech pads / player list / mobile placement 2018-10-17 10:20:58 -04:00
Anuken a29f95194d Various fixes / Placement visual improvements 2018-10-17 00:36:43 -04:00
Anuken 0e5db49b93 Fixed missing blocks causing invalid map data error 2018-10-16 20:03:35 -04:00
Anuken a2c29c0937 Removed tutorial ore post-generation / Updated uCore 2018-10-16 19:31:06 -04:00
Anuken c318f05cfd Minor lightning visual change / Hid PvP mode on web 2018-10-16 17:46:44 -04:00
Anuken 789d200c24 Fixed typo in tutorial missions 2018-10-16 16:58:18 -04:00
Anuken 2dc4a9e044 Fixed abandoning sector not updating texture 2018-10-16 16:35:43 -04:00
Anuken 82577b91d5 2-column sector button layout 2018-10-16 13:10:06 -04:00
Anuken 8fd08a1574 Fixed infinite graph traversal for power blocks 2018-10-16 11:52:17 -04:00
LQ 7a41fc8ec8 update pad mission (#247)
add MechMission as same as the UpgradeBlocks type
2018-10-16 09:08:53 -04:00
Anuken 798ca929d6 Improved sector mission display 2018-10-15 23:20:47 -03:00
Anuken 7e4e58fb78 Updated android build tools version 2018-10-15 16:31:01 -04:00
Anuken 28b9975c75 Merge remote-tracking branch 'origin/master' 2018-10-15 16:20:44 -04:00
Anuken 5536ade389 Updated gradle to 4.10.2 2018-10-15 16:20:26 -04:00
LQ 21bc195213 make sure new sector include target sector (#244)
if shiftx, shifty calc from total width,height, the result sector did not include the target sector
2018-10-15 10:17:52 -04:00
Anuken b6beacf053 Input cleanup 2018-10-15 02:05:25 -03:00
Anuken 94b6c133f4 Various resprites 2018-10-14 18:39:24 -04:00
Anuken 949d7bed89 Fixed item images having incorrect underlines 2018-10-14 16:05:39 -04:00
Anuken 81ce12a38c Added random PvP/Waves map generation 2018-10-14 13:24:32 -04:00
Anuken eba65b2934 Fixed units pathfinding to nonexistent cores 2018-10-14 11:57:37 -04:00
Anuken c7f5b7fca1 Minified gamemode table 2018-10-14 10:41:17 -04:00
Anuken f670d522bf PvP merge 2018-10-14 10:01:50 -04:00
Anuken a02f7f46c3 Merge remote-tracking branch 'origin/master' 2018-10-14 09:57:31 -04:00
Anuken 4b7f254e17 Added 2x2 container storage block 2018-10-14 09:57:28 -04:00
Anuken 9b42be560d Fixed bugs with team assignment 2018-10-14 09:41:19 -04:00
VizardAlpha 31b39231a2 Updates bundle_fr_be.properties (#242) 2018-10-13 23:32:08 -04:00
Anuken 4eb2c1f646 PvP autohost 2018-10-13 23:30:05 -04:00
Anuken 5f89d8588d Added 'abandon sector' button 2018-10-13 23:07:57 -04:00
Anuken 404cbf9b4a Removed menu setting 2018-10-13 22:52:58 -04:00
Anuken 0aabc09b82 Made game-overs remote events 2018-10-13 21:58:17 -04:00
Anuken a5ebeadd95 Merge remote-tracking branch 'origin/master' 2018-10-13 17:48:04 -04:00
Anuken 9e188aaf03 Fixed place area being deselected near map edges 2018-10-13 17:47:58 -04:00
Anuken 870f5caca9 PvP game over condition 2018-10-13 17:33:23 -04:00
Anuken 28b4ddfc72 PvP game over condition and message 2018-10-13 17:31:38 -04:00
Prosta4okua 13a4a26e97 Update bundle_ru.properties (#241) 2018-10-13 17:29:09 -04:00
Anuken 81c7e63994 Added 'waiting for players' message 2018-10-13 16:03:21 -04:00
Gureumi 7f234ab5bc Fix font (#240) 2018-10-13 15:53:42 -04:00
Anuken f8d0682810 Added warnings for missing enemy cores 2018-10-13 15:49:18 -04:00
Anuken 175d6b1fc5 Improved difficulty balance 2018-10-13 12:39:07 -04:00
Anuken 1cd8e8a097 Improved server discovery 2018-10-13 12:21:11 -04:00
Anuken ed95e38257 Fixed breakable cores / Fixed sector sandbox / Fixed ship warp speed 2018-10-13 11:33:49 -04:00
Anuken cab585225d Removed unused 'pad' recipe modifier 2018-10-13 10:54:05 -04:00
Anuken 3688dde5e5 Merged mobile mechs 2018-10-13 10:52:48 -04:00
Anuken ae6a5b2512 Made PvP a selectable mode 2018-10-13 10:50:22 -04:00
LQ 6f87611d67 keep the saved width and height of sector (#236)
* keep the saved width and height of sector

width,height changed after expandSector mission, It will reset to original value in initSector()

* keep x,y of sector

sector X and Y may be shifted after loading as well.
2018-10-13 10:44:07 -04:00
Anuken 6a5e31c908 Crash fix 2018-10-13 09:43:31 -04:00
Anuken 8bda5e16cd Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/assets/bundles/bundle_fr.properties
2018-10-13 08:59:15 -04:00
Anuken d70d3d95f0 Bundles updated 2018-10-13 08:58:41 -04:00
Baramos666 554b7d2ec4 Update bundle_fr.properties (#239) 2018-10-13 08:58:04 -04:00
LQ ebc4031922 set charset (#238)
default file charset is not utf8 when run from win10
2018-10-13 08:57:31 -04:00
Anuken c526997aba Fixed coal in core / Fixed build events not triggering 2018-10-13 08:49:54 -04:00
Anuken c0e3a1f3ef Fixed minor TPS display / block breakage bugs 2018-10-12 22:41:48 -04:00
Anuken 7dc0a7a5c3 Sector generation fix 2018-10-12 17:01:20 -04:00
Anuken 2943b6ed04 Fixed HUD errors 2018-10-12 12:40:30 -04:00
Anuken 5feb212df7 Merge remote-tracking branch 'origin/master' 2018-10-12 09:57:48 -04:00
Anuken 327edcd347 Fixed map crash 2018-10-12 09:57:44 -04:00
LQ 94cbf4cddf fix displayString for CommandMission (#235) 2018-10-12 09:48:39 -04:00
Anuken 08cc87affb nothing again 2018-10-11 23:14:59 -04:00
Baramos666 18020d64cc Update bundle_fr.properties (#234) 2018-10-11 22:58:05 -04:00
Anuken 48b7ceac06 Small rendering fix 2018-10-11 18:46:45 -04:00
Anuken dbcce9663c Improved base generation 2018-10-11 12:18:23 -04:00
Anuken 6ee7dd56fe Fixed wave spawn crash 2018-10-11 10:01:59 -04:00
Anuken 22328772ca "Fixed" some bugs 2018-10-11 10:01:19 -04:00
Anuken 99418e6b88 Mass driver power fix 2018-10-10 23:51:48 -04:00
Anuken 52bd079c0a Multithreading cleanup 2018-10-10 23:43:48 -04:00
Anuken 67db5e9dfc Nothing 2018-10-10 17:34:36 -04:00
Anuken 5f1bc6c6c2 Custom spawn locations 2018-10-10 13:02:00 -04:00
Anuken 05201d7012 Physics, pathfinding improvements 2018-10-10 11:29:34 -04:00
Anuken 6b4983537e Fixed puddles not appearing / Oil extractors not working 2018-10-10 08:57:07 -04:00
Anuken 87c8293c78 Various bugfixes 2018-10-10 08:39:25 -04:00
Anuken 54488564f3 Added sector complete event / Patched up server sector completion 2018-10-09 23:24:27 -04:00
Anuken f2ac9ed385 Disabled core recipe 2018-10-09 23:10:04 -04:00
Anuken 38f2f1e30a Added legacy map importer 2018-10-09 22:52:28 -04:00
Anuken 02004011ec Update order swap 2018-10-09 20:50:49 -04:00
Anuken 60bb982450 Updated uCore 2018-10-09 20:13:31 -04:00
Anuken 67389c0bac Arc balancing 2018-10-09 19:52:36 -04:00
Anuken faa1fee1c0 New lightning mechanics 2018-10-09 19:49:46 -04:00
Anuken 0bae421fbc it begins 2018-10-09 18:26:40 -04:00
Anuken b29d81bf0f Improved lightning effects 2018-10-09 14:02:25 -04:00
Anuken 4792828da1 Missions now displayed as number / Improved mission gen 2018-10-09 09:22:06 -04:00
Anuken 6171e887a8 Sector growth 2018-10-08 23:56:47 -03:00
Anuken f28fa93f40 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/src/io/anuke/mindustry/core/Renderer.java
2018-10-08 19:55:51 -04:00
Anuken 940ad84493 Random sector sizes / Cleanup 2018-10-08 19:55:10 -04:00
Anuken 0b168376ed Fixed build errors 2018-10-08 17:02:16 -04:00
Anuken f7bd376499 More public modules 2018-10-08 16:09:31 -04:00
VizardAlpha 9566155bdb Created bundle_fr_be.properties (#233)
For Belgian player
2018-10-08 14:14:16 -04:00
Anuken 9994ddb31b Implemented public submodules 2018-10-08 09:41:01 -04:00
Anuken fadfdaa673 Fixed missing ores 2018-10-08 09:31:47 -04:00
Anuken 4ca546f44a Test cleanup / Artillery fixes 2018-10-07 23:22:54 -04:00
Anuken 8af30c9256 Updated travis Android components 2018-10-07 19:31:19 -03:00
Anuken 42adc38720 Merge remote-tracking branch 'origin/master' 2018-10-07 19:22:18 -03:00
Anuken c1d9dee46c Added content mission / Working implementation of preset sectors 2018-10-07 19:21:53 -03:00
Anuken 69a7104286 Updated Android tool versions 2018-10-07 11:14:54 -04:00
Anuken aba5afe32c Updated uCore 2018-10-06 22:54:00 -04:00
Anuken c1ccf4fceb Fixed sector pref clearing 2018-10-06 22:53:12 -04:00
Anuken 916a4cfc73 Added dialog for graphics startup errors 2018-10-06 17:23:43 -04:00
Anuken fd107ab5b8 Code cleanup 2018-10-06 11:56:39 -04:00
Anuken 5fa6fccf7b Automatic boost 2018-10-05 23:10:04 -04:00
Anuken 0ce226d0c9 Fixed crash 2018-10-05 23:04:34 -04:00
Anuken 14e0b471d3 Mobile mechs implemented 2018-10-05 22:58:46 -04:00
Anuken ed0df64cf9 Fixed compile errors / Refactored sector presets 2018-10-05 22:16:40 -04:00
Anuken 35bc2c9803 Sector preset class / New missions 2018-10-05 16:36:50 -04:00
Anuken a771dc8787 Sector tint / Sector preset system 2018-10-04 20:59:58 -04:00
Anuken 244eb91dfb Added new test 2018-10-04 17:59:16 -04:00
Anuken 7488a6d42b Usage of ExtendedPreferences 2018-10-04 12:19:05 -04:00
Anuken 696a59f1b9 Updated revenant factory sprite 2018-10-04 09:31:52 -04:00
Anuken ee5a3269f2 Failure confirmed working 2018-10-03 21:17:36 -04:00
Anuken f89bf027f7 Testing test failure 2018-10-03 21:12:27 -04:00
Anuken 4db432b0a9 Updated travis with tests 2018-10-03 21:00:37 -04:00
Anuken c82fd9ead5 Added unit tests 2018-10-03 20:58:35 -04:00
Anuken 34715b1e06 Fixed compile errors 2018-10-03 17:17:12 -04:00
Anuken f0870b3236 Created test module 2018-10-03 15:53:33 -04:00
Anuken 9a286800d6 Ammo type for revenants 2018-10-03 13:44:18 -04:00
Anuken 59832b1777 Added revenant factory sprites 2018-10-03 10:26:37 -04:00
Anuken 561f566506 Merge branch 'circle-physics' of https://github.com/Anuken/Mindustry
# Conflicts:
#	core/src/io/anuke/mindustry/content/UnitTypes.java
2018-10-02 23:35:56 -04:00
Anuken f0cacf6bd5 Final physics edit, ready to merge 2018-10-02 23:33:43 -04:00
Anuken ce4031af74 Additional bugfixes 2018-10-02 21:44:32 -04:00
Anuken dd7f91b8c2 Fixed many various physics bugs 2018-10-02 20:45:28 -04:00
Anuken 8523e5bf6b Rectangles 2018-10-02 18:47:23 -04:00
Anuken 860727d27a Revenant laser 2018-10-02 12:49:27 -04:00
Anuken f175bf2c82 circles were a mistake 2018-10-01 22:49:53 -04:00
Anuken 40008f44ac Circle collision initial commit 2018-10-01 13:28:35 -04:00
Anuken 3f93b5c63b Revenant stat changes 2018-10-01 12:45:24 -04:00
Anuken d2ce051c4a Implemented Fortress unit / Made artillery ignore air 2018-10-01 09:51:12 -04:00
Anuken d5d90bde9a Removed mech ability key 2018-09-30 19:22:19 -04:00
Anuken fc8d9febf6 Mass driver fixes 2018-09-29 22:53:24 -04:00
Anuken b43c542213 Auto-target configuration 2018-09-29 20:49:19 -04:00
Anuken e7533232c0 Fixed custom game waves / Fixed Windows appdata being incorrect 2018-09-29 14:25:29 -11:00
Anuken 5e1aaf11a7 Fixed copper/water not getting unlocked immediately 2018-09-29 10:31:17 -11:00
Anuken d062dffc13 Cleanup / Fixed unlock system in custom games 2018-09-29 02:50:21 -07:00
Anuken 4810bbbbd9 Fixed loading / Freebuild unlocks 2018-09-28 14:23:56 -04:00
Anuken 967998273f Partially implemented specific unlock databases 2018-09-28 14:17:44 -04:00
Jae 24decf8abc Update bundle_zh_CN.properties (#230)
* Added translations

* Update bundle_fr.properties

* Update bundle_fr.properties

* Added zh_CN translations

* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties
2018-09-27 17:46:17 -04:00
Anuken 3bc605894e Fixed android text input truncating text 2018-09-27 17:44:47 -04:00
Anuken b74ae302ec Ground unit retreat attacking / Patrol attacking 2018-09-27 17:40:08 -04:00
DinoWattz db3dac261a Update bundle_pt_BR.properties (#231)
Fixed some words and translated some words
2018-09-27 13:09:09 -04:00
Anuken 87b47b3042 Even less wall hugging 2018-09-26 18:15:16 -04:00
Jae 720e1a038e French translations added (#228)
* Added translations

* Update bundle_fr.properties

* Update bundle_fr.properties
2018-09-26 13:42:20 -04:00
Baramos666 1753c54e88 Update bundle_fr.properties (#229) 2018-09-26 13:28:18 -04:00
Anuken 2d42de83de Slightly less wall hugging 2018-09-26 13:22:30 -04:00
Anuken c4e6af455d Wall-hugging ground patrol / Core storage changed to set 2018-09-26 10:23:06 -04:00
Anuken 51d619449b Added discord badge to README 2018-09-25 23:31:45 -04:00
Anuken 1160a14f56 Fixed web errors / Fixed IPv4 crash 2018-09-25 23:27:19 -04:00
Anuken 57fce0ddbc Flying unit patrol 2018-09-25 19:44:10 -04:00
Anuken b9eb8a750b Removed useless hitbox rects 2018-09-25 17:37:01 -04:00
Anuken 3ce16e0ed1 Changed annotations retention / Mobile block bugfix 2018-09-25 17:18:50 -04:00
Anuken 554d9b4047 Updated bundles 2018-09-25 16:41:18 -04:00
Prosta4okua 02d565ce58 [COMPLETE]Rare update bundle_ru.properties (#223)
* Update bundle_ru.properties

Added the same thing as in bundle.properties. Also added 9 descriptions. Because of this PL, a PL from xga is old.

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties
2018-09-25 16:39:52 -04:00
Anuken 795bc1276b Cleanup 2018-09-25 12:45:04 -04:00
Anuken 499b7b2e67 Crash fix 2018-09-25 08:41:40 -04:00
Anuken b6c0fe8bf7 Build fix / Improved map contour 2018-09-24 23:12:13 -04:00
Anuken d5bb1b72b9 Merge branch 'continuous-sectors' of https://github.com/Anuken/Mindustry
# Conflicts:
#	core/assets/bundles/bundle.properties
2018-09-24 22:57:49 -04:00
Anuken af86564adc Final tutorial fixes 2018-09-24 22:56:48 -04:00
Anuken 5354e02b6f Finally a somewhat functional tutorial / Many bugfixes 2018-09-24 20:24:51 -04:00
Prosta4okua 4ee17a656f Update bundle.properties (#226) 2018-09-24 14:14:23 -04:00
Anuken 32c59b66f6 Changed tutorial ore gen 2018-09-24 10:19:27 -04:00
Anuken 20732f04ff Block position starting missions 2018-09-23 23:45:35 -04:00
Anuken 06763b34c3 Bugfixes / Better topological map 2018-09-23 18:41:08 -04:00
Anuken 6bab6c57f2 Fixed waves not appearing / Fixed ore tile blending 2018-09-23 12:45:22 -04:00
Anuken 4eab89d73e Per-sector ore gen 2018-09-23 10:10:05 -04:00
Anuken 8d20c46228 Basic tutorial text 2018-09-22 16:41:55 -04:00
Anuken f5c4586bb7 Merge remote-tracking branch 'origin/master' 2018-09-22 12:29:30 -04:00
Anuken bc6bbdbbe0 Fixed not being able to move units on conveyors 2018-09-22 12:29:27 -04:00
Anuken b77caed0ba Added sample tutorial text / Refactoring 2018-09-22 12:20:04 -04:00
Baramos666 df976f1212 Update bundle_fr.properties (#225) 2018-09-22 11:17:07 -04:00
Anuken 999dd5eb6f Better mission display / Improved tutorial item amounts 2018-09-21 23:29:17 -04:00
Anuken a1a6a3ab81 Tutorial sector prototype / New mission display 2018-09-21 23:14:26 -04:00
Anuken d067bbfa65 New mission classes 2018-09-21 19:36:19 -04:00
Anuken 3bd40eeb27 Merge remote-tracking branch 'origin/continuous-sectors' into continuous-sectors
# Conflicts:
#	core/src/io/anuke/mindustry/maps/Sectors.java
2018-09-21 16:33:00 -04:00
Anuken b124d54055 Merge 2018-09-21 16:32:38 -04:00
Anuken 90691de457 Fog persistence in sector expansion 2018-09-21 16:11:40 -04:00
Anuken bee83a3a3e Sector expansion functional 2018-09-21 14:01:00 -04:00
Anuken fd8f2438fa New world generation methods 2018-09-21 13:50:39 -04:00
Anuken 7937d99a73 Fixed buggy mobile zoom 2018-09-21 09:02:25 -04:00
Anuken 569afb5535 expandSector implementation 2018-09-21 08:49:35 -04:00
Anuken fc5a45e113 Merge remote-tracking branch 'origin/continuous-sectors' into continuous-sectors 2018-09-21 08:47:41 -04:00
Anuken 950f4a9f1a Added expandSector method 2018-09-21 08:47:37 -04:00
Anuken 6a6e80b6d8 Fixed multiblock erase bug 2018-09-20 18:25:55 -04:00
Anuken 083c9792a6 Fixes to conveyor transmission visuals 2018-09-20 18:22:29 -04:00
Anuken 893bfce767 Incorrect conveyor movement transitions 2018-09-20 17:14:03 -04:00
Anuken f61f3df732 Build fix 2018-09-20 12:32:12 -04:00
Anuken a3be5e332e Fill.polyTri replaced 2018-09-20 12:31:53 -04:00
Anuken 33d65a8593 Fixed unit drop crash 2018-09-20 11:18:57 -04:00
Anuken ebbf01c6e5 Synchronization 2018-09-20 09:29:16 -04:00
Anuken acb8496352 Fixed node connection bug 2018-09-20 09:24:31 -04:00
Anuken ecad5772d2 Fixed power debug blocks not working / Moved debug recipes 2018-09-20 08:47:58 -04:00
Anuken 6e6f5714dd Merge remote-tracking branch 'origin/master' 2018-09-20 08:34:07 -04:00
Anuken 50ae15aa4f Power crash fix 2018-09-20 08:33:57 -04:00
iczero 4e2c3049a0 Don't add unit drops to core if the core is full (#222) 2018-09-19 22:47:32 -04:00
Anuken 3a785c166e Removed NodeEntity 2018-09-19 22:39:43 -04:00
Anuken 5248a4eb9c Name refactor / Fixed crash / Power transfer fix 2018-09-19 22:17:58 -04:00
Anuken c9a53aed7b Fixed crash, transmission bug 2018-09-19 17:36:58 -04:00
Anuken bafe5dc784 Fixed block break crash 2018-09-19 12:41:33 -04:00
Anuken 5325488099 Changed enum to two booleans 2018-09-19 10:32:06 -04:00
Anuken 737ad5c8b7 Implemented node linking, graph reflow 2018-09-19 10:26:27 -04:00
Anuken 17cea4e274 Added PowerType enum 2018-09-19 10:07:33 -04:00
Anuken af5b579a2f Power graph loading / merging 2018-09-19 09:41:30 -04:00
Anuken c87eaaa928 Graph removal 2018-09-18 20:48:48 -04:00
Anuken 33418397f8 Power graph removal 2018-09-18 17:04:43 -04:00
Anuken 8c7258e839 Merge 2018-09-18 17:04:24 -04:00
Anuken 98fff9b81d Sector width/height 2018-09-18 11:54:08 -04:00
Anuken 0c63b27eea Removed old korean font / Fixed targeting going through UI 2018-09-18 09:17:50 -04:00
Anuken 0968981aef Removed unused graph classes 2018-09-17 21:43:19 -04:00
Anuken 8db4abdf43 Comment removed 2018-09-17 10:13:15 -04:00
Anuken 9aa4219bf0 Fixed core deconstruction crash 2018-09-17 09:57:58 -04:00
Anuken 6c32ab4711 Fixed visual glitch 2018-09-17 09:09:48 -04:00
Anuken a80c5a1efa Fixed artillery bullet not respecting range properly 2018-09-16 22:30:06 -04:00
Anuken 4ba46bff69 Smoother map preview 2018-09-16 22:28:42 -04:00
Anuken 6a7c97277f Fixed meltdown not setting blocks on fire 2018-09-16 22:13:44 -04:00
Anuken cc70ff9732 Branch created 2018-09-16 22:05:29 -04:00
Anuken 2d25948c57 Revenant factory definition / Crash fix 2018-09-16 21:57:37 -04:00
Anuken 8946af4831 Mass renaming of blocks and units 2018-09-16 19:48:15 -04:00
Anuken 5e7ca0374c Direct core item drops 2018-09-16 14:39:30 -04:00
Anuken 21f8e89ba4 ItemDrop class removed 2018-09-16 14:29:08 -04:00
Anuken f0aca90de2 Bundle update 2018-09-16 14:19:56 -04:00
Anuken 097228066a Revenant sprite / Training mode / Mine transfer range / Drone heal buff 2018-09-16 14:05:43 -04:00
Anuken 7d8782f3dc Crash fix 2018-09-15 22:06:24 -04:00
Anuken e4ea9d561e Lightning shield absorption 2018-09-15 16:37:28 -04:00
Anuken e284d9de8e Balancing / Fixed editor/map bugs 2018-09-15 11:10:07 -04:00
Anuken df6382a1ca Balancing 2018-09-14 15:16:25 -04:00
Anuken c1c1a3318c Meltdown 2018-09-14 12:59:52 -04:00
Anuken 796df1cec5 Merge remote-tracking branch 'origin/master' 2018-09-14 10:53:27 -04:00
Anuken 28980293c5 Corrected spectre/meltdown recipes 2018-09-14 10:53:12 -04:00
Anuken d878ad2e7e Meltdown prototype 2018-09-14 10:29:34 -04:00
Anuken 1290d1e9d4 Balancing / Wall renaming 2018-09-13 23:04:43 -04:00
Anuken f229f1e9fe Added LaserTurret class / Updated bundles 2018-09-13 22:33:03 -04:00
Anuken 0776951018 Improved turret accuracy 2018-09-13 16:53:05 -04:00
Anuken 6d47b449b9 Spectre improvements 2018-09-13 14:43:52 -04:00
Anuken 594c975c70 Spectre WIP 2018-09-13 09:33:09 -04:00
Anuken bf57318307 Compile error fix / Additional power transfer implementation 2018-09-13 08:32:55 -04:00
Anuken abd87793e4 Power graph initial commit 2018-09-12 18:35:29 -04:00
Anuken 7b4e6128ce Server build fix 2018-09-12 11:01:20 -04:00
Anuken 2ae65acc28 Wave unit pads 2018-09-12 10:28:45 -04:00
Anuken 2ee87ad078 Crash fix 2018-09-12 10:18:45 -04:00
Anuken d65beea179 Removed debug menu / Crash fix / Ship speed warp fix / String locale fix 2018-09-12 10:07:10 -04:00
Anuken b19f3ff8cf Removed core bullet shield / Drill ore-count 2018-09-11 22:24:14 -04:00
Anuken 75fae9454d Fixed core crash / Fixed error texture on shoot 2018-09-11 18:12:11 -04:00
Anuken 5d309c39cf Added core recipe, made core destructible 2018-09-11 17:09:42 -04:00
Anuken 649fc5a0e6 Bundles updated 2018-09-11 16:34:31 -04:00
Anuken 67cfa5d42f Made blocks no longer unlock in custom games 2018-09-11 16:27:45 -04:00
Anuken 5dcacdeea1 Merge remote-tracking branch 'origin/master' 2018-09-11 09:22:59 -04:00
Anuken 2f7073bbe4 Removed NetEvents class / Added unused patrol command 2018-09-11 09:22:54 -04:00
Prosta4okua e8df6ed3be Nice Update bundle_uk_UA.properties. :) (#220)
* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties
2018-09-11 09:22:16 -04:00
Anuken d9eb4c1296 Server build fix / Debug hook 2018-09-10 19:33:12 -04:00
Anuken 4af0fbf553 Removed debug mode / Added source blocks to sandbox 2018-09-10 17:46:32 -04:00
Anuken 2da0862cb2 Fill.polyTri replaced 2018-09-10 13:14:43 -04:00
Anuken 66fcf84688 Removed Fill.poly() references 2018-09-10 10:59:27 -04:00
Anuken 5740d40d57 Merge remote-tracking branch 'origin/master' 2018-09-09 21:52:54 -04:00
Anuken 6ef2256bf2 Removed all reflection 2018-09-09 21:44:10 -04:00
Anuken 65f911909b Pools replace with Pooling / Removed all core reflection 2018-09-09 17:44:10 -04:00
Anuken 2cb6e454c8 Auto-generated serialization code 2018-09-09 16:19:53 -04:00
iczero abfaa47db2 Add version type/number/modifier to crash reports (#221) 2018-09-09 14:38:29 -04:00
Prosta4okua e06970eebb Create strings.xml (#217) 2018-09-09 11:30:26 -04:00
Anuken dadc83800b Merge remote-tracking branch 'origin/master' 2018-09-09 11:27:06 -04:00
Anuken 62f2c67321 Fixed some multithreading bugs / No more drift 2018-09-09 11:26:15 -04:00
Anuken 1651844b4f Crash fix 2018-09-09 10:09:00 -04:00
xgamezs fb9f42ff93 Update bundle_uk_UA.properties (#219) 2018-09-08 23:02:49 -04:00
Anuken 9c29b982dd absolutely incredible performance improvements 2018-09-08 23:00:17 -04:00
Anuken f52c4964b3 Changed arc recipe 2018-09-08 20:59:39 -04:00
Anuken 46a8edb781 LZ4 compression 2018-09-08 17:07:25 -04:00
Anuken 8dbdbe6d6c Removed delta compression / Removed client snapshot packet 2018-09-08 16:29:09 -04:00
Anuken 778069c15d New artillery turret bullet patterns 2018-09-08 13:43:25 -04:00
Anuken e98457c540 Fixed server build error 2018-09-08 11:57:57 -04:00
Anuken 7a3a76065c Added RTG generator 2018-09-08 11:48:27 -04:00
Anuken c73c97dc7b Added arc turret 2018-09-08 11:35:29 -04:00
Anuken 1b0dd279ae Phase matter shield boost 2018-09-08 09:38:22 -04:00
Anuken 7dd487ccc5 Force projector implementation 2018-09-07 23:24:55 -04:00
Anuken d046591512 Overdrive system 2018-09-07 17:16:38 -04:00
Anuken e4ce115abf Fixed (another) crash 2018-09-07 13:46:07 -04:00
Anuken aedcac5820 Fixed a crash 2018-09-07 12:01:36 -04:00
Anuken 9f4430ad92 Fixed save loader failing to load status effects 2018-09-07 09:40:13 -04:00
Anuken 2ad8f1c112 Bundles updated / Crash fix 2018-09-07 09:18:58 -04:00
Anuken f0d884e114 Force projector sprite 2018-09-06 22:08:22 -04:00
Anuken b618f5be80 Merge remote-tracking branch 'origin/master' 2018-09-06 21:47:00 -04:00
Anuken 7b63eac3eb Save fixes / Implemented overdrive projector 2018-09-06 21:46:50 -04:00
Prosta4okua df3f2ea9c1 [Complete]Russian bundle. (#208)
* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties
2018-09-06 19:53:31 -04:00
Gureumi 30c6280ed1 smail translate (#216) 2018-09-06 19:51:12 -04:00
Anuken 1960b59629 Packer compile fix / Mapping fix 2018-09-06 19:38:19 -04:00
Anuken 6e6edf8322 Fixed trail length bug / Base projector classes 2018-09-06 12:25:38 -04:00
Anuken f47fb01614 Minor bugfixes 2018-09-06 09:08:54 -04:00
Anuken ae30bdd599 Bugfixes 2018-09-05 21:30:03 -04:00
Anuken 2c8962cf5f pain and suffering of various kinds 2018-09-05 20:25:50 -04:00
Anuken eb3e507a11 Content mapping, part 1 2018-09-05 16:02:30 -04:00
Anuken be3147465d Added unlock menu in-game 2018-09-05 13:22:04 -04:00
Anuken 484721fece Fixed game data clearing 2018-09-05 13:00:15 -04:00
Anuken 9c36026991 Data clearing / Bugfixes 2018-09-05 10:24:47 -04:00
Anuken bf5055f944 Fixed random bullet pierce 2018-09-05 09:44:26 -04:00
Anuken 389034bf1a Fixed PvP matches not ending / Removed PvP core shield 2018-09-05 09:36:25 -04:00
Anuken 3f07102f2a Crash fixes 2018-09-05 09:05:15 -04:00
Anuken d4ccfa31b5 Balancing 2018-09-04 22:16:23 -04:00
Anuken 5814b2a4b8 Merge remote-tracking branch 'origin/master' 2018-09-04 22:08:08 -04:00
Anuken d3f61af493 Added shock mines 2018-09-04 22:08:05 -04:00
xgamezs 233ea7bb4a Update bundle_ru.properties (#214) 2018-09-04 21:23:08 -04:00
Anuken 6893a30ffb Removed camera clamping for custom maps 2018-09-04 19:55:39 -04:00
Anuken ae6d2fb363 Minor optimization / Fixed bullets piercing shield randomly 2018-09-04 19:45:41 -04:00
Anuken baa7cb3a10 Flux speed buff / Server drowning / Delta buff 2018-09-04 19:02:40 -04:00
Anuken 7b90544d91 Fixed player mech icon clip / Added kick confirmation 2018-09-04 17:42:56 -04:00
Anuken 9a5495d8b2 Crash fix / New pump/conduit placement restrictions 2018-09-04 16:43:15 -04:00
Anuken 1fa769b3e7 Merge remote-tracking branch 'origin/master' 2018-09-04 15:15:43 -04:00
Anuken 96766ece4e Made wave extinguish fires / Buffed fire 2018-09-04 15:15:25 -04:00
xgamezs add525396f Update bundle_ru.properties (#213) 2018-09-04 14:43:35 -04:00
Anuken 26ae4edd63 Added version type 2018-09-04 12:10:48 -04:00
Anuken 063893adee Crash fixes 2018-09-04 09:00:37 -04:00
Anuken ff37e99d71 Save load crash fix / Minor name refactor 2018-09-03 22:37:46 -04:00
Anuken 3d0b02ee23 Cleaned up enemy base walls 2018-09-03 22:12:46 -04:00
Anuken d7cfbfe6c8 Merge remote-tracking branch 'origin/master' 2018-09-03 21:51:18 -04:00
Anuken dc00e22f13 Fixed unit pads hiding in PvP / Fixed recipes not deselecting in menu 2018-09-03 21:51:13 -04:00
CrazyBearTR bcde481304 Update of the Turkish Translation Bundle (#212)
* Update of the Turkish Translation Bundle

Some words were wrong. Fixed in this version.

* Update bundle_tr.properties
2018-09-03 19:38:01 -04:00
Prosta4okua 5b1341e488 [Complete]Update bundle_uk_UA.properties (#211)
* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties
2018-09-03 19:37:55 -04:00
Anuken 6ad70ceee3 Typo fix 2018-09-03 17:17:32 -04:00
Anuken 9c4d2f5490 Merge remote-tracking branch 'origin/master' 2018-09-03 17:04:16 -04:00
Anuken 6c5eff1143 Crash fix / Cleanup 2018-09-03 17:04:11 -04:00
Anuken a893767d0f Merge remote-tracking branch 'origin/master' 2018-09-03 16:22:29 -04:00
Anuken a4f240edc8 Fixed some high-FPS bugs 2018-09-03 16:22:24 -04:00
Anuken e0a94f694b Shader fix / Hail buff / Tau nerf / Turkish lower case fix 2018-09-03 15:57:06 -04:00
Anuken 8654f25a4f Bugfixes for GWT 2018-09-03 13:48:16 -04:00
Anuken e877310d85 Mech balancing / Less glitchy menu shader 2018-09-03 13:33:40 -04:00
Anuken bb59f45ba6 Crash fix 2018-09-03 10:29:44 -04:00
Anuken 3d4c2a2c20 Merge remote-tracking branch 'origin/master' 2018-09-03 09:56:18 -04:00
Anuken e36667cd08 Bugfixes 2018-09-03 09:56:14 -04:00
CrazyBearTR cebaa6949e Turkish language request (#210) 2018-09-03 09:55:04 -04:00
Anuken 019e22aff2 Fixed missile shield pierce 2018-09-03 09:07:59 -04:00
Anuken 5129e2ea73 Crash fixes 2018-09-03 09:02:16 -04:00
Anuken 3b63f60462 Fixed some junction issues / Improved server crash reporting 2018-09-02 22:40:23 -04:00
Anuken 5e29115c2e Fixed ship flight targeting / Fixed unit weapon sprite offset 2018-09-02 16:23:39 -04:00
Anuken 0b4b30286d Fixed bridge infinite capacity / Fixed crash 2018-09-02 15:19:54 -04:00
Anuken a01f64080d Fixed unit pads / Added chat log 2018-09-02 14:16:14 -04:00
Anuken d031351bc8 Merge remote-tracking branch 'origin/master' 2018-09-02 13:49:42 -04:00
Anuken 1d21d36253 Fixed font line height / Bundles updated / Changelog date 2018-09-02 13:49:38 -04:00
iczero 8d4cd72b41 Remove duplicate roundrobin properties in weapons (#207) 2018-09-02 13:34:24 -04:00
Anuken 46ab6d3476 Minor fix 2018-09-02 13:33:43 -04:00
Anuken 3fcf3cbf93 Merge remote-tracking branch 'origin/master' 2018-09-02 13:20:58 -04:00
Anuken ada912c69b Made group error message more specific 2018-09-02 13:20:51 -04:00
Prosta4okua e204b89eaf Update bundle_ru.properties (#206)
* Update bundle_ru.properties

* Update bundle_ru.properties
2018-09-02 13:20:40 -04:00
Anuken e903798fc2 Crash report fixes / Mobile mech fixes / Multiplayer fixes 2018-09-02 13:12:45 -04:00
Anuken 54497c43b6 Fixed mobile menu shader / Added 'old save' message for sectors 2018-09-02 11:46:47 -04:00
Anuken 99e54cc214 Fixed server connect crash 2018-09-02 11:22:05 -04:00
Anuken 56ae47cd8d Fixed server build error / Possible crash fix 2018-09-02 11:00:14 -04:00
Anuken 0fb336cf7b Balancing / Fixed bridge contamination 2018-09-02 10:46:24 -04:00
Anuken 469b3c0a94 Balance tweaks / Changed block liquid place-ability 2018-09-01 22:29:25 -04:00
Anuken d90d88c68b Menu shader / Sprite fixes 2018-09-01 20:16:49 -04:00
Anuken dcc061af3e New seed-based AI bases 2018-09-01 14:44:06 -04:00
Anuken a2960f5c50 Pathfind updates / Less reflection / Platform cleanup 2018-08-31 23:19:36 -04:00
Anuken 565f8a2b4d Merge branch 'reflectionless' of https://github.com/Anuken/Mindustry 2018-08-31 16:15:43 -04:00
Anuken 5cb50d57ec Reduced reflection usage / Improved event system 2018-08-31 16:14:14 -04:00
Anuken 522e19d4bf Updated discord URL 2018-08-31 15:40:32 -04:00
Anuken 0db7a78889 Merge remote-tracking branch 'origin/master' 2018-08-31 10:15:12 -04:00
Anuken 1ce3b40b4e Basic pathfinding implementations 2018-08-31 10:15:08 -04:00
Leone25 e633528a7a Update bundle_ita.properties (#205) 2018-08-31 09:24:26 -04:00
Anuken 6570b411d1 Merge remote-tracking branch 'origin/master' 2018-08-31 00:02:42 -04:00
Anuken ac9e774795 Added basic turret blob structures 2018-08-31 00:02:38 -04:00
Prosta4okua 8791747453 [Complete]Update bundle_ru.properties (#202)
* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties
2018-08-30 23:52:41 -04:00
Anuken dda3afe9fa now with waifus 2018-08-30 21:39:27 -04:00
Anuken d4435f980c Fixed ability input conflicts 2018-08-30 18:30:05 -04:00
Anuken f29673a6e3 Made desktop selection rebindable 2018-08-30 16:46:41 -04:00
Anuken 9816bab151 Fixed build error 2018-08-30 09:58:18 -04:00
Anuken 5884c0bcb3 Merge branch 'crash-report-server' of https://github.com/Anuken/Mindustry 2018-08-30 09:23:10 -04:00
Anuken 96dc00beac Fixed carrying bug 2018-08-30 09:22:16 -04:00
Anuken febc1e53b6 Added dedicated server crash reports 2018-08-30 09:05:15 -04:00
Anuken 3e18fb3ca0 Final crash report system for desktop 2018-08-29 23:46:04 -04:00
Anuken 28b9de2e7a Moved reporting system to CoreBot; JSON-base reports 2018-08-29 22:54:15 -04:00
Anuken 9a41399178 Initial proof-of-concept for crash report server 2018-08-29 22:09:55 -04:00
Anuken db47b9a877 Minor tweaks 2018-08-29 16:19:34 -04:00
Anuken 7cdd7a3487 Merge remote-tracking branch 'origin/master' 2018-08-29 10:07:38 -04:00
Anuken 833f646903 Start of groundwork for dynamic bases 2018-08-29 10:07:34 -04:00
Senventise 35a85860b1 Add Simplified Chinese font and update translations (#204)
* update translation

* add simplified chinese font

* delete outdated font

* Update uiskin.json
2018-08-29 09:38:10 -04:00
Anuken 00f24dfb79 Balancing 2018-08-28 20:10:43 -04:00
Anuken 8c6ae2576d Fuse shot implemented 2018-08-28 19:00:29 -04:00
Anuken 5416ad33bd Basic fuse implementation 2018-08-28 13:10:49 -04:00
Anuken 1e25ba2d8e Implemented ammo types for cyclone 2018-08-28 12:12:08 -04:00
Anuken 8d08d25f5b Updated uCore 2018-08-28 09:02:38 -04:00
Anuken 802e7b12d0 Surge uses / Fixes, optimizations / Turret implementation base 2018-08-27 23:50:23 -04:00
Anuken 9b57550f3d Worldgen changes 2018-08-27 16:04:55 -04:00
Anuken 28c13c8e52 Fixed dropping items into enemy blocks 2018-08-27 13:56:20 -04:00
Anuken d8f9059989 Player bufixes / Balancing 2018-08-27 13:46:33 -04:00
Anuken ac9d37d038 Core player shield / Bundles updated 2018-08-27 13:30:34 -04:00
Anuken 6323c13704 Mech descriptions / Balancing / Crash fix / Physics fix 2018-08-27 09:52:33 -04:00
Anuken 2f7f16daff Added mend projector 2018-08-26 23:03:02 -04:00
Anuken 9059238aee Fixed lancer turning incorrectly / Buffed lancer 2018-08-26 20:02:29 -04:00
Anuken 2677c0e752 Merge remote-tracking branch 'origin/master' 2018-08-26 17:39:37 -04:00
Anuken ba80770564 Disabled snapshot debug 2018-08-26 17:39:32 -04:00
Anuken 06ad35d934 Fixed jittery snapshots / Fixed misaligned unit bullets 2018-08-26 17:38:22 -04:00
Anuken 864c4f6bc3 Added custom port support 2018-08-26 10:25:23 -04:00
iczero f5f0f02abe Fix UUID generation on desktop (#203) 2018-08-26 09:12:16 -04:00
Anuken 19979dec55 Fixed multiplayer crash 2018-08-25 23:25:04 -04:00
Anuken 926e61b7cc Initial test 2018-08-25 20:43:36 -04:00
Anuken 15378d3267 Removed incorrect health values 2018-08-25 20:25:09 -04:00
Anuken 33fcfda1a0 Added alloy smelter 2018-08-25 16:50:42 -04:00
Anuken 74d7b43d0f Fixed game-over state / Recipe balance 2018-08-25 15:35:35 -04:00
Anuken e392c8f0e6 All reconstructors implemented / Balancing 2018-08-25 14:52:46 -04:00
Anuken f60ba8587f Balancing / Reconstructors require power 2018-08-25 10:37:05 -04:00
Anuken 86a7f837cd Implemented halberd 2018-08-25 09:55:08 -04:00
Anuken 9465497481 Implemented trident 2018-08-24 23:32:08 -04:00
Anuken 8c3f3ac304 Javelin abilities 2018-08-24 17:53:54 -04:00
Anuken 88ba8f6f55 Ignored gif recorder images 2018-08-24 15:52:51 -04:00
Anuken c64459dbf4 Fixed alpha drones dying on load 2018-08-24 15:52:05 -04:00
Anuken 8b0bbffe27 Merge remote-tracking branch 'origin/mechs-balance-altfire' into mechs-balance-altfire
# Conflicts:
#	core/src/io/anuke/mindustry/content/Mechs.java
2018-08-24 13:58:32 -04:00
Anuken 94805259d7 Added alpha drone swarm ability 2018-08-24 13:54:53 -04:00
Anuken e796d44f92 Tau idle regen / Fixed non-synced alts / Fixed units not retreating 2018-08-24 10:19:56 -04:00
Anuken 5e8686db77 Removed Upgrade class / Buffed units / Bugfixes 2018-08-24 09:39:02 -04:00
Anuken ee835f6514 Merge branch 'master' of https://github.com/Anuken/Mindustry into mechs-balance-altfire
# Conflicts:
#	core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java
2018-08-24 08:57:19 -04:00
Anuken 5de61aaed3 Unlockable mechs 2018-08-24 08:55:19 -04:00
Anuken 6613e4ec42 Generaor changes 2018-08-23 23:26:45 -04:00
Anuken 206314f4f4 Implemented lightning tile damage 2018-08-23 09:09:54 -04:00
Anuken 8f12c3f1a8 Fixed lightning / Implemented delta ability and gun 2018-08-23 09:02:09 -04:00
Anuken 4c224d0b9c Balancing, keybinds 2018-08-22 23:45:01 -04:00
Anuken 30dd089c8b Tau mech implemented 2018-08-22 23:29:14 -04:00
Anuken 8d9ec206bf Fixed mech hovering 2018-08-22 17:48:44 -04:00
Anuken 8319288776 Omega mech ability / Rendering fix 2018-08-22 16:13:26 -04:00
Anuken 60bf36613f Merge remote-tracking branch 'origin/master' 2018-08-22 12:42:30 -04:00
Anuken a75994cbbf Updates to iOS build 2018-08-22 12:42:19 -04:00
Anuken e1f7c7b03d Omega mech implementation 2018-08-21 22:40:39 -04:00
Anuken bb7e2c7cee Commit #2000 2018-08-21 19:01:35 -04:00
Anuken 69eb6469f9 Merge branch 'continuous-servers' of https://github.com/Anuken/Mindustry 2018-08-21 18:56:32 -04:00
Anuken d2eb3be7f8 Merge remote-tracking branch 'origin/master' 2018-08-21 18:54:15 -04:00
Anuken 5aa76639d1 Changed noise octaves with non-detailed worldgen 2018-08-21 18:54:11 -04:00
Anuken 3bf72a1af6 Forced hovering while on block 2018-08-21 17:28:35 -04:00
Anuken b745d88299 Player State reset / Improved messages / Round end time 2018-08-21 17:23:17 -04:00
Anuken 3aedc07ad0 Initial continuous server implementation 2018-08-21 16:37:57 -04:00
Anuken dbb164f4be Increased mech damage 2018-08-21 14:21:00 -04:00
Prosta4okua b0103d1ce3 [Complete]Update bundle_ru.properties (#199)
* Update bundle_ru.properties

* Update bundle_ru.properties

* Update bundle_ru.properties
2018-08-21 13:27:20 -04:00
Prosta4okua 9c532047d3 [Complete]Update bundle_uk_UA.properties (#201)
* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties
2018-08-21 13:27:09 -04:00
Anuken 0003a58210 Added land effect / Cleanup 2018-08-21 13:25:04 -04:00
Anuken 34f2704dc7 Added ground mech flight 2018-08-21 12:22:49 -04:00
Anuken 0ddee379ca Added mode-specific respawn time 2018-08-21 10:56:06 -04:00
Anuken 6dcbe4fabb Added phase walls 2018-08-21 10:36:42 -04:00
Anuken 5dbb9fdf3f Final tweaks, ready to merge 2018-08-21 09:45:54 -04:00
Anuken 914fa3079d Per-mode no-build radius 2018-08-20 23:47:56 -04:00
Anuken 2e958d8d8f New team system / Prototype dedicated PvP gamemode 2018-08-20 23:45:27 -04:00
Anuken 7a5e61fd2e Fixed off-color stone floor blocks 2018-08-20 22:17:34 -04:00
Anuken 6a031d8f53 Nerfed wall health 25% 2018-08-20 22:13:29 -04:00
Anuken dc6f01c0d3 Merge branch 'resource-rework' of https://github.com/Anuken/Mindustry 2018-08-20 22:09:57 -04:00
Anuken 1cc8cbe8a8 Bundles updated / Updated mechanical drill sprite 2018-08-20 22:09:15 -04:00
Anuken 01ae8bec85 Turret sprite fixes 2018-08-20 21:30:37 -04:00
Anuken 258ab87f6b Palette swap / Blocks changed and renamed 2018-08-20 21:04:03 -04:00
Anuken 8ba2db6c58 Dense alloy / Compile errors fixed 2018-08-20 17:43:56 -04:00
Anuken a7599e85dc Merge remote-tracking branch 'origin/master' 2018-08-20 10:21:56 -04:00
Anuken 28389d698e Fixed editor fill freeze 2018-08-20 10:21:51 -04:00
Gureumi c47a220721 Update bundle_ko.properties (#198) 2018-08-20 09:21:13 -04:00
Anuken 69f7296baa Merge remote-tracking branch 'origin/master' 2018-08-19 22:49:39 -04:00
Anuken 855f56bb45 Crash fix 2018-08-19 22:49:35 -04:00
Anuken a79d072aaf More copper 2018-08-19 22:47:46 -04:00
iczero 467047a011 Fix typo (#197) 2018-08-19 22:46:41 -04:00
Leone25 0288daa39d Update bundle_ita.properties (#195) 2018-08-19 18:40:53 -04:00
Prosta4okua 3f075068a9 Update bundle_ru.properties (#196) 2018-08-19 18:40:43 -04:00
Anuken 278e7027f2 Bundles updated 2018-08-19 13:35:35 -04:00
Anuken 9d654c1f18 Copper added, carbide removed 2018-08-19 13:34:36 -04:00
JustYanns 279187d13b Update bundle_fr.properties [Complete] (#146)
* Update bundle_fr.properties

Few things translated in french.
I'll do more soon !!

* Update bundle_fr.properties V2

Update with comment of Math2128

* Update bundle_fr.properties V3

Few translations fixed

* Update bundle_fr.properties V4

•1 Thorium is the same in french and in english. 
•2 Carbide and cryofluid are not translatable !!
•3 Phase matter = "matière de Phase" doesn't sound good, I think we have to let the english word.
•4 Pyratite can be translated as "pyrrhotite" is it a good idea ?

* Update bundle_fr V5

Few translations fixed

* Update bundle_fr.properties V6 [Almost complete]

The french translation is almost finished, I will release the final translation soon.

* Update bundle_fr.properties [pre-release1]

Translation almost finished,
I just have 2 problems (see in the conversation)

* Update bundle_fr.properties  [pre-release2]

Translation almost finished
I just have 2 problems (see in the conversation)

* Update bundle_fr.properties [pre-release3]

Thank you to Math2128, for having helping me ;)

* Update bundle_fr.properties  [pre-release4]

Translations of Math2128's commit added
2018-08-19 13:34:17 -04:00
Anuken 360494f971 Fixed connect/disconnect message color tags 2018-08-19 10:31:25 -04:00
Anuken 81931eb536 Removed unnecessary tungsten references 2018-08-19 10:30:12 -04:00
Gureumi a2ef11eb0f Fix 'has connected' message + Add chat font (#194)
* Fix 'has connected' message

* Add chat font
2018-08-19 10:29:40 -04:00
Anuken b872252771 Removed unnecessary tungsten references 2018-08-18 23:02:10 -04:00
Leone25 b2c388276f Update bundle_ita.properties (#192) 2018-08-18 18:33:49 -04:00
Prosta4okua 178928f866 [Complete]Update bundle_uk_UA.properties (#188)
* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties

* Update bundle_uk_UA.properties
2018-08-18 13:10:57 -04:00
Prosta4okua 7e548f9969 Update bundle_ru.properties (#191)
* Update bundle_ru.properties

* Update bundle_ru.properties
2018-08-18 13:10:43 -04:00
Anuken a60ce3c54c Merge branch 'master' of https://github.com/Anuken/Mindustry into resource-rework 2018-08-18 13:10:22 -04:00
Anuken 0f173bcc5a Increased blink frequency 2018-08-18 13:10:01 -04:00
Anuken 64dbe8312e Fixed merge issues 2018-08-18 13:07:54 -04:00
Anuken 7f443c71ae Merge remote-tracking branch 'origin/master' 2018-08-18 13:06:59 -04:00
Anuken 27276c025c Merge branch 'remove-ammo' of https://github.com/Anuken/Mindustry 2018-08-18 13:06:54 -04:00
Anuken e9d03c179c init() test 2018-08-18 12:19:20 -04:00
Uriel dec01c23a9 [Completed] Remaking spanish translation bundle (#187)
* started translating all the stuff

* translated more of the original english file

* translated more parts

* almost half of the file!

* MOREgit add .!

* Update bundle_es.properties

* completed

* forgot about these ones...
2018-08-18 08:57:42 -04:00
Anuken e0eb227ce5 Recipe init() method added 2018-08-17 22:49:45 -04:00
Anuken 20021c5b31 Fixed 1-character names being valid / Fixed collideLine with tiles 2018-08-17 20:21:49 -04:00
Anuken f8d6797fc2 Fixed android module being necessary to compile 2018-08-17 18:05:28 -04:00
Anuken 25051980ce Fixed category bundle properties missing 2018-08-17 14:51:18 -04:00
Anuken fb8becca99 Minor ban fix 2018-08-17 14:09:31 -04:00
Anuken 25bd8a7eaa Fixed sector name not being displayed in saves 2018-08-17 13:02:53 -04:00
Anuken bbd2424a3f Merge remote-tracking branch 'origin/master' 2018-08-17 12:55:18 -04:00
Anuken 83eeeed319 Discord rich presence improvements 2018-08-17 12:55:06 -04:00
Anuken c92e8161a1 Merge pull request #190 from Prosta4okua/patch-21
[Complete] bundle_ru.properties
2018-08-17 11:33:29 -04:00
Anuken 258555c990 Merge remote-tracking branch 'origin/master' 2018-08-17 11:32:19 -04:00
Anuken 0f7799422e Crashes fixed 2018-08-17 11:32:12 -04:00
Anuken 177b565d7c Merge pull request #173 from Gab351/patch-1
Translate l227 to l239
2018-08-17 10:38:24 -04:00
Prosta4okua a62b336b6c Update bundle_ru.properties 2018-08-17 12:59:51 +03:00
Prosta4okua 3ea61c8b3a Update bundle_ru.properties 2018-08-17 12:02:44 +03:00
Prosta4okua 4c57f9f902 Update bundle_ru.properties 2018-08-17 10:48:29 +03:00
Anuken 6d7941fba4 iOS portrait mode support 2018-08-16 18:38:43 -04:00
Anuken 020c6388c2 Block renaming 2018-08-16 18:38:04 -04:00
Anuken 53d35e8c77 Bundles updated / Fixed some localization bugs 2018-08-16 17:43:43 -04:00
Anuken 01f205d352 Merge pull request #189 from Leone25/patch-1
last update bundle_ita.properties
2018-08-16 17:38:44 -04:00
Anuken a786167b04 Reduced health flash 2018-08-16 17:38:16 -04:00
Anuken 1699ab48e8 Added alternate health bar on all units 2018-08-16 17:07:20 -04:00
Leone25 b15c04a532 Update bundle_ita.properties 2018-08-16 21:10:04 +02:00
Anuken 20d3740e75 Branch created 2018-08-16 11:46:34 -04:00
Anuken 80d57f8c0c Comma fix 2018-08-16 11:25:27 -04:00
Anuken 1de367e89c Full chat revert / Crash fixes 2018-08-16 10:09:22 -04:00
Anuken 8850a89e30 Fixed game-over sector algorithm 2018-08-15 21:25:07 -04:00
Anuken 4f72011cf7 Fixed markup crash / setsector command fixed / Drone crash fixed 2018-08-15 21:00:40 -04:00
Anuken c569232e74 Fixed multiblocks not accepting items 2018-08-15 19:38:13 -04:00
Anuken 14c526d0c4 Power distribution fix 2018-08-15 18:41:21 -04:00
Anuken 5c4ac6b702 Fixed major issue with Vector2.ZERO mutation 2018-08-15 18:37:20 -04:00
Anuken d58cc18136 Fixed block targeting bug 2018-08-15 18:18:57 -04:00
Anuken 36c01fde94 Updated uCore / Minor server tweak 2018-08-15 17:46:33 -04:00
Anuken d4d9d59fe4 Server sector commands / World data compression / Snapshot sent w/ world 2018-08-15 17:25:19 -04:00
Anuken 8dbd0a6130 Fixed drones repairing incorrect blocks 2018-08-15 16:28:00 -04:00
Anuken 3746344cba Crash fixes 2018-08-15 16:26:08 -04:00
Anuken d07fd1bbfe Improved build sync 2018-08-15 15:16:56 -04:00
Anuken 02f95c0ed4 Merge remote-tracking branch 'origin/master' 2018-08-15 14:16:42 -04:00
Anuken c98fcbd795 Turrets target blocks / Added core no-build radius 2018-08-15 14:13:50 -04:00
Anuken d071877963 Merge pull request #186 from Leone25/patch-1
Big update for italian bundle
2018-08-15 13:12:18 -04:00
Anuken 0267cb4006 Conduit sprites improved / Fixed incorrect proximity update 2018-08-15 13:11:55 -04:00
Leone25 bf571e595c Update bundle_ita.properties 2018-08-15 19:05:18 +02:00
Anuken c0cad70212 Merge remote-tracking branch 'origin/master' 2018-08-15 10:49:05 -04:00
Anuken 7bd6dbb4b4 Partial korean font PR revert / Crash fixes 2018-08-15 10:48:19 -04:00
Anuken 6d932e3d04 Merge pull request #185 from Prosta4okua/patch-19
Update bundle_ru.properties
2018-08-15 09:20:41 -04:00
Prosta4okua e154b5179d Update bundle_ru.properties 2018-08-15 08:27:26 +03:00
Anuken 52110d6008 ok 2018-08-14 19:30:05 -04:00
Anuken 103b08fd1d Added build progress sync 2018-08-14 18:56:42 -04:00
Anuken cb09d10e7f Merge remote-tracking branch 'origin/master' 2018-08-14 18:51:13 -04:00
Anuken a041c1e60d Synced whole place queue / Fixed player flash desync 2018-08-14 18:51:06 -04:00
Anuken 586b4cf4bd Merge pull request #183 from cloud9350/master
Add korean chat fonts + fix typos
2018-08-14 18:32:52 -04:00
Leone25 d0ff149cca Update bundle_ita.properties 2018-08-14 21:07:39 +02:00
Anuken f8ddc8325c Fixed puddle/IO crash / crafter storage / player NaN position / red tint 2018-08-14 12:24:04 -04:00
Anuken 59ec09e82c Crash fixes / Resource-steal fixed / No-build while shooting fixed 2018-08-14 12:16:21 -04:00
Anuken 2ae5c96690 Merge remote-tracking branch 'origin/master' 2018-08-14 10:42:09 -04:00
Anuken fda9e6bb9c Various crashes fixed 2018-08-14 10:41:54 -04:00
Anuken 29bcb8e07c Removed bars 2018-08-14 10:29:45 -04:00
Leone25 b70de81c2d Update bundle_ita.properties 2018-08-14 14:41:38 +02:00
Gureumi 5e89b2568f Add korean chat fonts + fix typos 2018-08-14 15:59:07 +09:00
Anuken ac1d8215ff Merge pull request #182 from Prosta4okua/patch-18
[COMPLETE]Update bundle_ru.properties
2018-08-13 22:21:06 -04:00
Leone25 fefc734bfa Update bundle_ita.properties 2018-08-12 22:24:10 +02:00
Prosta4okua 7f8735842c Update bundle_ru.properties 2018-08-12 22:28:23 +03:00
Prosta4okua a226983470 Update bundle_ru.properties 2018-08-12 19:19:07 +03:00
Prosta4okua 28526d0a12 Update bundle_ru.properties 2018-08-12 18:54:51 +03:00
Prosta4okua 913e005bae Update bundle_ru.properties 2018-08-12 10:44:56 +03:00
Prosta4okua 7bd9fd5bae Update bundle_ru.properties 2018-08-12 00:12:55 +03:00
Anuken 8986b89d67 Removed unit ammo 2018-08-10 10:45:37 -04:00
Anuken ef936214f0 Merge pull request #180 from Prosta4okua/patch-17
[Complete]Update bundle_uk_UA.properties
2018-08-10 10:20:43 -04:00
Anuken 18fce6b3e3 Merge pull request #179 from cloud9350/master
Change items name texts and update font
2018-08-10 09:12:52 -04:00
Prosta4okua ecda4d74ab Update bundle_uk_UA.properties 2018-08-10 16:12:44 +03:00
Prosta4okua 31124037b5 Update bundle_uk_UA.properties 2018-08-10 16:07:46 +03:00
Prosta4okua aaf95e0756 Update bundle_uk_UA.properties 2018-08-10 16:06:01 +03:00
Gureumi 804e311875 Update 2018-08-10 19:21:46 +09:00
Anuken 61ad9bc47d Merge remote-tracking branch 'origin/master' 2018-08-09 22:20:52 -04:00
Anuken 2b23b7876a Minor bugfix 2018-08-09 22:20:46 -04:00
Anuken 547d334f43 Merge pull request #178 from Leone25/patch-1
update italian boundle_ita
2018-08-09 19:29:34 -04:00
Leone25 7432dc115e Update bundle_ita.properties 2018-08-10 00:48:20 +02:00
Anuken 905defe8ce Merge pull request #177 from Prosta4okua/patch-15
Update bundle_ru.properties
2018-08-09 18:35:44 -04:00
Prosta4okua 0a8ff0cde7 Update bundle_ru.properties 2018-08-10 00:59:27 +03:00
Prosta4okua bd5f44030e Update bundle_ru.properties 2018-08-10 00:53:41 +03:00
Anuken 79abb86262 Merge remote-tracking branch 'origin/master' 2018-08-09 17:45:09 -04:00
Anuken fe6f98ec5a Minor bugfixes / Added block names to bundle/ Autogen ore names 2018-08-09 17:44:52 -04:00
Anuken e39a856e54 Update TRANSLATING.md 2018-08-09 09:47:15 -04:00
Anuken 64e5f8155d Merge pull request #176 from cloud9350/patch-1
Update language ko file
2018-08-09 09:20:10 -04:00
Gureumi 8328b11f6b Update. 2018-08-09 19:54:09 +09:00
Anuken 15778b2ca5 Server hotfix 2018-08-08 22:37:52 -04:00
Anuken b7842014c1 Fixed minor autotile bug 2018-08-08 22:29:56 -04:00
Anuken a804053904 Typo fix / Biomatter compressor buffed 2018-08-08 21:10:57 -04:00
Anuken 2aee72b47b Improved host command 2018-08-08 20:57:24 -04:00
Anuken 0cb8c600b7 Merge remote-tracking branch 'origin/master' 2018-08-08 20:53:02 -04:00
Anuken aa5348f37e Auto-play server sectors / Difficulty decrease / Improved d/c messages 2018-08-08 20:52:51 -04:00
Anuken 0736574a57 Merge pull request #174 from Prosta4okua/patch-13
[Сomlete]Update bundle_ru.properties
2018-08-08 20:07:23 -04:00
Anuken d56365ce63 Merge pull request #175 from CinExPL/patch-1
Update bundle_pl.properties
2018-08-08 20:07:14 -04:00
Prosta4okua c82d2f856a Update bundle_ru.properties 2018-08-09 00:02:22 +03:00
Prosta4okua 8432677826 Update bundle_ru.properties 2018-08-08 23:58:41 +03:00
Prosta4okua 0c0c6e5470 Update bundle_ru.properties 2018-08-08 23:56:42 +03:00
Anuken 57019b6e20 Fixed oil extractor desync / Buffed thermal genenerator / Typo fix 2018-08-08 16:00:33 -04:00
CinExPL 12ab2249b4 Update bundle_pl.properties 2018-08-08 21:10:42 +02:00
Anuken 22d0992d38 Merge remote-tracking branch 'origin/master' 2018-08-08 15:04:04 -04:00
Anuken f8def04653 Overall difficulty decrease / Crash fix / Server fillitems command 2018-08-08 15:02:51 -04:00
Anuken 6349530fc5 Updated build.gradle 2018-08-08 14:42:10 -04:00
Anuken ad83a7dcc3 Merge remote-tracking branch 'origin/master' 2018-08-08 12:37:46 -04:00
Anuken cfc2239733 Minor iso changes 2018-08-08 12:37:29 -04:00
Anuken 91552a3a2b Various bugfixes 2018-08-08 12:22:47 -04:00
Anuken 4e3204bc6d All known crashes fixed 2018-08-08 11:18:30 -04:00
Anuken a94998bd02 Merge remote-tracking branch 'origin/master' 2018-08-08 10:43:09 -04:00
Anuken 81c78eafa6 Biomass compressor fix / Crash fix / Removed spawners in waves 2018-08-08 10:43:03 -04:00
Prosta4okua 273523480f Update bundle_ru.properties 2018-08-08 08:34:44 +03:00
Anuken b27fefae88 Misc fixes 2018-08-08 01:09:57 -04:00
Anuken aa00a1b8d1 Minor save-time fix 2018-08-07 20:16:50 -04:00
Anuken ba62e0eefc Fixed playtime not resetting on save exit 2018-08-07 19:46:05 -04:00
Anuken cb16c75e11 Minor bundle fixes / Web build fixed 2018-08-07 19:36:56 -04:00
Anuken 3efed0ace3 Added sector loc display 2018-08-07 19:04:58 -04:00
Anuken 879fb8194f Further nerfed AI 2018-08-07 19:01:23 -04:00
Anuken 049dd89470 Fixed drone spam 2018-08-07 18:49:43 -04:00
Anuken 1f59d4354a Fixed retreat command, more pathfinding 2018-08-07 18:26:16 -04:00
Anuken 8dea45d9d5 More pathfinding fixes 2018-08-07 18:19:02 -04:00
Anuken 21ba6e257c Added indicator when core is under attack 2018-08-07 17:01:17 -04:00
Anuken 18ebda01a4 Drill balancing / More starting resources 2018-08-07 16:13:37 -04:00
Leone25 3acb843109 Update bundle_ita.properties 2018-08-07 21:48:42 +02:00
Leone25 1768aea66f Update bundle_ita.properties 2018-08-07 20:54:40 +02:00
Anuken 4b61f273d5 Targeting fixes / command center fixes 2018-08-07 11:59:16 -04:00
Anuken a1dbbbdafc Crash fixes / 2x2 drills 2018-08-07 11:40:25 -04:00
Anuken dcb840f290 Many bugfixes / Dagger unit buffed / Build times increased 2018-08-07 11:17:32 -04:00
Anuken e6c4c66199 All drill costs decreased / Fixed specific sector save errors 2018-08-06 23:32:43 -04:00
Anuken b76cd558aa Added difficulty grace period scaling 2018-08-06 22:58:22 -04:00
Anuken 85b077b5c5 Additional recipe balancing 2018-08-06 22:03:25 -04:00
Anuken c34d6e6606 Improved targeting / Balancing / Monsoon nerf 2018-08-06 19:17:42 -04:00
Anuken a5fd0aebe6 Fixed armageddon / Removed idle command / Balancing 2018-08-06 19:04:07 -04:00
Anuken aaec04d04a Balancing / Made pads spawn infinite units 2018-08-06 16:58:44 -04:00
Leone25 b4272e0387 Update bundle_ita.properties 2018-08-06 20:44:09 +02:00
Anuken 77f9d6cb1d Grace period increased / Even more starting resources / Pulverizer buff 2018-08-06 12:52:29 -04:00
Anuken aaa82b34e4 Difficulty display / More starting resources / Recipe tweaks 2018-08-06 12:42:34 -04:00
Anuken 7a6b1129d9 Merge remote-tracking branch 'origin/master' 2018-08-06 12:23:12 -04:00
Anuken 1f8918c773 Added starter items based on difficulty 2018-08-06 12:22:55 -04:00
Anuken e9fe724e59 Merge pull request #172 from Prosta4okua/patch-11
(Complete)Update bundle_ru.properties
2018-08-06 11:21:41 -04:00
Anuken 80001246ef Added sector wave difficulty / ita bundle updated 2018-08-06 11:19:44 -04:00
Anuken 50461bb7c8 Merge pull request #164 from Leone25/patch-2 2018-08-06 11:17:29 -04:00
Anuken c7c7cfde74 Merge branch 'master' into patch-2 2018-08-06 11:17:20 -04:00
Anuken dcc29c0c48 Fixed extremely suicidal enemies / Conveyor tile fixes 2018-08-06 10:54:56 -04:00
Anuken 635e299464 Tweaked spawn times / Liquid bridge fixes 2018-08-06 10:31:50 -04:00
Gab_351 502c4e51ae Translate l227 to l239 2018-08-06 15:16:39 +03:00
Prosta4okua 382fdcbb40 Update bundle_ru.properties 2018-08-06 15:03:23 +03:00
Anuken 468e092422 Pad ammo autofill / Per-mission waves / Better core resource selection 2018-08-05 23:19:11 -04:00
Anuken 6904d4693f Merge remote-tracking branch 'origin/master' 2018-08-05 19:19:55 -04:00
Anuken 3ef7ec3be5 Bundles updated 2018-08-05 19:19:50 -04:00
Anuken 70257cbbfa Merge pull request #170 from Prosta4okua/patch-10
[Complete] Update bundle_ru.properties
2018-08-05 19:18:25 -04:00
Anuken 6ef31d0ec1 Added spawner grace period 2018-08-05 19:17:46 -04:00
Prosta4okua d3077bec58 Update bundle_ru.properties 2018-08-06 00:12:50 +03:00
Prosta4okua a1095353fc Update bundle_ru.properties 2018-08-06 00:11:19 +03:00
Anuken 66fab1b3df Added thermal generator / Enemy bases with spawning 2018-08-05 17:00:26 -04:00
Prosta4okua 569d6d4272 Update bundle_ru.properties 2018-08-05 19:09:01 +03:00
Anuken 07c19ce085 Added thermal pump / Better conveyor autotile 2018-08-05 10:14:18 -04:00
Anuken d86dd4f80b Fixed terrible spawn generation 2018-08-04 23:19:10 -04:00
Anuken f0f89f0894 New non-clipped 8x8 turret sprites 2018-08-04 20:19:04 -04:00
Anuken 47af2e83f7 Improved structure generation 2018-08-04 16:58:31 -04:00
Anuken 8ec87872c8 Added outpost schematic system 2018-08-04 14:51:33 -04:00
Anuken f30ea80b42 Made units self-destruct after spawner removal 2018-08-03 20:22:33 -04:00
Anuken 1dd6e66167 Added basic enemy outposts 2018-08-03 16:39:12 -04:00
Anuken 4e681b2dd1 Merge remote-tracking branch 'origin/master' 2018-08-03 12:13:39 -04:00
Anuken 58be00b3ce Exploit fixes 2018-08-03 12:13:17 -04:00
Anuken 5604ac6b6a Merge pull request #169 from Prosta4okua/patch-9
[COMPLETE]Update bundle_ru.properties
2018-08-03 10:53:52 -04:00
Anuken effdaefdf3 Added built-in sandbox map 2018-08-02 13:58:02 -04:00
Anuken 5775fad030 Fixed core generation 2018-08-02 12:00:29 -04:00
Prosta4okua eabc6d79c3 Update bundle_ru.properties 2018-08-02 12:44:35 +03:00
Prosta4okua 5f4ca6e383 Update bundle_ru.properties 2018-08-02 11:57:11 +03:00
Anuken c05020e28e Fixed no-wave FPS display / Fixed unit pad inventories 2018-08-01 22:14:43 -04:00
Anuken 5206079e23 Implemented sandbox mode 2018-08-01 20:13:57 -04:00
Anuken 9b01140882 Fixed merge conflicts 2018-08-01 18:44:53 -04:00
Anuken 4dae27da98 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/assets/bundles/bundle_ru.properties
2018-08-01 18:44:25 -04:00
Anuken f0cab65a6d Bundles updated 2018-08-01 18:38:48 -04:00
Anuken 699a47351b Merge pull request #168 from Prosta4okua/patch-8
[COMPLETE]Update bundle_ru.properties
2018-08-01 18:37:51 -04:00
Anuken af004da699 Added mission completion dialog / Bundle fixes 2018-08-01 18:31:44 -04:00
Prosta4okua b5ad885237 Update bundle_ru.properties 2018-08-01 23:45:08 +03:00
Prosta4okua 07bd0fec70 Update bundle_ru.properties 2018-08-01 23:44:25 +03:00
Prosta4okua 318e51d736 Update bundle_ru.properties 2018-08-01 23:43:18 +03:00
Anuken ae90db50fe Added monsoon pad / Renamed factories to pads 2018-08-01 16:18:13 -04:00
Prosta4okua 64772c195e Update bundle_ru.properties 2018-08-01 21:17:23 +03:00
Prosta4okua 05ead63bdc Update bundle_ru.properties 2018-08-01 21:16:55 +03:00
Prosta4okua 6f5c64420d Update bundle_ru.properties 2018-08-01 20:59:45 +03:00
Prosta4okua d9d9a00a24 Update bundle_ru.properties 2018-08-01 20:53:01 +03:00
Anuken c1de67032c Nerfed monsoon bomber 2018-08-01 13:09:46 -04:00
Anuken 890d49fdd7 Merge remote-tracking branch 'origin/master' 2018-08-01 12:46:54 -04:00
Anuken ba96ea5a0c Gamemode-specfic missions / Red-enabled location verification 2018-08-01 12:19:17 -04:00
Anuken b481b784bb Merge pull request #166 from Predator127/patch-4
Fixed PT-BR
2018-07-31 21:56:58 -04:00
Anuken 53b6e68a85 Merge remote-tracking branch 'origin/master' 2018-07-31 21:55:22 -04:00
Anuken e3d16418a0 Added island around core generation 2018-07-31 21:53:40 -04:00
Predator127 e41f560ecd Fixed PT-BR
Small fixes.
2018-07-31 17:49:14 -03:00
Anuken d394d9a529 Merge pull request #165 from bdjnk/patch-1
fix english translation bundle link, fix spelling
2018-07-31 15:55:14 -04:00
Michael Plotke a73015fa6e fix english translation bundle link, fix spelling 2018-07-31 14:37:54 -04:00
Anuken 87846864cc Merge remote-tracking branch 'origin/master' 2018-07-31 12:57:48 -04:00
Anuken f3b976bdd1 All web version bugs fixed 2018-07-31 12:57:34 -04:00
Anuken 3a06e319b0 Merge pull request #163 from toushangyouxiang/master
Add bundle_zh_CN.properties
2018-07-31 07:02:25 -07:00
Anuken fe31c404ff Merge pull request #162 from Predator127/patch-3
Huehue
2018-07-31 07:02:16 -07:00
Anuken cc23378758 Updated gradle version 2018-07-31 09:48:33 -04:00
toushangyouxiang 5cac949ea8 fix translation 2018-07-31 21:02:25 +08:00
toushangyouxiang a35e897194 translate fix 2018-07-31 21:01:29 +08:00
toushangyouxiang 8e92edeae1 add bundle_zh_CN.properties 2018-07-31 14:25:32 +08:00
toushangyouxiang f289a0a9a8 fix name 2018-07-31 14:20:20 +08:00
toushangyouxiang 65a7e89a8c add bundle_zh_CN.properties 2018-07-31 14:17:01 +08:00
Anuken 43be3259c9 Removed all websocket code 2018-07-30 23:43:11 -04:00
Anuken 54a4c95a1b Minor UI fixes 2018-07-30 23:32:43 -04:00
Anuken ddac5cbfbc Added unit type descriptions / Changed blast drill sprite 2018-07-30 21:20:00 -04:00
Anuken 22342d01a5 Added blast drill 2018-07-30 19:40:44 -04:00
Predator127 7cffaeb193 Huehue
small changes
2018-07-30 19:34:55 -03:00
Anuken 2534496543 Merge remote-tracking branch 'origin/master' 2018-07-30 17:00:24 -04:00
Anuken fe9b11e771 Fully implemented mass driver 2018-07-30 17:00:18 -04:00
Anuken 032347840f Merge pull request #161 from Prosta4okua/patch-6
[COMPLETE] Upt8te bundle_ru.properties
2018-07-30 10:50:24 -07:00
Prosta4okua 2978bc6ac5 Update bundle_ru.properties 2018-07-30 19:24:06 +03:00
Prosta4okua a3b0bb323f Update bundle_ru.properties 2018-07-30 19:23:06 +03:00
Prosta4okua a6246d27d9 [INCOMPLETE]Upt8te bundle_ru.properties 2018-07-30 19:11:25 +03:00
Anuken 884b649b53 Merge pull request #160 from Predator127/patch-2
Update bundle_pt_BR.properties
2018-07-29 16:29:31 -07:00
Predator127 92a2f770b4 Update bundle_pt_BR.properties 2018-07-29 20:02:54 -03:00
Anuken e88ce078df Fixed place distance not being respected 2018-07-29 19:00:29 -04:00
Anuken 77f0dfb9b1 Added system to query block outputs / Editor bugfixes 2018-07-29 17:41:27 -04:00
Anuken 78d1accf07 Added resource mission 2018-07-29 12:26:48 -04:00
Anuken 2ec68a7f07 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/assets/bundles/bundle_pt_BR.properties
2018-07-29 12:01:52 -04:00
Anuken bbaa2a2c92 Updated bundles, removed unused text 2018-07-29 12:01:25 -04:00
Anuken 341bb67ef4 Merge pull request #159 from TriggeredBoi/patch-1
Update bundle_pt_BR.properties
2018-07-29 09:00:43 -07:00
Anuken e377cb423b Merge remote-tracking branch 'origin/master' 2018-07-29 11:57:56 -04:00
Anuken 81e954c258 Implemented multi-mission sectors / Various bugfixes 2018-07-29 11:57:46 -04:00
Trigg 79d41ba7ac Update bundle_pt_BR.properties
fixed some stuff for now, I guess

(Don't want to be rude, but a good chunk of Predator's translation seems to have been made by fucken google translate )
2018-07-29 12:20:30 -03:00
Anuken e740e4da87 Merge pull request #158 from Predator127/patch-1
Update bundle_pt_BR.properties
2018-07-29 06:51:58 -07:00
Predator127 b476c47194 Update bundle_pt_BR.properties 2018-07-28 23:33:56 -03:00
Anuken b2d61a93d9 Added sector mission display and generation 2018-07-28 22:06:01 -04:00
Anuken a045ec9d46 Fixed sector dialog UI scaling 2018-07-28 12:59:52 -04:00
Anuken 1daf8d2743 cleanup of cleanup 2018-07-28 12:52:02 -04:00
Anuken 295824f440 Minor cleanup 2018-07-28 12:50:11 -04:00
Anuken 22b59e0cf6 Merge pull request #157 from Ameb/libgdx-miui-fix
Introduce workaround for libgdx issue by @codegist
2018-07-28 08:49:52 -07:00
Ameb ecabdb82e6 Introduce workaround for libgdx issue by @codegist
libgdx/libgdx#3861 libgdx/libgdx#4626 libgdx/libgdx#5312
2018-07-28 17:24:20 +02:00
Anuken 924b1c1a67 Fixed #156 2018-07-28 10:06:28 -04:00
Anuken 0454c4c25a Added skin aliases 2018-07-28 09:44:38 -04:00
Anuken 3a3b81941b Fixed server fog not being cleared by blocks 2018-07-27 20:18:04 -04:00
Anuken 0875c29da5 Implemented fog saving 2018-07-27 17:26:12 -04:00
Anuken 0d4cf9f6c4 Mac crash fix 2018-07-27 14:26:34 -04:00
Anuken 6a525dcf59 Mac crash fix 2018-07-27 14:25:06 -04:00
Anuken 01f6904f82 Tile field encapsulation 2018-07-27 10:52:14 -04:00
Anuken 23bd9a989b Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/assets/bundles/bundle_ru.properties
2018-07-27 09:15:24 -04:00
Anuken acfa02475b Updated bundles 2018-07-27 09:10:39 -04:00
Anuken 9dba304011 Merge pull request #151 from Prosta4okua/patch-5
[COMPLETE]Update bundle_ru.properties
2018-07-27 09:09:37 -04:00
Prosta4okua 69b0020d15 Update bundle_ru.properties 2018-07-27 10:03:52 +03:00
Anuken ce2896cb38 Command center name added / Regression fix 2018-07-26 23:04:37 -04:00
Anuken 68fd09c222 Improved unit commands 2018-07-26 19:20:47 -04:00
Anuken c832a7b93f Full command center implementation 2018-07-26 17:51:25 -04:00
Anuken 49e19ab34d Removed 'in' class 2018-07-26 15:40:35 -04:00
Anuken c1c82b451d Removed multi-class call generation 2018-07-26 15:24:48 -04:00
Anuken ea6f88b7f6 Added basic command center logic 2018-07-26 15:17:23 -04:00
Anuken 2a6ee6d65b Bundle cleanup 2018-07-26 14:19:58 -04:00
Anuken 583342b430 Merge remote-tracking branch 'origin/master' 2018-07-26 13:34:25 -04:00
Anuken 7289c1080c Cleaned up custom game dialog / Disabled saving in sectors 2018-07-26 13:34:20 -04:00
Prosta4okua 9ed4f2b7a3 Update bundle_ru.properties 2018-07-26 19:40:51 +03:00
Prosta4okua 7396f91a5e Update bundle_ru.properties 2018-07-26 19:39:48 +03:00
Prosta4okua ccc926d812 Update bundle_ru.properties 2018-07-26 19:36:26 +03:00
Prosta4okua bd39255ead Update bundle_ru.properties 2018-07-26 19:31:21 +03:00
Prosta4okua add7b1a7d9 Update bundle_ru.properties 2018-07-26 19:29:19 +03:00
Prosta4okua 8e471f9939 Update bundle_ru.properties 2018-07-26 19:24:08 +03:00
Prosta4okua c61568ef98 Update bundle_ru.properties 2018-07-26 19:13:47 +03:00
Prosta4okua 3260e45e71 Update bundle_ru.properties 2018-07-26 19:11:48 +03:00
Prosta4okua ea61b560b8 Update bundle_ru.properties 2018-07-26 19:03:58 +03:00
Prosta4okua f8ad7d485b [INCOMPLETE]Update bundle_ru.properties 2018-07-26 18:58:24 +03:00
Anuken 229e624434 Merge pull request #150 from Prosta4okua/patch-4
Update bundle_ru.properties
2018-07-26 11:19:31 -04:00
Anuken 7a3fb9c759 Sector size increased / Cores moved / Fixed desktop recipes appearing 2018-07-26 10:47:46 -04:00
Prosta4okua 9a7ea0d28c Update bundle_ru.properties 2018-07-26 17:40:38 +03:00
Anuken ee5e655668 Made splitter faster when unchained 2018-07-25 17:29:43 -04:00
Anuken 58be055f57 Added interceptor factory / Sector-specific ore gen 2018-07-24 21:57:09 -04:00
Leone25 38e1944503 Update bundle_ita.properties 2018-07-24 16:34:52 +02:00
Anuken 992b402e9c Merge remote-tracking branch 'origin/master' 2018-07-24 10:15:31 -04:00
Anuken 81bf28e4ed Fixed build error / Added per-type drone mine config 2018-07-24 10:15:25 -04:00
Anuken f10734b083 Merge pull request #149 from Prosta4okua/patch-3
[Сomplete]Upd8te bundle_ru.properties
2018-07-24 10:00:35 -04:00
Anuken bf8f565631 Fixed ore-cliff blending 2018-07-24 09:18:04 -04:00
Anuken 9bc1ff8fa2 Added unit type unlocking / Fixed viewing of enemy block stats 2018-07-24 09:08:35 -04:00
Prosta4okua 56239b6bbf Up8te bundle_ru.properties
It's all?!
2018-07-24 13:44:30 +03:00
Leone25 cedd2bfe57 Update bundle_ita.properties 2018-07-24 10:42:09 +02:00
Anuken 7e187a57d8 Volcanic terrain now more frequent 2018-07-23 22:58:56 -04:00
Anuken 572a30a2c5 Improved worldgen 2018-07-23 22:36:39 -04:00
Anuken f3235ef7e8 Merge remote-tracking branch 'origin/master' 2018-07-23 20:44:42 -04:00
Anuken 7448eb32cc Added battle misson / Team block colors / Mission worldgen 2018-07-23 20:44:33 -04:00
Anuken 33e8cc4711 Merge pull request #148 from Prosta4okua/patch-2
[WIP] Update bundle_ru.properties
2018-07-23 17:53:27 -04:00
Prosta4okua 6cdb016c2c [WIP] Update bundle_ru.properties 2018-07-23 23:45:43 +03:00
Leone25 ababb7f5ab Update bundle_ita.properties 2018-07-23 21:24:23 +02:00
Leone25 9f2b66e09d Update bundle_ita.properties 2018-07-23 20:56:38 +02:00
Leone25 8de267f6a9 Update bundle_ita.properties 2018-07-23 19:20:58 +02:00
Anuken ecf9a3cbc9 Added FPS cap setting / Bugfixes 2018-07-23 11:09:51 -04:00
Anuken 01300b97e2 Changed game over menu for sectors 2018-07-22 19:06:52 -04:00
Leone25 787163fb06 Flew changes at the bottom 2018-07-22 22:18:51 +02:00
Anuken 3701a3c3d9 Updated italian bundle 2018-07-22 15:55:36 -04:00
Anuken 68c51bb1bc More generation improvements 2018-07-22 13:29:01 -04:00
Anuken df147c700c Merge remote-tracking branch 'origin/master' 2018-07-21 22:05:10 -04:00
Anuken f5fc4d99dd Improved generation 2018-07-21 22:04:10 -04:00
Anuken 2a4aa9e550 Merge pull request #145 from theshadowknight/patch-2
PL update
2018-07-21 17:38:12 -04:00
theshadowknight 0a489f1117 . 2018-07-21 18:16:33 +02:00
theshadowknight 9cc7c061a3 FINAL 2018-07-21 18:10:38 +02:00
theshadowknight a1e7274ec3 I think it is final
*think*
2018-07-21 17:59:44 +02:00
theshadowknight 51d516a39e . 2018-07-21 17:49:32 +02:00
theshadowknight de7c38231c look 2018-07-21 17:46:48 +02:00
theshadowknight c352ef9382 PL update
YAY! *Some easter eggs here*
2018-07-21 17:15:14 +02:00
Anuken e36b5551e9 Added translation testing info, useful information 2018-07-21 11:13:21 -04:00
Anuken 57856c38d6 Merge remote-tracking branch 'origin/master' 2018-07-21 10:07:01 -04:00
Anuken 2a8e02339b Added disclaimer 2018-07-21 10:06:20 -04:00
Anuken 57f94ca6a2 Merge pull request #144 from theshadowknight/patch-1
PL translation update
2018-07-21 10:03:17 -04:00
theshadowknight 0eaca8b80a PL translation update
I finished at 458
2018-07-21 13:00:56 +02:00
Anuken d2dbab57dc Updated translation guide 2018-07-21 00:47:31 -04:00
Anuken cb448a3494 Ignored locales.json 2018-07-21 00:45:11 -04:00
Anuken 3fa6eae05b Removed locales.json 2018-07-21 00:44:49 -04:00
Anuken 52cc7d699a Added translation guide / Added locale list autogen 2018-07-21 00:44:13 -04:00
Anuken ec4eac3a7d Moved locale declaration to json file 2018-07-20 23:48:42 -04:00
Anuken fbcfb23676 fixBundles -> updateBundles 2018-07-20 20:35:53 -04:00
Anuken dbb2371801 Re-added block shadows / Block optimization 2018-07-20 18:41:08 -04:00
Anuken 4d6dc9546f Fixed cliffs not blending properly 2018-07-20 16:52:42 -04:00
Anuken 06b9d328f4 Added auto-generated cliffs for floor blocks 2018-07-20 16:06:26 -04:00
Anuken 48c7daa4ab iOS fixes 2018-07-20 13:59:00 -04:00
Anuken 3c83b88127 Multi-threaded generation previews 2018-07-20 09:26:41 -04:00
Anuken 3a63fa5475 Generation minor improvements / Added debug map view 2018-07-19 20:46:30 -04:00
Anuken 882790d133 Sleeping system changes 2018-07-19 18:10:29 -04:00
Anuken bcf72b894d Fixed conveyor entities not sleeping 2018-07-19 17:58:16 -04:00
Anuken 9f723c39ef Bundles updated / Fixed player name color changing join/leave text 2018-07-19 14:20:51 -04:00
Anuken 56fc40a64d Removed sound assets / Fixed text wrap / Proper screen clear 2018-07-19 11:06:10 -04:00
Anuken 091f591ffb Added sector-specific spawns 2018-07-19 09:58:19 -04:00
Anuken 4d88a8206a Fixed unnecessary disconnect messages / Fixed player ban crash 2018-07-19 09:30:58 -04:00
Anuken 363bf7c552 Removed sector camera clamp / Added map edge padding / Turret sprite fix 2018-07-18 22:43:35 -04:00
Anuken 7ff4e5879d Implemented multi-cell sectors 2018-07-18 13:23:54 -04:00
Anuken 0b7decbfdd Removed static block layer / Minor bugfixes 2018-07-18 10:40:31 -04:00
Anuken be9ea33aa4 Improved floodfill / Fixed resource use bug / Fixed editor turret draw 2018-07-17 23:20:05 -04:00
Anuken d4b2cad94e Merge remote-tracking branch 'origin/master' 2018-07-17 19:19:55 -04:00
Anuken ac039ce7cd Fixed sector world gen / Added sector goal unlocks 2018-07-17 19:12:44 -04:00
Anuken 946e60937d iOS fixes 2018-07-17 14:15:43 -04:00
Anuken 6f6601d270 Improved sector dialog look / Made mobile versions show play select 2018-07-17 13:19:20 -04:00
Anuken 71016f0d7c Updated uCore / Added hidden sector saves 2018-07-17 12:47:11 -04:00
Anuken c2c2551607 Implemented save time recording 2018-07-17 10:42:44 -04:00
Anuken d7812ec030 New save slot system / Buffed smelter / Fixed flying shadow glitches 2018-07-17 09:18:19 -04:00
Anuken f184b0700f Fixed conveyor/conduit crash / Improved conveyor movement 2018-07-16 21:44:15 -04:00
Anuken 07f0be8d8d Updated uCore / Sector deploying support 2018-07-16 20:53:35 -04:00
Anuken dd45b43d7f Classes moved / Fixed autotile bugs / Added sector display 2018-07-16 18:42:29 -04:00
Anuken 9b505106e3 Fixed ugly oversized shadows in corner autotiles 2018-07-16 09:42:13 -04:00
Anuken d552f37daf Added conveyor autotiling / Fixed autotile update bug 2018-07-15 22:33:14 -04:00
Anuken 6a7ff13859 Added basic sector classes / Changed play menu dialog 2018-07-15 17:19:33 -04:00
Anuken 9e3af13efc Added build version warning for servers 2018-07-15 14:51:03 -04:00
Anuken 92a968217c Fixed power being set to NaN / Set splitter sprite to router 2018-07-15 11:50:06 -04:00
Anuken 37b9df3202 Removed all UI builders / Updated uCore and functional interfaces 2018-07-14 22:06:03 -04:00
Anuken 7dc33111fc Changed default world size back 2018-07-14 20:04:27 -04:00
Anuken ab2f260a52 Fixed some crashes 2018-07-14 17:16:13 -04:00
Anuken 1aa4b8cb88 Fixed crash report displaying location incorrectly 2018-07-14 17:00:33 -04:00
Anuken dfed36748c Fixed saves not loading / Increased biomatter compressor output 2018-07-14 16:06:38 -04:00
Anuken d35f736548 Updated traditional chinese bundle / Fixed korean bundle 2018-07-14 12:14:22 -04:00
Anuken cfecdae970 Class package refactoring 2018-07-14 12:11:48 -04:00
Anuken 59ade6cf09 Vault optimizations / Removed unloader 2018-07-14 10:47:18 -04:00
Anuken 642842888a Removed Waffle.io links 2018-07-14 09:34:19 -04:00
Anuken 3ae51edf3a Merge branch '4.0' of https://github.com/Anuken/Mindustry
# Conflicts:
#	core/assets/bundles/bundle_ko.properties
#	core/src/io/anuke/mindustry/Vars.java
#	core/src/io/anuke/mindustry/core/UI.java
2018-07-14 09:32:55 -04:00
Anuken d8ccb81015 Merge remote-tracking branch 'origin/4.0' into 4.0 2018-07-14 09:26:43 -04:00
Anuken 0db6020231 Increased bridge range / Bugfixes 2018-07-14 09:26:34 -04:00
Anuken 738c0a5c9c Merge pull request #143 from player20033/patch-1
#142 Solution
2018-07-13 22:12:51 -04:00
player20033 a2f7d3e241 #142 Solution 2018-07-14 10:02:13 +08:00
Anuken 9b86ded164 Merge pull request #141 from cloud9350/patch-4
Update bundle_ko.properties
2018-07-13 20:00:34 -04:00
Gureumi 6cbb645b10 Update bundle_ko.properties 2018-07-14 08:54:55 +09:00
Anuken 066a1d7591 Merge remote-tracking branch 'origin/4.0' into 4.0
# Conflicts:
#	core/src/io/anuke/mindustry/Vars.java
2018-07-13 19:54:20 -04:00
Anuken 5f82d575ee iOS fixes 2018-07-13 19:50:18 -04:00
Anuken 302ae0a83c Merge remote-tracking branch 'origin/4.0' into 4.0
# Conflicts:
#	core/assets/bundles/bundle_ko.properties
2018-07-13 13:48:52 -04:00
Anuken 82c4c791cc Added message for loading broken saves 2018-07-13 13:43:37 -04:00
Anuken 3c0310120d Merge pull request #140 from cloud9350/patch-4
Update bundle_ko.properties
2018-07-13 13:24:05 -04:00
Anuken 21c106e9d5 Updated splitter description 2018-07-13 12:53:40 -04:00
Anuken 2c8cd2f8dc Fixed autosave not triggering 2018-07-13 12:50:45 -04:00
Anuken 380d9908b4 Fixed chat stopping velocity / Fixed drone repair not being synced 2018-07-13 11:46:16 -04:00
Anuken 6abef7d645 Fixed item bridge crash 2018-07-13 11:09:33 -04:00
Anuken 98ac25ac29 Fixed distributor 2018-07-13 10:21:17 -04:00
Anuken 93bec04c92 Fixed overflow gate, splitter 2018-07-13 10:11:42 -04:00
Gureumi 136559cddd Update bundle_ko.properties 2018-07-13 22:34:41 +09:00
Gureumi 3f63a6ed70 Update bundle_ko.properties 2018-07-13 22:24:00 +09:00
Anuken 2fcb3c4420 Bugfixes 2018-07-12 21:13:08 -04:00
Anuken baaeb229cf Formatting 2018-07-12 20:37:15 -04:00
Anuken a3bda3a941 Changed crash report location 2018-07-12 19:00:02 -04:00
Anuken 3d536aa28d Fixed player names not displaying 2018-07-12 18:58:02 -04:00
Anuken 454267455b Fixed mobile consume frag / Added ability for ship to mine 2018-07-12 15:44:05 -04:00
Anuken 8e9adeb4b4 Fixed web version bugs 2018-07-12 14:06:50 -04:00
Anuken 1f18e7beed Improved glitchy interpolation / Updated uCore 2018-07-12 11:38:09 -04:00
Anuken b5e8e54107 Added build tools to travis 2018-07-12 10:24:56 -04:00
Anuken f41e426b69 Reactor balancing / Fixed generators / Fixed pump crash / Travis update 2018-07-12 10:20:38 -04:00
Anuken 6375862a71 Fixed deadlock / Crafter fixes / Autotile fixes / Low FPS ship fixes 2018-07-12 09:11:28 -04:00
Anuken be2a745d78 Increased ore generation amount 2018-07-11 19:58:49 -04:00
Anuken d89feb2c75 Bugfixes, minor optimizations 2018-07-11 19:57:27 -04:00
Anuken b4a20c8fcb Fixed fog glitching around during screenshake 2018-07-11 12:30:07 -04:00
Anuken 73087a92f4 Fixed build error 2018-07-11 12:21:46 -04:00
Anuken 2b58bd5bd8 Optimizations 2018-07-11 12:19:21 -04:00
Anuken bce0101278 Fixed some multiplayer crashes 2018-07-10 21:04:14 -04:00
Anuken bba418c79d Added consumers for repair/resupply points 2018-07-10 18:57:50 -04:00
Anuken cb58eb82fc Added requirement display / Text fixes / Better crash reports 2018-07-10 16:53:35 -04:00
Anuken 3aafffabc1 Added BlockConsumeFragment 2018-07-10 11:41:51 -04:00
Anuken 66b9cdf64c Conduit autotiling / Added Block.onProximityUpdate() 2018-07-10 10:14:10 -04:00
Anuken d31fbf3b6f Added flyer shadows / Fixed block inventory rebuild spawn / Distributor 2018-07-09 20:18:50 -04:00
Anuken dbee30a412 Updated uCore / Made splitter distribute properly 2018-07-09 18:14:55 -04:00
Anuken f3cc881930 Status bar cleanup / Fixed power distribution / Fixed adjacency updates 2018-07-09 14:25:52 -04:00
Anuken 3d9c9e639d Automatic external bundle loading 2018-07-09 11:24:24 -04:00
Anuken d6969d2c74 Removed unused bundle keys 2018-07-09 11:06:15 -04:00
Anuken b7e28a73ba Bugfixes / Added tool to re-format bundles with missing text 2018-07-09 11:02:30 -04:00
Anuken 1e8206757d Various bugfixes / Fixed persistent inventory, block crashes 2018-07-08 23:59:02 -04:00
Anuken a0e94577fc Fixed infinite red square, glitchy shadows 2018-07-08 17:04:32 -04:00
Anuken a2a0c2f791 Fixed startup error 2018-07-08 16:50:52 -04:00
Anuken 63a0fde121 Offload optimizations / Compile errors fixed / Massive refactor 2018-07-08 16:38:29 -04:00
Anuken c06152de07 Consumption system more or less complete 2018-07-08 00:04:41 -04:00
Anuken 0b3ccbda20 Merge pull request #136 from JaiunL/patch-1
Translated a few parts
2018-07-07 21:00:03 -04:00
Anuken 97b7eb0768 Bugfixes / Compile error fixes / Removed routers 2018-07-07 13:48:20 -04:00
Jaiun Lee b712301804 Revised 2018-07-07 13:29:11 +09:00
Jaiun Lee 76ebe3ff41 Translated a few parts
Mostly focused on grammatical errors and inconsistency in styling. Still need multiple revisions on a full spectrum. Discord: Reaper#7917
2018-07-07 13:24:00 +09:00
Anuken d988bb1821 Massive amount of bugfixes / Multi-liquid support / Broken build 2018-07-06 23:24:14 -04:00
Anuken 64f1fbe400 Fixed many various crashes 2018-07-06 12:04:33 -04:00
Anuken c2c837329c Fixed block construction / Added build version to crash 2018-07-06 10:54:20 -04:00
Anuken b6531efe08 Merge remote-tracking branch 'origin/4.0' into 4.0 2018-07-06 09:52:26 -04:00
Anuken 2c97a4aefe Fixed importing saves / File chooser bad size 2018-07-06 09:52:18 -04:00
Anuken f0ffebd58c Delete vcs.xml 2018-07-05 18:56:48 -04:00
Anuken 05e407f064 Delete github_settings.xml 2018-07-05 18:56:33 -04:00
Anuken 6dd2eec1b6 Merge pull request #131 from Lorex/master
Add Traditional Chinese support
2018-07-05 18:56:12 -04:00
Anuken df13436688 Merge pull request #135 from cloud9350/patch-1
Update language file for game beta version
2018-07-05 18:54:27 -04:00
Anuken fa0d89b6df Fixed crash 2018-07-05 17:37:24 -04:00
Anuken ab0f8defa4 Merge branch '4.0' of https://github.com/Anuken/Mindustry into 4.0 2018-07-05 17:11:27 -04:00
Gureumi 14fe35bba0 Update bundle_ko.properties 2018-07-05 22:21:12 +09:00
Anuken cb9d3414f2 Merge branch '4.0' of https://github.com/Anuken/Mindustry into 4.0 2018-07-03 20:07:15 -04:00
Anuken 677526cb16 Fixed iOS NullPtr 2018-07-03 19:03:53 -04:00
Anuken 08690b9d9e Merge pull request #133 from cloud9350/patch-4
fix fatal language translate (bundle ko)
2018-06-18 23:10:07 -04:00
Gureumi d3eb9c9d99 Update bundle_ko.properties 2018-06-19 10:18:32 +09:00
Gureumi a0ef3a0e44 fix fatal language translate (bundle ko)
fix no show server version + host user name on list
2018-06-19 10:13:07 +09:00
Lorex 87c5ad79f4 IC-2018.1.4 <Lorex@DESKTOP-8V15HFB Merge branch 'master' 2018-06-09 16:33:18 +08:00
Lorex 2e210e7adc Add Traditional Chinese support 2018-06-09 16:15:17 +08:00
Lorex c56f4783c0 IC-2018.1.4 <Lorex@DESKTOP-8V15HFB Create vcs.xml, github_settings.xml 2018-06-09 16:13:55 +08:00
Lorex a1d351aa37 IC-2018.1.4 <Lorex@DESKTOP-8V15HFB Overwrite remote https://github.com/Lorex/Mindustry.git to local 2018-06-09 16:02:39 +08:00
1293 changed files with 44168 additions and 33609 deletions
+8 -1
View File
@@ -1,7 +1,10 @@
##Packr, build stuff
logs/
/core/assets/mindustry-saves/
/core/assets/mindustry-maps/
/core/assets/bundles/output/
/core/assets/.gifimages/
/deploy/
/desktop/packr-out/
/desktop/packr-export/
@@ -12,13 +15,17 @@
/core/assets-raw/sprites/generated/
/annotations/build/
/kryonet/build/
/packer/build/
/tools/build/
/tests/build/
/server/build/
/test_files/
/annotations/build/
/android/assets/mindustry-maps/
/android/assets/mindustry-saves/
/core/assets/gifexport/
/core/assets/version.properties
/core/assets/locales
/ios/src/io/anuke/mindustry/gen/
*.gif
version.properties
+17 -20
View File
@@ -1,23 +1,20 @@
language: android
jdk:
- openjdk8
android:
components:
- android-26
# Additional components
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-26
script:
- ./gradlew desktop:dist
after_success:
- chmod +x upload-build.sh
- chmod +x cleanup_builds.sh
- ./upload-build.sh
- openjdk8
script:
- "./gradlew test"
- "./gradlew desktop:dist"
- "./gradlew server:dist"
deploy:
provider: releases
skip_cleanup: true
draft: false
api_key:
secure: Cv5wFtWt62/A24EvSEQvMow7gKPbZ3oATEFPuSghhB2TQz1dA40Zee3Qvk4LFlpLrhYo4K0ZSczCZRGpR+hCd8+Dpww52bheYEvWuh3ZQfvu/fXtEx2j5PwP1qMpmIgSxETV/gkD7l9FImdh0VzktYiAvQfmi0bEocG9/D4QwjFpNat7iwBdcMiw1MvAygpdIWRsjiw0RKlB2mWarmoHhQ7Gu7qlU3j50uaEvcrtmU0pBUPggNQwQRv32i9NPvNFxrqqlUjDLIS8JFea99zCkp8BwYqbEvBIMzd+Qip1/stLJJA3+cDUClbsDtg8rAVetzpOrdLEEBmqShFe5MDl2yEHcsgpN9CFsyTaUfvB3P3rVjizvycMm42IsUkXQiarm5xTQ/TIA8Rd8AHiSKuweNCg1Fd5SFaRtKy8JVLXuxyfUccmyje6hhz2L4lS2Wfj3mAG7sqZUCXhWP79EKdGkiPOjKv4CwXEKmuH3BMVqPlNUZJr9Eg3sV1FG0h2l+MVOOnR635qdUbb49sYojYxVruMLX0BH1c4ZCu230m8CUoWA1Em1QNI75ya7+9Y5T6AsgWDVpBvdUo9fWNbdp+VQ0GskFQsJD5wtnxbcbHeFiERAgGBm7z6qt9u9LrQpBH+dsW52ADvYsu3L4nQEa+sdMHwTTwmGY+iUvsxu0DqxGg=
file:
- "desktop/build/libs/desktop-release.jar"
- "server/build/libs/server-release.jar"
on:
repo: Anuken/Mindustry
tags: true
+12 -11
View File
@@ -1,38 +1,39 @@
![Imgur](https://i.imgur.com/w4N0yhv.png)
[![Build Status](https://travis-ci.org/Anuken/Mindustry.svg?branch=master)](https://travis-ci.org/Anuken/Mindustry)
[![Waffle.io - Columns and their card count](https://badge.waffle.io/Anuken/Mindustry.svg?columns=all)](https://waffle.io/Anuken/Mindustry)
[![Build Status](https://travis-ci.org/Anuken/Mindustry.svg?branch=master)](https://travis-ci.org/Anuken/Mindustry)
[![Discord](https://img.shields.io/discord/391020510269669376.svg)](https://discord.gg/mindustry)
A pixelated sandbox tower defense game made using [LibGDX](https://libgdx.badlogicgames.com/). Winner of the [GDL Metal Monstrosity Jam](https://itch.io/jam/gdl---metal-monstrosity-jam).
_[Issue tracker](https://waffle.io/Anuken/Mindustry)_
_[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
_[Wiki](http://mindustry.wikia.com/wiki/Mindustry_Wiki)_
_[Discord](https://discord.gg/r8BkXNd)_
### Building
Bleeding-edge live builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/Mindustry/wiki).
Bleeding-edge live builds are generated automatically for every commit. You can see them [here](https://jenkins.hellomouse.net/job/mindustry/).
If you'd rather compile on your own, follow these instructions.
First, make sure you have Java 8 and JDK 8 installed. Open a terminal in the root directory, and run the following commands:
#### Windows
**_Windows_**
_Running:_ `gradlew desktop:run`
_Building:_ `gradlew desktop:dist`
_Running:_ `gradlew.bat desktop:run`
_Building:_ `gradlew.bat desktop:dist`
**_Linux_**
#### Linux
_Running:_ `./gradlew desktop:run`
_Building:_ `./gradlew desktop:dist`
#### For Server Builds...
Server builds are bundled with each released build (in Releases). If you'd rather compile on your own, replace 'desktop' with 'server' i.e. `gradlew server:dist`.
---
Gradle may take up to several minutes to download files. Be patient. <br>
After building, the output .JAR file should be in the output JAR file should be in `/desktop/build/libs/desktop-release.jar.`
After building, the output .JAR file should be in `/desktop/build/libs/desktop-release.jar` for desktop builds, and in `/server/build/libs/server-release.jar` for server builds.
### Downloads
+39
View File
@@ -0,0 +1,39 @@
## Translating for Mindustry
**DISCLAIMER:** *Currently, 4.0 is far from done, which means that things such as block names, descriptions, and core text will be changing often. If you begin translating now, you might have to re-do large chunks of the bundle before final release.*
To begin, log in to your GitHub account, or if you don't have one yet, create it [here](https://github.com/).
Consult [this list](https://www.science.co.il/language/Locale-codes.php) to find the locale code for your language. Once you've found it,
head over to the translation bundle folder and check the [list of bundles](https://github.com/Anuken/Mindustry/tree/master/core/assets/bundles) that have already been created.
You're looking for a file called "`bundle_`(insert locale code here)`.properties`". If you don't find one, create one manually (more info below).
#### Editing an existing translation
If a translation bundle already exists, that means someone has already started working on a translation. To edit it or translate text, simply click the file and press the edit (pencil) button in the top right. Once you're done editing, press the green "propose file change" button at the bottom, then "create pull request" (twice).
Once this is done, all you need to do is wait for me to approve your changes.
#### Creating a new translation bundle
If a translation bundle for your language *doesn't* exist, you need to create one yourself.
In the folder with all the bundles in it, click the *'create new file'* button, and name it `bundle_(locale code here).properties`.
Then, copy-paste the entire contents of the [English translation bundle](https://raw.githubusercontent.com/Anuken/Mindustry/master/core/assets/bundles/bundle.properties) into the file, and translate all the necessary text to your language.
Once you are done, press the *propose new file* button at the bottom, then 'create pull request' twice.
#### Useful Information
- When you see text surrounded by square brackets, such as `[RED]`, `[]` or `[accent]`, this indicates a color code. Don't translate it.
- `{0}` means an argument that will be replaced when the text is displayed. For example, `Wave: {0}` will replace the `{0}` with whatever wave you are in.
- Empty lines are fine, and it doesn't matter in what order you place the text.
- `\n` means "new line". If you want to split text into multiple lines, use `\n` to do it.
#### Testing your translation bundle
There are two ways to test the translation bundle:
1) Assuming you have the PC version downloaded, download your bundle file, name it `bundle.properties`, then place it in the same folder as the Mindustry desktop executable and run it. *You should get a popup message in-game confirming that you have loaded an external translation.*
2) For advanced users: simply download your fork of mindustry and compile/run the game.
**And that's it.**
*(...of course, that's never really it. Bother me on Discord when something inevitably goes wrong.)*
+2 -2
View File
@@ -20,8 +20,8 @@
<activity
android:name="io.anuke.mindustry.AndroidLauncher"
android:label="@string/app_name"
android:screenOrientation="sensor"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
android:screenOrientation="user"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
+35 -45
View File
@@ -1,3 +1,16 @@
buildscript {
repositories {
mavenLocal()
mavenCentral()
google()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
apply plugin: "com.android.application"
@@ -14,9 +27,9 @@ repositories {
dependencies {
implementation project(":core")
implementation project(":kryonet")
implementation 'com.android.support:support-v4:25.3.1'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'org.sufficientlysecure:donations:2.5'
implementation 'com.google.android.gms:play-services-auth:11.8.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
@@ -24,7 +37,12 @@ dependencies {
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
implementation "com.badlogicgames.gdx:gdx-ai:$aiVersion"
implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
implementation "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"
}
@@ -32,13 +50,13 @@ task deploy(type: Copy){
dependsOn "assembleRelease"
from "build/outputs/apk/google/release/android-google-release.apk"
into "../deploy/";
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk");
into "../deploy/"
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk")
}
android {
buildToolsVersion '27.0.3'
compileSdkVersion 27
buildToolsVersion '28.0.3'
compileSdkVersion 28
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
@@ -101,7 +119,7 @@ android {
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}else{
println("No keystore info property found!");
println("No keystore info property found!")
}
}
}
@@ -116,11 +134,11 @@ android {
// the natives configuration, and extracts them to the proper libs/ folders
// so they get packed with the APK.
task copyAndroidNatives() {
file("libs/armeabi/").mkdirs();
file("libs/armeabi-v7a/").mkdirs();
file("libs/arm64-v8a/").mkdirs();
file("libs/x86_64/").mkdirs();
file("libs/x86/").mkdirs();
file("libs/armeabi/").mkdirs()
file("libs/armeabi-v7a/").mkdirs()
file("libs/arm64-v8a/").mkdirs()
file("libs/x86_64/").mkdirs()
file("libs/x86/").mkdirs()
configurations.natives.files.each { jar ->
def outputDir = null
@@ -138,6 +156,7 @@ task copyAndroidNatives() {
}
}
}
task run(type: Exec) {
def path
def localProperties = project.file("../local.properties")
@@ -159,47 +178,18 @@ task run(type: Exec) {
def adb = path + "/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/io.anuke.mindustry.AndroidLauncher'
}
// sets up the Android Eclipse project, using the old Ant based build.
eclipse {
// need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin
// ignores any nodes added in classpath.file.withXml
sourceSets {
main {
java.srcDirs "src", 'gen'
}
}
jdt {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
classpath {
plusConfigurations += [project.configurations.compile]
containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
}
project {
name = appName + "-android"
natures 'com.android.ide.eclipse.adt.AndroidNature'
buildCommands.clear();
buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
buildCommand "org.eclipse.jdt.core.javabuilder"
buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
}
}
// sets up the Android Idea project, using the old Ant based build.
idea {
module {
sourceDirs += file("src");
sourceDirs += file("src")
scopes = [COMPILE: [plus: [project.configurations.compile]]]
iml {
withXml {
def node = it.asNode()
def builder = NodeBuilder.newInstance();
builder.current = node;
def builder = NodeBuilder.newInstance()
builder.current = node
builder.component(name: "FacetManager") {
facet(type: "android", name: "Android") {
configuration {
@@ -12,7 +12,6 @@
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
android:maxLength="15"
>
<requestFocus />
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mindustry</string>
<string-array name="donation_google_catalog_values">
<item>1 달러</item>
<item>2 달러</item>
<item>5 달러</item>
<item>10 달러</item>
<item>15 달러</item>
<item>25 달러</item>
<item>50 달러</item>
</string-array>
</resources>
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mindustry</string>
<string-array name="donation_google_catalog_values">
<item>1 Доллар</item>
<item>2 Доллара</item>
<item>5 Доллара</item>
<item>10 Долларов</item>
<item>15 Долларов</item>
<item>25 Долларов</item>
<item>50 Долларов</item>
</string-array>
</resources>
@@ -12,7 +12,6 @@ import android.provider.Settings.Secure;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Base64Coder;
@@ -20,13 +19,11 @@ import com.google.android.gms.common.GoogleApiAvailability;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.security.ProviderInstaller;
import io.anuke.kryonet.DefaultThreadImpl;
import io.anuke.kryonet.KryoClient;
import io.anuke.kryonet.KryoServer;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.core.ThreadHandler.ThreadProvider;
import io.anuke.mindustry.game.Saves.SaveSlot;
import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.io.Saves.SaveSlot;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.ui.dialogs.FileChooser;
import io.anuke.ucore.function.Consumer;
@@ -39,247 +36,184 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;
import static io.anuke.mindustry.Vars.*;
public class AndroidLauncher extends AndroidApplication{
public static final int PERMISSION_REQUEST_CODE = 1;
public class AndroidLauncher extends PatchedAndroidApplication{
public static final int PERMISSION_REQUEST_CODE = 1;
boolean doubleScaleTablets = true;
FileChooser chooser;
boolean doubleScaleTablets = true;
FileChooser chooser;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useImmersiveMode = true;
Platform.instance = new Platform(){
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
@Override
public void addDialog(TextField field, int length){
TextFieldDialogListener.add(field, 0, length);
}
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useImmersiveMode = true;
@Override
public void openDonations(){
showDonations();
}
Platform.instance = new Platform(){
DateFormat format = SimpleDateFormat.getDateTimeInstance();
@Override
public String getUUID(){
try{
String s = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);
int len = s.length();
byte[] data = new byte[len / 2];
for(int i = 0; i < len; i += 2){
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i + 1), 16));
}
String result = new String(Base64Coder.encode(data));
if(result.equals("AAAAAAAAAOA=")) throw new RuntimeException("Bad UUID.");
return result;
}catch(Exception e){
return super.getUUID();
}
}
@Override
public boolean hasDiscord() {
return isPackageInstalled("com.discord");
}
@Override
public void shareFile(FileHandle file){
}
@Override
public String format(Date date){
return format.format(date);
}
@Override
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){
chooser = new FileChooser(text, file -> file.extension().equalsIgnoreCase(filetype), open, cons);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
chooser.show();
chooser = null;
}else{
ArrayList<String> perms = new ArrayList<>();
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
perms.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
requestPermissions(perms.toArray(new String[perms.size()]), PERMISSION_REQUEST_CODE);
}
}
@Override
public String format(int number){
return NumberFormat.getIntegerInstance().format(number);
}
@Override
public void beginForceLandscape(){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
@Override
public void addDialog(TextField field, int length){
TextFieldDialogListener.add(field, 0, length);
}
@Override
public void endForceLandscape(){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
@Override
public String getLocaleName(Locale locale){
return locale.getDisplayName(locale);
}
@Override
public void openDonations() {
showDonations();
}
@Override
public ThreadProvider getThreadProvider() {
return new DefaultThreadImpl();
}
@Override
public boolean isDebug() {
return false;
}
@Override
public String getUUID() {
try {
String s = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i + 1), 16));
}
String result = new String(Base64Coder.encode(data));
if(result.equals("AAAAAAAAAOA=")) throw new RuntimeException("Bad UUID.");
return result;
}catch (Exception e){
return super.getUUID();
}
}
@Override
public void shareFile(FileHandle file){
}
@Override
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype) {
chooser = new FileChooser(text, file -> file.extension().equalsIgnoreCase(filetype), open, cons);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
chooser.show();
chooser = null;
}else {
ArrayList<String> perms = new ArrayList<>();
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
perms.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
requestPermissions(perms.toArray(new String[perms.size()]), PERMISSION_REQUEST_CODE);
}
}
@Override
public void beginForceLandscape() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
@Override
public void endForceLandscape() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
@Override
public boolean canDonate(){
return true;
}
};
try {
ProviderInstaller.installIfNeeded(this);
} catch (GooglePlayServicesRepairableException e) {
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
apiAvailability.getErrorDialog(this, e.getConnectionStatusCode(), 0).show();
} catch (GooglePlayServicesNotAvailableException e) {
Log.e("SecurityException", "Google Play Services not available.");
}
if(doubleScaleTablets && isTablet(this.getContext())){
Unit.dp.addition = 0.5f;
}
config.hideStatusBar = true;
@Override
public boolean canDonate(){
return true;
}
};
try{
ProviderInstaller.installIfNeeded(this);
}catch(GooglePlayServicesRepairableException e){
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
apiAvailability.getErrorDialog(this, e.getConnectionStatusCode(), 0).show();
}catch(GooglePlayServicesNotAvailableException e){
Log.e("SecurityException", "Google Play Services not available.");
}
if(doubleScaleTablets && isTablet(this.getContext())){
Unit.dp.addition = 0.5f;
}
config.hideStatusBar = true;
Net.setClientProvider(new KryoClient());
Net.setServerProvider(new KryoServer());
initialize(new Mindustry(), config);
checkFiles(getIntent());
}
checkFiles(getIntent());
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults){
if(requestCode == PERMISSION_REQUEST_CODE){
for(int i : grantResults){
if(i != PackageManager.PERMISSION_GRANTED) return;
}
if(chooser != null){
chooser.show();
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if(requestCode == PERMISSION_REQUEST_CODE){
for(int i : grantResults){
if(i != PackageManager.PERMISSION_GRANTED) return;
}
private void checkFiles(Intent intent){
try{
Uri uri = intent.getData();
if(uri != null){
File myFile = null;
String scheme = uri.getScheme();
if(scheme.equals("file")){
String fileName = uri.getEncodedPath();
myFile = new File(fileName);
}else if(!scheme.equals("content")){
//error
return;
}
boolean save = uri.getPath().endsWith(saveExtension);
boolean map = uri.getPath().endsWith(mapExtension);
InputStream inStream;
if(myFile != null) inStream = new FileInputStream(myFile);
else inStream = getContentResolver().openInputStream(uri);
Gdx.app.postRunnable(() -> {
if(save){ //open save
System.out.println("Opening save.");
FileHandle file = Gdx.files.local("temp-save." + saveExtension);
file.write(inStream, false);
if(SaveIO.isSaveValid(file)){
try{
SaveSlot slot = control.saves.importSave(file);
ui.load.runLoadSave(slot);
}catch(IOException e){
ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false)));
}
}else{
ui.showError("$text.save.import.invalid");
}
}else if(map){ //open map
Gdx.app.postRunnable(() -> {
System.out.println("Opening map.");
if(!ui.editor.isShown()){
ui.editor.show();
}
ui.editor.beginEditMap(inStream);
});
}
});
}
}catch(IOException e){
e.printStackTrace();
}
}
if(chooser != null){
chooser.show();
}
}
}
private boolean isPackageInstalled(String packagename){
try{
getPackageManager().getPackageInfo(packagename, 0);
return true;
}catch(Exception e){
return false;
}
}
private void checkFiles(Intent intent){
try {
Uri uri = intent.getData();
if (uri != null) {
File myFile = null;
String scheme = uri.getScheme();
if (scheme.equals("file")) {
String fileName = uri.getEncodedPath();
myFile = new File(fileName);
} else if (!scheme.equals("content")) {
//error
return;
}
private boolean isTablet(Context context){
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
}
boolean save = uri.getPath().endsWith(saveExtension);
boolean map = uri.getPath().endsWith(mapExtension);
InputStream inStream;
if (myFile != null) inStream = new FileInputStream(myFile);
else inStream = getContentResolver().openInputStream(uri);
Gdx.app.postRunnable(() -> {
if(save){ //open save
System.out.println("Opening save.");
FileHandle file = Gdx.files.local("temp-save." + saveExtension);
file.write(inStream, false);
if(SaveIO.isSaveValid(file)){
try{
SaveSlot slot = control.getSaves().importSave(file);
ui.load.runLoadSave(slot);
}catch (IOException e){
ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false)));
}
}else{
ui.showError("$text.save.import.invalid");
}
}else if(map){ //open map
Gdx.app.postRunnable(() -> {
System.out.println("Opening map.");
if (!ui.editor.isShown()) {
ui.editor.show();
}
ui.editor.beginEditMap(inStream);
});
}
});
}
}catch (IOException e){
e.printStackTrace();
}
}
private boolean isPackageInstalled(String packagename) {
try {
getPackageManager().getPackageInfo(packagename, 0);
return true;
} catch (Exception e) {
return false;
}
}
private boolean isTablet(Context context) {
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
return manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
}
private void showDonations(){
Intent intent = new Intent(this, DonationsActivity.class);
startActivity(intent);
}
private void showDonations(){
Intent intent = new Intent(this, DonationsActivity.class);
startActivity(intent);
}
}
@@ -11,20 +11,20 @@ import android.widget.EditText;
import com.badlogic.gdx.Gdx;
public class AndroidTextFieldDialog{
private Activity activity;
private EditText userInput;
private AlertDialog.Builder builder;
private TextPromptListener listener;
private boolean isBuild;
private Activity activity;
private EditText userInput;
private AlertDialog.Builder builder;
private TextPromptListener listener;
private boolean isBuild;
public AndroidTextFieldDialog() {
this.activity = (Activity)Gdx.app;
load();
}
public AndroidTextFieldDialog(){
this.activity = (Activity) Gdx.app;
load();
}
public AndroidTextFieldDialog show() {
public AndroidTextFieldDialog show(){
activity.runOnUiThread(() -> {
activity.runOnUiThread(() -> {
AlertDialog dialog = builder.create();
dialog.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
@@ -33,12 +33,12 @@ public class AndroidTextFieldDialog{
});
return this;
}
return this;
}
private AndroidTextFieldDialog load() {
private AndroidTextFieldDialog load(){
activity.runOnUiThread(() -> {
activity.runOnUiThread(() -> {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity);
LayoutInflater li = LayoutInflater.from(activity);
@@ -55,64 +55,65 @@ public class AndroidTextFieldDialog{
isBuild = true;
});
// Wait till TextPrompt is built.
while (!isBuild) {
try {
Thread.sleep(10);
} catch (InterruptedException e) { }
}
// Wait till TextPrompt is built.
while(!isBuild){
try{
Thread.sleep(10);
}catch(InterruptedException ignored){
}
}
return this;
}
return this;
}
public int getResourceId(String pVariableName, String pVariableType) {
try {
return activity.getResources().getIdentifier(pVariableName, pVariableType, activity.getPackageName());
} catch (Exception e) {
Gdx.app.error("Android Dialogs", "Cannot find resouce with name: " + pVariableName
+ " Did you copy the layouts to /res/layouts and /res/layouts_v14 ?");
e.printStackTrace();
return -1;
}
}
public int getResourceId(String pVariableName, String pVariableType){
try{
return activity.getResources().getIdentifier(pVariableName, pVariableType, activity.getPackageName());
}catch(Exception e){
Gdx.app.error("Android Dialogs", "Cannot find resouce with name: " + pVariableName
+ " Did you copy the layouts to /res/layouts and /res/layouts_v14 ?");
e.printStackTrace();
return -1;
}
}
public AndroidTextFieldDialog setText(CharSequence value) {
userInput.append(value);
return this;
}
public AndroidTextFieldDialog setText(CharSequence value){
userInput.append(value);
return this;
}
public AndroidTextFieldDialog setCancelButtonLabel(CharSequence label) {
builder.setNegativeButton(label, (dialog, id) -> dialog.cancel());
return this;
}
public AndroidTextFieldDialog setCancelButtonLabel(CharSequence label){
builder.setNegativeButton(label, (dialog, id) -> dialog.cancel());
return this;
}
public AndroidTextFieldDialog setConfirmButtonLabel(CharSequence label) {
builder.setPositiveButton(label, (dialog, id) -> {
if (listener != null && !userInput.getText().toString().isEmpty()) {
public AndroidTextFieldDialog setConfirmButtonLabel(CharSequence label){
builder.setPositiveButton(label, (dialog, id) -> {
if(listener != null && !userInput.getText().toString().isEmpty()){
listener.confirm(userInput.getText().toString());
}
});
return this;
}
return this;
}
public AndroidTextFieldDialog setTextPromptListener(TextPromptListener listener) {
this.listener = listener;
return this;
}
public AndroidTextFieldDialog setTextPromptListener(TextPromptListener listener){
this.listener = listener;
return this;
}
public AndroidTextFieldDialog setInputType(int type) {
userInput.setInputType(type);
return this;
}
public AndroidTextFieldDialog setInputType(int type){
userInput.setInputType(type);
return this;
}
public AndroidTextFieldDialog setMaxLength(int length) {
userInput.setFilters(new InputFilter[] { new InputFilter.LengthFilter(length) });
return this;
}
public interface TextPromptListener{
void confirm(String text);
}
public AndroidTextFieldDialog setMaxLength(int length){
userInput.setFilters(new InputFilter[]{new InputFilter.LengthFilter(length)});
return this;
}
public interface TextPromptListener{
void confirm(String text);
}
}
@@ -8,12 +8,9 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.Button;
import org.sufficientlysecure.donations.DonationsFragment;
public class DonationsActivity extends FragmentActivity {
DonationsFragment donationsFragment;
public class DonationsActivity extends FragmentActivity{
/**
* Google
*/
@@ -21,13 +18,14 @@ public class DonationsActivity extends FragmentActivity {
private static final String[] GOOGLE_CATALOG = new String[]{
"mindustry.donation.1", "mindustry.donation.2", "mindustry.donation.5",
"mindustry.donation.10", "mindustry.donation.15",
"mindustry.donation.25", "mindustry.donation.50" };
"mindustry.donation.25", "mindustry.donation.50"};
DonationsFragment donationsFragment;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setTheme(R.style.GdxTheme);
@@ -35,7 +33,7 @@ public class DonationsActivity extends FragmentActivity {
setContentView(R.layout.donations_activity);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if (BuildConfig.DONATIONS_GOOGLE) {
if(BuildConfig.DONATIONS_GOOGLE){
donationsFragment = DonationsFragment.newInstance(BuildConfig.DEBUG, true, GOOGLE_PUBKEY, GOOGLE_CATALOG,
getResources().getStringArray(R.array.donation_google_catalog_values), false, null, null,
null, false, null, null, false, null);
@@ -48,30 +46,27 @@ public class DonationsActivity extends FragmentActivity {
public void onStart(){
super.onStart();
Button b = ((Button)findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button));
b.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
b.setEnabled(false);
}
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
b.setOnClickListener(view -> {
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
b.setEnabled(false);
});
}
/**
* Needed for Google Play In-app Billing. It uses startIntentSenderForResult(). The result is not propagated to
* the Fragment like in startActivityForResult(). Thus we need to propagate manually to our Fragment.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Button b = ((Button)findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button));
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
b.setEnabled(true);
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag("donationsFragment");
if (fragment != null) {
if(fragment != null){
fragment.onActivityResult(requestCode, resultCode, data);
//TODO donation event, set settings?
}
@@ -0,0 +1,20 @@
package io.anuke.mindustry;
import com.badlogic.gdx.backends.android.AndroidApplication;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class PatchedAndroidApplication extends AndroidApplication {
private final ExecutorService exec = Executors.newSingleThreadExecutor();
@Override
protected void onPause () {
if(useImmersiveMode) {
exec.submit(() -> {
try {Thread.sleep(100);} catch (InterruptedException ignored) {}
graphics.onDrawFrame(null);
});
}
super.onPause();
}
}
@@ -11,57 +11,58 @@ import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.ui.TextField;
public class TextFieldDialogListener extends ClickListener{
private TextField field;
private int type;
private int max;
private TextField field;
private int type;
private int max;
public static void add(TextField field, int type, int max){
field.addListener(new TextFieldDialogListener(field, type, max));
field.addListener(new InputListener(){
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
Gdx.input.setOnscreenKeyboardVisible(false);
return false;
}
});
}
//type - 0 is text, 1 is numbers, 2 is decimals
public TextFieldDialogListener(TextField field, int type, int max){
this.field = field;
this.type = type;
this.max = max;
}
public static void add(TextField field){
add(field, 0, 16);
}
//type - 0 is text, 1 is numbers, 2 is decimals
public TextFieldDialogListener(TextField field, int type, int max){
this.field = field;
this.type = type;
this.max = max;
}
public void clicked(final InputEvent event, float x, float y){
if(Gdx.app.getType() == ApplicationType.Desktop) return;
AndroidTextFieldDialog dialog = new AndroidTextFieldDialog();
dialog.setTextPromptListener(text -> {
field.clearText();
field.appendText(text);
field.fire(new ChangeListener.ChangeEvent());
Gdx.graphics.requestRendering();
public static void add(TextField field, int type, int max){
field.addListener(new TextFieldDialogListener(field, type, max));
field.addListener(new InputListener(){
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button){
Gdx.input.setOnscreenKeyboardVisible(false);
return false;
}
});
}
if(type == 0){
dialog.setInputType(InputType.TYPE_CLASS_TEXT);
}else if(type == 1){
dialog.setInputType(InputType.TYPE_CLASS_NUMBER);
}else if(type == 2){
dialog.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
}
public static void add(TextField field){
add(field, 0, 16);
}
dialog.setConfirmButtonLabel("OK").setText(field.getText());
dialog.setCancelButtonLabel("Cancel");
dialog.setMaxLength(max);
dialog.show();
event.cancel();
public void clicked(final InputEvent event, float x, float y){
}
if(Gdx.app.getType() == ApplicationType.Desktop) return;
AndroidTextFieldDialog dialog = new AndroidTextFieldDialog();
dialog.setTextPromptListener(text ->
Gdx.app.postRunnable(() -> {
field.clearText();
field.appendText(text);
field.fire(new ChangeListener.ChangeEvent());
Gdx.graphics.requestRendering();
}));
if(type == 0){
dialog.setInputType(InputType.TYPE_CLASS_TEXT);
}else if(type == 1){
dialog.setInputType(InputType.TYPE_CLASS_NUMBER);
}else if(type == 2){
dialog.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
}
dialog.setConfirmButtonLabel("OK").setText(field.getText());
dialog.setCancelButtonLabel("Cancel");
dialog.setMaxLength(max);
dialog.show();
event.cancel();
}
}
+3 -1
View File
@@ -1,4 +1,6 @@
apply plugin: "java"
sourceCompatibility = 1.8
sourceSets.main.java.srcDirs = [ "src/" ]
sourceSets.main.java.srcDirs = [ "src/main/java/" ]
sourceSets.main.resources.srcDirs = [ "src/main/resources/" ]
@@ -1,99 +0,0 @@
package io.anuke.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Goal: To create a system to send events to the server from the client and vice versa, without creating a new packet type each time.<br>
* These events may optionally also trigger on the caller client/server as well.<br>
*/
public class Annotations {
/**Marks a method as invokable remotely across a server/client connection.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface Remote {
/**Specifies the locations from which this method can be invoked.*/
Loc targets() default Loc.server;
/**Specifies which methods are generated. Only affects server-to-client methods.*/
Variant variants() default Variant.all;
/**The local locations where this method is called locally, when invoked.*/
Loc called() default Loc.none;
/**Whether to forward this packet to all other clients upon recieval. Server only.*/
boolean forward() default false;
/**Whether the packet for this method is sent with UDP instead of TCP.
* UDP is faster, but is prone to packet loss and duplication.*/
boolean unreliable() default false;
/**The simple class name where this method is placed.*/
String in() default "Call";
/**Priority of this event.*/
PacketPriority priority() default PacketPriority.normal;
}
/**Specifies that this method will be used to write classes of the type returned by {@link #value()}.<br>
* This method must return void and have two parameters, the first being of type {@link java.nio.ByteBuffer} and the second
* being the type returned by {@link #value()}.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface WriteClass {
Class<?> value();
}
/**Specifies that this method will be used to read classes of the type returned by {@link #value()}. <br>
* This method must return the type returned by {@link #value()},
* and have one parameter, being of type {@link java.nio.ByteBuffer}.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface ReadClass {
Class<?> value();
}
public enum PacketPriority {
/**Gets put in a queue and processed if not connected.*/
normal,
/**Gets handled immediately, regardless of connection status.*/
high,
/**Does not get handled unless client is connected.*/
low
}
/**A set of two booleans, one specifying server and one specifying client.*/
public enum Loc {
/**Method can only be invoked on the client from the server.*/
server(true, false),
/**Method can only be invoked on the server from the client.*/
client(false, true),
/**Method can be invoked from anywhere*/
both(true, true),
/**Neither server no client.*/
none(false, false);
/**If true, this method can be invoked ON clients FROM servers.*/
public final boolean isServer;
/**If true, this method can be invoked ON servers FROM clients.*/
public final boolean isClient;
Loc(boolean server, boolean client){
this.isServer = server;
this.isClient = client;
}
}
public enum Variant {
/**Method can only be invoked targeting one player.*/
one(true, false),
/**Method can only be invoked targeting all players.*/
all(false, true),
/**Method targets both one player and all players.*/
both(true, true);
public final boolean isOne, isAll;
Variant(boolean isOne, boolean isAll){
this.isOne = isOne;
this.isAll = isAll;
}
}
}
@@ -1,15 +0,0 @@
package io.anuke.annotations;
import java.util.ArrayList;
/**Represents a class witha list method entries to include in it.*/
public class ClassEntry {
/**All methods in this generated class.*/
public final ArrayList<MethodEntry> methods = new ArrayList<>();
/**Simple class name.*/
public final String name;
public ClassEntry(String name) {
this.name = name;
}
}
@@ -0,0 +1,111 @@
package io.anuke.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class Annotations{
/** Marks a class as serializable.*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Serialize{
}
public enum PacketPriority{
/** Gets put in a queue and processed if not connected. */
normal,
/** Gets handled immediately, regardless of connection status. */
high,
/** Does not get handled unless client is connected. */
low
}
/** A set of two booleans, one specifying server and one specifying client. */
public enum Loc{
/** Method can only be invoked on the client from the server. */
server(true, false),
/** Method can only be invoked on the server from the client. */
client(false, true),
/** Method can be invoked from anywhere */
both(true, true),
/** Neither server nor client. */
none(false, false);
/** If true, this method can be invoked ON clients FROM servers. */
public final boolean isServer;
/** If true, this method can be invoked ON servers FROM clients. */
public final boolean isClient;
Loc(boolean server, boolean client){
this.isServer = server;
this.isClient = client;
}
}
public enum Variant{
/** Method can only be invoked targeting one player. */
one(true, false),
/** Method can only be invoked targeting all players. */
all(false, true),
/** Method targets both one player and all players. */
both(true, true);
public final boolean isOne, isAll;
Variant(boolean isOne, boolean isAll){
this.isOne = isOne;
this.isAll = isAll;
}
}
/** Marks a method as invokable remotely across a server/client connection. */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Remote{
/** Specifies the locations from which this method can be invoked. */
Loc targets() default Loc.server;
/** Specifies which methods are generated. Only affects server-to-client methods. */
Variant variants() default Variant.all;
/** The local locations where this method is called locally, when invoked. */
Loc called() default Loc.none;
/** Whether to forward this packet to all other clients upon recieval. Client only. */
boolean forward() default false;
/**
* Whether the packet for this method is sent with UDP instead of TCP.
* UDP is faster, but is prone to packet loss and duplication.
*/
boolean unreliable() default false;
/** Priority of this event. */
PacketPriority priority() default PacketPriority.normal;
}
/**
* Specifies that this method will be used to write classes of the type returned by {@link #value()}.<br>
* This method must return void and have two parameters, the first being of type {@link java.nio.ByteBuffer} and the second
* being the type returned by {@link #value()}.
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface WriteClass{
Class<?> value();
}
/**
* Specifies that this method will be used to read classes of the type returned by {@link #value()}. <br>
* This method must return the type returned by {@link #value()},
* and have one parameter, being of type {@link java.nio.ByteBuffer}.
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface ReadClass{
Class<?> value();
}
}
@@ -0,0 +1,17 @@
package io.anuke.annotations;
import io.anuke.annotations.MethodEntry;
import java.util.ArrayList;
/** Represents a class witha list method entries to include in it. */
public class ClassEntry{
/** All methods in this generated class. */
public final ArrayList<MethodEntry> methods = new ArrayList<>();
/** Simple class name. */
public final String name;
public ClassEntry(String name){
this.name = name;
}
}
@@ -10,12 +10,16 @@ import javax.tools.Diagnostic.Kind;
import java.util.HashMap;
import java.util.Set;
/**This class finds reader and writer methods annotated by the {@link io.anuke.annotations.Annotations.WriteClass}
* and {@link io.anuke.annotations.Annotations.ReadClass} annotations.*/
public class IOFinder {
/**
* This class finds reader and writer methods annotated by the {@link io.anuke.annotations.Annotations.WriteClass}
* and {@link io.anuke.annotations.Annotations.ReadClass} annotations.
*/
public class IOFinder{
/**Finds all class serializers for all types and returns them. Logs errors when necessary.
* Maps fully qualified class names to their serializers.*/
/**
* Finds all class serializers for all types and returns them. Logs errors when necessary.
* Maps fully qualified class names to their serializers.
*/
public HashMap<String, ClassSerializer> findSerializers(RoundEnvironment env){
HashMap<String, ClassSerializer> result = new HashMap<>();
@@ -51,33 +55,33 @@ public class IOFinder {
}
private String getValue(WriteClass write){
try {
try{
Class<?> type = write.value();
return type.getName();
}catch (MirroredTypeException e){
}catch(MirroredTypeException e){
return e.getTypeMirror().toString();
}
}
private String getValue(ReadClass read){
try {
try{
Class<?> type = read.value();
return type.getName();
}catch (MirroredTypeException e){
}catch(MirroredTypeException e){
return e.getTypeMirror().toString();
}
}
/**Information about read/write methods for a specific class type.*/
/** Information about read/write methods for a specific class type. */
public static class ClassSerializer{
/**Fully qualified method name of the reader.*/
/** Fully qualified method name of the reader. */
public final String readMethod;
/**Fully qualified method name of the writer.*/
/** Fully qualified method name of the writer. */
public final String writeMethod;
/**Fully qualified class type name.*/
/** Fully qualified class type name. */
public final String classType;
public ClassSerializer(String readMethod, String writeMethod, String classType) {
public ClassSerializer(String readMethod, String writeMethod, String classType){
this.readMethod = readMethod;
this.writeMethod = writeMethod;
this.classType = classType;
@@ -6,32 +6,34 @@ import io.anuke.annotations.Annotations.Variant;
import javax.lang.model.element.ExecutableElement;
/**Class that repesents a remote method to be constructed and put into a class.*/
public class MethodEntry {
/**Simple target class name.*/
/** Class that repesents a remote method to be constructed and put into a class. */
public class MethodEntry{
/** Simple target class name. */
public final String className;
/**Fully qualified target method to call.*/
/** Fully qualified target method to call. */
public final String targetMethod;
/**Whether this method can be called on a client/server.*/
/** Whether this method can be called on a client/server. */
public final Loc where;
/**Whether an additional 'one' and 'all' method variant is generated. At least one of these must be true.
* Only applicable to client (server-invoked) methods.*/
/**
* Whether an additional 'one' and 'all' method variant is generated. At least one of these must be true.
* Only applicable to client (server-invoked) methods.
*/
public final Variant target;
/**Whether this method is called locally as well as remotely.*/
/** Whether this method is called locally as well as remotely. */
public final Loc local;
/**Whether this method is unreliable and uses UDP.*/
/** Whether this method is unreliable and uses UDP. */
public final boolean unreliable;
/**Whether to forward this method call to all other clients when a client invokes it. Server only.*/
/** Whether to forward this method call to all other clients when a client invokes it. Server only. */
public final boolean forward;
/**Unique method ID.*/
/** Unique method ID. */
public final int id;
/**The element method associated with this entry.*/
/** The element method associated with this entry. */
public final ExecutableElement element;
/**The assigned packet priority. Only used in clients.*/
/** The assigned packet priority. Only used in clients. */
public final PacketPriority priority;
public MethodEntry(String className, String targetMethod, Loc where, Variant target,
Loc local, boolean unreliable, boolean forward, int id, ExecutableElement element, PacketPriority priority) {
Loc local, boolean unreliable, boolean forward, int id, ExecutableElement element, PacketPriority priority){
this.className = className;
this.forward = forward;
this.targetMethod = targetMethod;
@@ -45,7 +47,7 @@ public class MethodEntry {
}
@Override
public int hashCode() {
public int hashCode(){
return targetMethod.hashCode();
}
}
@@ -18,25 +18,27 @@ import java.util.*;
import java.util.stream.Collectors;
/**The annotation processor for generating remote method call code.*/
/** The annotation processor for generating remote method call code. */
@SupportedSourceVersion(SourceVersion.RELEASE_8)
@SupportedAnnotationTypes({
"io.anuke.annotations.Annotations.Remote",
"io.anuke.annotations.Annotations.WriteClass",
"io.anuke.annotations.Annotations.ReadClass",
})
public class RemoteMethodAnnotationProcessor extends AbstractProcessor {
/**Maximum size of each event packet.*/
public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
/** Maximum size of each event packet. */
public static final int maxPacketSize = 4096;
/**Name of the base package to put all the generated classes.*/
/** Name of the base package to put all the generated classes. */
private static final String packageName = "io.anuke.mindustry.gen";
/**Name of class that handles reading and invoking packets on the server.*/
/** Name of class that handles reading and invoking packets on the server. */
private static final String readServerName = "RemoteReadServer";
/**Name of class that handles reading and invoking packets on the client.*/
/** Name of class that handles reading and invoking packets on the client. */
private static final String readClientName = "RemoteReadClient";
/**Simple class name of generated class name.*/
private static final String callLocation = "Call";
/**Processing round number.*/
/** Processing round number. */
private int round;
//class serializers
@@ -51,7 +53,7 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor {
private ArrayList<ClassEntry> classes;
@Override
public synchronized void init(ProcessingEnvironment processingEnv) {
public synchronized void init(ProcessingEnvironment processingEnv){
super.init(processingEnv);
//put all relevant utils into utils class
Utils.typeUtils = processingEnv.getTypeUtils();
@@ -61,18 +63,17 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor {
}
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
if(round > 1) return false; //only process 2 rounds
round ++;
round++;
try {
try{
//round 1: find all annotations, generate *writers*
if(round == 1) {
if(round == 1){
//get serializers
serializers = new IOFinder().findSerializers(roundEnv);
//last method ID used
int lastMethodID = 0;
//find all elements with the Remote annotation
@@ -88,29 +89,29 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor {
orderedElements.sort(Comparator.comparing(Object::toString));
//create methods
for (Element element : orderedElements) {
for(Element element : orderedElements){
Remote annotation = element.getAnnotation(Remote.class);
//check for static
if (!element.getModifiers().contains(Modifier.STATIC) || !element.getModifiers().contains(Modifier.PUBLIC)) {
if(!element.getModifiers().contains(Modifier.STATIC) || !element.getModifiers().contains(Modifier.PUBLIC)){
Utils.messager.printMessage(Kind.ERROR, "All @Remote methods must be public and static: ", element);
}
//can't generate none methods
if (annotation.targets() == Loc.none) {
if(annotation.targets() == Loc.none){
Utils.messager.printMessage(Kind.ERROR, "A @Remote method's targets() cannot be equal to 'none':", element);
}
//get and create class entry if needed
if (!classMap.containsKey(annotation.in())) {
ClassEntry clas = new ClassEntry(annotation.in());
classMap.put(annotation.in(), clas);
if(!classMap.containsKey(callLocation)){
ClassEntry clas = new ClassEntry(callLocation);
classMap.put(callLocation, clas);
classes.add(clas);
Utils.messager.printMessage(Kind.NOTE, "Generating class '" + clas.name + "'.");
}
ClassEntry entry = classMap.get(annotation.in());
ClassEntry entry = classMap.get(callLocation);
//create and add entry
MethodEntry method = new MethodEntry(entry.name, Utils.getMethodName(element), annotation.targets(), annotation.variants(),
@@ -127,7 +128,7 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor {
writegen.generateFor(classes, packageName);
return true;
}else if(round == 2) { //round 2: generate all *readers*
}else if(round == 2){ //round 2: generate all *readers*
RemoteReadGenerator readgen = new RemoteReadGenerator(serializers);
//generate server readers
@@ -147,7 +148,7 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor {
return true;
}
}catch (Exception e){
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
@@ -2,6 +2,8 @@ package io.anuke.annotations;
import com.squareup.javapoet.*;
import io.anuke.annotations.IOFinder.ClassSerializer;
import io.anuke.annotations.MethodEntry;
import io.anuke.annotations.Utils;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.TypeElement;
@@ -14,22 +16,25 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.List;
/**Generates code for reading remote invoke packets on the client and server.*/
public class RemoteReadGenerator {
/** Generates code for reading remote invoke packets on the client and server. */
public class RemoteReadGenerator{
private final HashMap<String, ClassSerializer> serializers;
/**Creates a read generator that uses the supplied serializer setup.*/
public RemoteReadGenerator(HashMap<String, ClassSerializer> serializers) {
/** Creates a read generator that uses the supplied serializer setup. */
public RemoteReadGenerator(HashMap<String, ClassSerializer> serializers){
this.serializers = serializers;
}
/**Generates a class for reading remote invoke packets.
/**
* Generates a class for reading remote invoke packets.
*
* @param entries List of methods to use/
* @param className Simple target class name.
* @param packageName Full target package name.
* @param needsPlayer Whether this read method requires a reference to the player sender.*/
* @param needsPlayer Whether this read method requires a reference to the player sender.
*/
public void generateFor(List<MethodEntry> entries, String className, String packageName, boolean needsPlayer)
throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException {
throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException{
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
@@ -69,10 +74,10 @@ public class RemoteReadGenerator {
StringBuilder varResult = new StringBuilder();
//go through each parameter
for(int i = 0; i < entry.element.getParameters().size(); i ++){
for(int i = 0; i < entry.element.getParameters().size(); i++){
VariableElement var = entry.element.getParameters().get(i);
if(!needsPlayer || i != 0) { //if client, skip first parameter since it's always of type player and doesn't need to be read
if(!needsPlayer || i != 0){ //if client, skip first parameter since it's always of type player and doesn't need to be read
//full type name of parameter
String typeName = var.asType().toString();
//name of parameter
@@ -81,17 +86,17 @@ public class RemoteReadGenerator {
String capName = typeName.equals("byte") ? "" : Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1);
//write primitives automatically
if (Utils.isPrimitive(typeName)) {
if (typeName.equals("boolean")) {
if(Utils.isPrimitive(typeName)){
if(typeName.equals("boolean")){
readBlock.addStatement("boolean " + varName + " = buffer.get() == 1");
} else {
}else{
readBlock.addStatement(typeName + " " + varName + " = buffer.get" + capName + "()");
}
} else {
}else{
//else, try and find a serializer
ClassSerializer ser = serializers.get(typeName);
if (ser == null) { //make sure a serializer exists!
if(ser == null){ //make sure a serializer exists!
Utils.messager.printMessage(Kind.ERROR, "No @ReadClass method to read class type: '" + typeName + "'", var);
return;
}
@@ -121,7 +126,7 @@ public class RemoteReadGenerator {
}
readBlock.nextControlFlow("catch (java.lang.Exception e)");
readBlock.addStatement("throw new java.lang.RuntimeException(\"Failed to to read remote method '"+entry.element.getSimpleName() +"'!\", e)");
readBlock.addStatement("throw new java.lang.RuntimeException(\"Failed to to read remote method '" + entry.element.getSimpleName() + "'!\", e)");
readBlock.endControlFlow();
}
@@ -14,17 +14,17 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.List;
/**Generates code for writing remote invoke packets on the client and server.*/
public class RemoteWriteGenerator {
/** Generates code for writing remote invoke packets on the client and server. */
public class RemoteWriteGenerator{
private final HashMap<String, ClassSerializer> serializers;
/**Creates a write generator that uses the supplied serializer setup.*/
public RemoteWriteGenerator(HashMap<String, ClassSerializer> serializers) {
/** Creates a write generator that uses the supplied serializer setup. */
public RemoteWriteGenerator(HashMap<String, ClassSerializer> serializers){
this.serializers = serializers;
}
/**Generates all classes in this list.*/
public void generateFor(List<ClassEntry> entries, String packageName) throws IOException {
/** Generates all classes in this list. */
public void generateFor(List<ClassEntry> entries, String packageName) throws IOException{
for(ClassEntry entry : entries){
//create builder
@@ -58,7 +58,7 @@ public class RemoteWriteGenerator {
}
}
/**Creates a specific variant for a method entry.*/
/** Creates a specific variant for a method entry. */
private void writeMethodVariant(TypeSpec.Builder classBuilder, MethodEntry methodEntry, boolean toAll, boolean forwarded){
ExecutableElement elem = methodEntry.element;
@@ -99,7 +99,7 @@ public class RemoteWriteGenerator {
if(!forwarded && methodEntry.local != Loc.none){
//add in local checks
if(methodEntry.local != Loc.both){
method.beginControlFlow("if("+getCheckString(methodEntry.local) + " || !io.anuke.mindustry.net.Net.active())");
method.beginControlFlow("if(" + getCheckString(methodEntry.local) + " || !io.anuke.mindustry.net.Net.active())");
}
//concatenate parameters
@@ -109,16 +109,16 @@ public class RemoteWriteGenerator {
//special case: calling local-only methods uses the local player
if(index == 0 && methodEntry.where == Loc.client){
results.append("io.anuke.mindustry.Vars.players[0]");
}else {
}else{
results.append(var.getSimpleName());
}
if(index != elem.getParameters().size() - 1) results.append(", ");
index ++;
index++;
}
//add the statement to call it
method.addStatement("$N." + elem.getSimpleName() + "(" + results.toString() + ")",
((TypeElement)elem.getEnclosingElement()).getQualifiedName().toString());
((TypeElement) elem.getEnclosingElement()).getQualifiedName().toString());
if(methodEntry.local != Loc.both){
method.endControlFlow();
@@ -126,10 +126,10 @@ public class RemoteWriteGenerator {
}
//start control flow to check if it's actually client/server so no netcode is called
method.beginControlFlow("if("+getCheckString(methodEntry.where)+")");
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
//add statement to create packet from pool
method.addStatement("$1N packet = $2N.obtain($1N.class)", "io.anuke.mindustry.net.Packets.InvokePacket", "com.badlogic.gdx.utils.Pools");
method.addStatement("$1N packet = $2N.obtain($1N.class, $1N::new)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.ucore.util.Pooling");
//assign buffer
method.addStatement("packet.writeBuffer = TEMP_BUFFER");
//assign priority
@@ -139,7 +139,7 @@ public class RemoteWriteGenerator {
//rewind buffer
method.addStatement("TEMP_BUFFER.position(0)");
for(int i = 0; i < elem.getParameters().size(); i ++){
for(int i = 0; i < elem.getParameters().size(); i++){
//first argument is skipped as it is always the player caller
if((!methodEntry.where.isServer/* || methodEntry.mode == Loc.both*/) && i == 0){
continue;
@@ -164,7 +164,7 @@ public class RemoteWriteGenerator {
method.beginControlFlow("if(io.anuke.mindustry.net.Net.server())");
}
if(Utils.isPrimitive(typeName)) { //check if it's a primitive, and if so write it
if(Utils.isPrimitive(typeName)){ //check if it's a primitive, and if so write it
if(typeName.equals("boolean")){ //booleans are special
method.addStatement("TEMP_BUFFER.put(" + varName + " ? (byte)1 : 0)");
}else{
@@ -181,7 +181,7 @@ public class RemoteWriteGenerator {
}
//add statement for writing it
method.addStatement(ser.writeMethod + "(TEMP_BUFFER, " + varName +")");
method.addStatement(ser.writeMethod + "(TEMP_BUFFER, " + varName + ")");
}
if(writePlayerSkipCheck){ //write end check
@@ -197,7 +197,7 @@ public class RemoteWriteGenerator {
if(forwarded){ //forward packet
if(!methodEntry.local.isClient){ //if the client doesn't get it called locally, forward it back after validation
sendString = "send(";
}else {
}else{
sendString = "sendExcept(exceptSenderID, ";
}
}else if(toAll){ //send to all players / to server
@@ -207,8 +207,8 @@ public class RemoteWriteGenerator {
}
//send the actual packet
method.addStatement("io.anuke.mindustry.net.Net." + sendString + "packet, "+
(methodEntry.unreliable ? "io.anuke.mindustry.net.Net.SendMode.udp" : "io.anuke.mindustry.net.Net.SendMode.tcp")+")");
method.addStatement("io.anuke.mindustry.net.Net." + sendString + "packet, " +
(methodEntry.unreliable ? "io.anuke.mindustry.net.Net.SendMode.udp" : "io.anuke.mindustry.net.Net.SendMode.tcp") + ")");
//end check for server/client
@@ -220,7 +220,7 @@ public class RemoteWriteGenerator {
private String getCheckString(Loc loc){
return loc.isClient && loc.isServer ? "io.anuke.mindustry.net.Net.server() || io.anuke.mindustry.net.Net.client()" :
loc.isClient ? "io.anuke.mindustry.net.Net.client()" :
loc.isServer ? "io.anuke.mindustry.net.Net.server()" : "false";
loc.isClient ? "io.anuke.mindustry.net.Net.client()" :
loc.isServer ? "io.anuke.mindustry.net.Net.server()" : "false";
}
}
@@ -0,0 +1,110 @@
package io.anuke.annotations;
import com.squareup.javapoet.*;
import io.anuke.annotations.Annotations.Serialize;
import javax.annotation.processing.*;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.util.ElementFilter;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.List;
import java.util.Set;
@SupportedSourceVersion(SourceVersion.RELEASE_8)
@SupportedAnnotationTypes({
"io.anuke.annotations.Annotations.Serialize"
})
public class SerializeAnnotationProcessor extends AbstractProcessor{
/**Target class name.*/
private static final String className = "Serialization";
/** Name of the base package to put all the generated classes. */
private static final String packageName = "io.anuke.mindustry.gen";
private int round;
@Override
public synchronized void init(ProcessingEnvironment processingEnv){
super.init(processingEnv);
//put all relevant utils into utils class
Utils.typeUtils = processingEnv.getTypeUtils();
Utils.elementUtils = processingEnv.getElementUtils();
Utils.filer = processingEnv.getFiler();
Utils.messager = processingEnv.getMessager();
}
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv){
if(round++ != 0) return false; //only process 1 round
try{
Set<TypeElement> elements = ElementFilter.typesIn(roundEnv.getElementsAnnotatedWith(Serialize.class));
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
for(TypeElement elem : elements){
TypeName type = TypeName.get(elem.asType());
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
.addSuperinterface(ParameterizedTypeName.get(
ClassName.bestGuess("io.anuke.ucore.io.TypeSerializer"), type));
MethodSpec.Builder writeMethod = MethodSpec.methodBuilder("write")
.returns(void.class)
.addParameter(DataOutput.class, "stream")
.addParameter(type, "object")
.addAnnotation(Override.class)
.addException(IOException.class)
.addModifiers(Modifier.PUBLIC);
MethodSpec.Builder readMethod = MethodSpec.methodBuilder("read")
.returns(type)
.addParameter(DataInput.class, "stream")
.addAnnotation(Override.class)
.addException(IOException.class)
.addModifiers(Modifier.PUBLIC);
readMethod.addStatement("$L object = new $L()", type, type);
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
for(VariableElement field : fields){
if(field.getModifiers().contains(Modifier.STATIC) || field.getModifiers().contains(Modifier.TRANSIENT) || field.getModifiers().contains(Modifier.PRIVATE)) continue;
String name = field.getSimpleName().toString();
String typeName = Utils.typeUtils.erasure(field.asType()).toString().replace('$', '.');
String capName = Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1);
if(field.asType().getKind().isPrimitive()){
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
}else{
writeMethod.addStatement("io.anuke.ucore.core.Settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")");
readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.ucore.core.Settings.getSerializer(" + typeName+ ".class).read(stream)");
}
}
readMethod.addStatement("return object");
serializer.addMethod(writeMethod.build());
serializer.addMethod(readMethod.build());
method.addStatement("io.anuke.ucore.core.Settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
}
classBuilder.addMethod(method.build());
//write result
JavaFile.builder(packageName, classBuilder.build()).build().writeTo(Utils.filer);
return true;
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
@@ -7,14 +7,14 @@ import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
public class Utils {
public class Utils{
public static Types typeUtils;
public static Elements elementUtils;
public static Filer filer;
public static Messager messager;
public static String getMethodName(Element element){
return ((TypeElement)element.getEnclosingElement()).getQualifiedName().toString() + "." + element.getSimpleName();
return ((TypeElement) element.getEnclosingElement()).getQualifiedName().toString() + "." + element.getSimpleName();
}
public static boolean isPrimitive(String type){
@@ -0,0 +1,2 @@
io.anuke.annotations.RemoteMethodAnnotationProcessor
io.anuke.annotations.SerializeAnnotationProcessor
+81 -61
View File
@@ -8,8 +8,6 @@ buildscript {
}
dependencies {
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.0'
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
classpath 'com.android.tools.build:gradle:3.1.0'
classpath "com.badlogicgames.gdx:gdx-tools:1.9.8"
}
}
@@ -22,16 +20,16 @@ allprojects {
ext {
versionNumber = '4.0'
versionType = 'alpha'
versionModifier = 'alpha'
versionType = 'official'
appName = 'Mindustry'
gdxVersion = '1.9.8'
roboVMVersion = '2.3.0'
aiVersion = '1.8.1'
uCoreVersion = '2241e5402e'
uCoreVersion = 'eb1503dfb786f5f727bdb4b6a302718490444335'
getVersionString = {
String buildVersion = getBuildVersion()
return "$versionNumber-$versionType-$buildVersion"
return "$versionNumber-$versionModifier-$buildVersion"
}
getBuildVersion = {
@@ -43,24 +41,34 @@ allprojects {
return project.ext.mainClassName.substring(0, project.ext.mainClassName.indexOf("desktop") - 1)
}
generateLocales = {
def output = 'en\n'
def bundles = new File(project(':core').projectDir, 'assets/bundles/')
bundles.listFiles().each { other ->
if(other.name == "bundle.properties") return
output += other.name.substring("bundle".length() + 1, other.name.lastIndexOf('.')) + "\n"
}
new File(project(':core').projectDir, 'assets/locales').text = output
}
writeVersion = {
def pfile = new File('core/assets/version.properties')
def pfile = new File(project(':core').projectDir, 'assets/version.properties')
def props = new Properties()
try{
pfile.createNewFile()
}catch (Exception e){}
}catch (Exception ignored){}
if(pfile.exists()) {
props.load(new FileInputStream(pfile))
String code = getBuildVersion()
String buildid = getBuildVersion()
props["name"] = appName
props["version"] = versionType
props["code"] = versionNumber
props["build"] = code
props["type"] = versionType
props["number"] = versionNumber
props["modifier"] = versionModifier
props["build"] = buildid
props.store(pfile.newWriter(), "Autogenerated file. Do not modify.")
}
@@ -82,44 +90,37 @@ project(":desktop") {
dependencies {
compile project(":core")
compile project(":kryonet")
if(new File(projectDir.parent, '../debug').exists() && System.properties["release"] == null) compile project(":debug")
compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop"
compile 'com.github.MinnDevelopment:java-discord-rpc:v2.0.0'
compile 'com.yuvimasory:orange-extensions:1.3.0'
}
}
project(":html") {
apply plugin: "gwt"
apply plugin: "war"
dependencies {
compile project(":core")
compileOnly project(":annotations")
compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion"
compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-ai:$aiVersion:sources"
compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion:sources"
compile "com.sksamuel.gwt:gwt-websockets:1.0.4"
compile "com.sksamuel.gwt:gwt-websockets:1.0.4:sources"
}
compileJava.options.compilerArgs = [
"-processor", "io.anuke.annotations.RemoteMethodAnnotationProcessor"
]
}
project(":ios") {
apply plugin: "java"
apply plugin: "robovm"
task copyGen{
copy{
from ("core/build/classes/java/main/io/anuke/mindustry/gen/"){
include "**/*.java"
}
into "ios/src/io/anuke/mindustry/gen"
}
doFirst{
delete{
delete "ios/src/io/anuke/mindustry/gen/"
}
}
}
build.dependsOn(copyGen)
dependencies {
compile project(":core")
@@ -129,22 +130,22 @@ project(":ios") {
compile "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"
}
}
project(":core") {
apply plugin: "java"
task finish {
generateLocales()
}
dependencies {
compileOnly project(":annotations")
build.finalizedBy(finish)
boolean comp = System.properties["release"] == null || System.properties["release"] == "false"
if(!comp){
println("NOTICE: Compiling release build.")
}else{
println("Compiling DEBUG build.")
}
def comp = System.properties["release"] == null || System.properties["release"] == "false"
if(!comp) println("Note: Compiling release build.")
if(new File(projectDir.parent, '../uCore').exists() && comp){
compile project(":uCore")
@@ -158,18 +159,23 @@ project(":core") {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion"
}
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
compileJava.options.compilerArgs = [
"-processor", "io.anuke.annotations.RemoteMethodAnnotationProcessor"
]
compileOnly project(":annotations")
annotationProcessor project(":annotations")
}
}
project(":server") {
apply plugin: "java"
configurations {
if(findProject(":android") != null){
compile.exclude module: android
}
}
dependencies {
compileOnly project(":annotations")
compile project(":core")
compile project(":kryonet")
@@ -178,7 +184,24 @@ project(":server") {
}
}
project(":packer") {
project(":tests"){
apply plugin: "java"
dependencies {
testImplementation project(":core")
testImplementation('org.junit.jupiter:junit-jupiter-api:5.1.0')
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.1.0')
testImplementation "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion"
testImplementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
}
test {
useJUnitPlatform()
workingDir = new File("../core/assets")
}
}
project(":tools") {
apply plugin: "java"
dependencies {
@@ -199,11 +222,8 @@ project(":kryonet") {
dependencies {
compile project(":core")
compile 'com.github.crykn:kryonet:2.22.1'
compile "org.java-websocket:Java-WebSocket:1.3.7"
compile "org.lz4:lz4-java:1.4.1"
compile 'com.github.Anuken:kryonet:53b10247b1'
compile 'com.github.Anuken:WaifUPnP:05eb46bc577fd7674596946ba288c96c0cedd893'
}
}
tasks.eclipse.doLast {
delete ".project"
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 95 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 B

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 B

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 B

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

After

Width:  |  Height:  |  Size: 216 B

Some files were not shown because too many files have changed in this diff Show More