Compare commits

..

192 Commits
v76 ... v78

Author SHA1 Message Date
Anuken
e7fb128499 Fixed sorter loading 2019-06-07 16:13:48 -04:00
Anuken
c2d619cb7f Save IO fixes 2019-06-07 16:06:23 -04:00
Anuken
78176cca90 unused -> unchecked 2019-06-07 15:06:17 -04:00
Anuken
dbc49649c0 Merge remote-tracking branch 'origin/master' 2019-06-07 15:04:43 -04:00
Anuken
49ee821029 More stuff fixed / Contributor list 2019-06-07 15:03:01 -04:00
Anuken
e1499330bc Merge pull request #508 from VizardAlpha/patch-21
Updates bundle_fr_BE.properties
2019-06-07 14:19:21 -04:00
Anuken
222175e005 Merge pull request #497 from ZacBytes/patch-5
Update bundle_zh_CN.properties
2019-06-07 14:18:40 -04:00
Anuken
388927715e Merge branch 'master' into patch-5 2019-06-07 14:18:33 -04:00
Anuken
ac9e1febfb Merge pull request #492 from MrPickles14/patch-2
Update bundle_fr.properties
2019-06-07 14:16:08 -04:00
Anuken
e47836cc64 Merge branch 'master' into patch-2 2019-06-07 14:16:00 -04:00
Anuken
f8f48f1c88 Merge pull request #491 from MrPickles14/patch-1
Update bundle_fr.properties
2019-06-07 14:14:29 -04:00
Anuken
95e8a603a5 Merge pull request #489 from Kieaer/patch-5
bundle_ko
2019-06-07 14:14:03 -04:00
Anuken
c400fd88f3 Merge pull request #487 from beito123/master
Update Japanese translations
2019-06-07 14:13:06 -04:00
Anuken
095d90fd22 Merge pull request #484 from Deyvid67/patch-2
Update bundle_pt_BR.properties
2019-06-07 14:11:47 -04:00
Anuken
797be92ddd Merge pull request #482 from laohuaji233/patch-7
Update bundle_zh_CN.properties
2019-06-07 14:11:32 -04:00
Anuken
7f23bd694c Merge pull request #480 from Prosta4okua/patch-1
Update bundle_uk_UA.properties
2019-06-07 14:11:15 -04:00
Anuken
1cbf8b960a Added clarifying mode descriptions 2019-06-07 14:10:23 -04:00
Anuken
c8ce195522 Reverted buffers / Added Dexapnow's fixed zone maps [untested] 2019-06-07 14:07:32 -04:00
Anuken
4458ae042e hhh 2019-06-07 11:18:06 -04:00
Anuken
1c3d7c1c73 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-06-07 10:25:14 -04:00
Anuken
cb3bbd169f Map temporarily removed 2019-06-07 08:57:51 -04:00
Anuken
ab107bfc0d Additional default wave tweaks 2019-06-07 08:49:41 -04:00
Anuken
d0b5b49bf8 Fixed many various bugs 2019-06-06 23:29:21 -04:00
Anuken
1b4b1d5c9f Maps updated / 100 starting copper in custom maps 2019-06-06 22:45:25 -04:00
Anuken
aee800ab7a Changed turret outlines / Wall block tweaks 2019-06-06 21:18:54 -04:00
Anuken
895b46307a Sprite tweaks 2019-06-06 18:47:53 -04:00
Anuken
d300d45f22 Fixed unit factory sprites 2019-06-06 15:38:19 -04:00
Anuken
dd05f5278c Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-06-06 12:05:46 -04:00
Anuken
1897008c72 Pump sprites 2019-06-06 10:27:11 -04:00
VizardAlpha
328cdac60f Update bundle_fr_BE.properties 2019-06-06 15:38:24 +02:00
Anuken
3942c6cd55 Even more sprites cleaned up 2019-06-06 00:28:09 -04:00
Anuken
f0f7b5aaf7 Updated sprites 2019-06-05 21:29:34 -04:00
키에르
3ad9e44891 Update bundle_ko.properties 2019-06-05 23:05:01 +09:00
Anuken
80bdaa1edc Cleanup 2019-06-04 23:30:07 -04:00
Anuken
39acb224d1 Merged replacement sprites. Scaling is now disabled by default. 2019-06-04 22:54:01 -04:00
Anuken
f51d565db8 Darker decals / map tweaks 2019-06-04 22:06:17 -04:00
Anuken
d608cf6536 Fixed player respawning at editor location 2019-06-04 20:52:58 -04:00
Anuken
0b49bd1985 Pathfinding tweak / Doors now update pathfinding 2019-06-04 17:10:45 -04:00
Anuken
fce69005a9 Islands map 2019-06-03 22:09:43 -04:00
Anuken
b73420b156 Added map assets 2019-06-02 23:15:36 -04:00
Anuken
fb863cb39b Editor bugfixes / Median filter 2019-06-02 17:45:44 -04:00
Anuken
8247ff15ed Fixed invalid phase weaver shader 2019-06-02 10:42:44 -04:00
Anuken
af8db9062c Balance 2019-06-01 23:16:59 -04:00
VizardAlpha
9039d52817 Updates bundle_fr_BE.properties 2019-06-01 23:12:52 +02:00
Anuken
88d5e1cca8 Fixed low-FPS pad orbiting 2019-06-01 15:16:10 -04:00
Anuken
57544e615f Removed event inheritance 2019-06-01 14:24:52 -04:00
Anuken
61a92d55ae Balance / UUID logging in d/c messages 2019-05-31 19:55:09 -04:00
Anuken
940965f03d .mmap file importing / Better exception parsing 2019-05-31 10:24:51 -04:00
Anuken
30a254e9be decoupling editor/MapEditor from editor/OperationStack (#504) 2019-05-31 09:11:16 -04:00
Anuken
581782af28 Mass driver power fix / Bugfixes 2019-05-31 09:10:37 -04:00
Anuken
72cad1409f Bugfixes / Balance of fuse 2019-05-30 23:05:15 -04:00
Anuken
e7e4985761 Fixed maps converting improperly / Minor balancing 2019-05-30 20:47:47 -04:00
Prosta4okua
cdb3d29767 Update bundle_uk_UA.properties 2019-05-30 09:56:57 +03:00
Prosta4okua
90fe5329e3 Update bundle_uk_UA.properties 2019-05-30 09:53:37 +03:00
Prosta4okua
22e20cb2da Update bundle_ru.properties 2019-05-30 09:51:54 +03:00
Anuken
a3454e50d7 Merge 2019-05-30 00:27:05 -04:00
Anuken
75b8f5e543 Properly rounded sprites for 'source/sorter' blocks 2019-05-29 23:42:03 -04:00
Anuken
1a0b22ef15 Overflow gate delay 2019-05-29 22:57:32 -04:00
Anuken
bc78d1a561 Balancing 2019-05-29 22:29:49 -04:00
Anuken
00b953a04e Spawnpoint repultion 2019-05-29 21:41:56 -04:00
Doyoung Gwak
aa0ef529f5 decoupling editor/MapEditor from editor/OperationStack 2019-05-29 00:04:42 +09:00
Anuken
bd134bf9c9 Cleanup 2019-05-28 09:24:13 -04:00
Anuken
752267c521 Fixed many various map bugs 2019-05-26 16:46:44 -04:00
Anuken
34635e3460 Fixed fire not syncing 2019-05-26 11:03:49 -04:00
Anuken
ba0b4513f1 New tile transitions 2019-05-25 23:56:21 -04:00
Anuken
4764808450 Merge remote-tracking branch 'origin/master' 2019-05-25 21:10:47 -04:00
Anuken
c66fd67510 Fixed #500 / Fixed units not appearing in edited maps 2019-05-25 21:10:42 -04:00
Fenr1r
3997ca6454 Minor fix - rename some variable on editor. (#495)
- editor/EditorTool.java
- editor/MapInfoDialog.java
- editor/MapRenderer.java
2019-05-25 12:08:00 -04:00
Anuken
4242100c53 More descriptive entity load errors 2019-05-25 12:01:55 -04:00
Anuken
32adcc3676 Merge remote-tracking branch 'origin/master' 2019-05-22 21:07:13 -04:00
Anuken
80c26606f0 Fixed unit duplication 2019-05-22 21:07:08 -04:00
Fenr1r
a7852098f1 Remove code duplication and rename set/get method on editor/DrawOperation.java (#496)
- remove code duplication in undo and redo method
- rename set/get method to setTile/getTile
2019-05-22 10:06:43 -04:00
Anuken
72638fc215 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-05-21 13:19:27 -04:00
Zachary
65418529cd Update bundle_zh_CN.properties
Skrttt Skrrtt Vroom Vroom

Translated some new stuff
2019-05-21 23:00:01 +08:00
Prosta4ok_ua
ceea0d1730 Hmmmm
Hmmmm
2019-05-20 21:25:16 +03:00
키에르
764ea699b1 Update bundle_ko.properties 2019-05-20 13:14:59 +09:00
Anuken
bdb7f522fb Balancing / Item tweaks 2019-05-19 17:50:11 -04:00
Anuken
2461331e32 Fixed wave turret being sporadic / Fixed unnecessary fluid usage 2019-05-19 09:09:22 -04:00
Anuken
3464f40da3 Fixed unit pads, rule selection, gameover state 2019-05-18 10:02:36 -04:00
Anuken
3b2b79d539 Buffed impact reactor 2019-05-17 18:10:03 -04:00
Anuken
8616fc6b05 Made invalid legacy maps be properly discarded 2019-05-16 17:15:22 -04:00
Anuken
9e9c001422 Cleanup 2019-05-16 15:16:17 -04:00
Anuken
93bbd34055 ...except overflow gates 2019-05-16 11:44:02 -04:00
Anuken
cac953e812 Buffers for everything 2019-05-16 11:43:02 -04:00
Anuken
aeb3662414 Bugfixes 2019-05-15 17:40:31 -04:00
Prosta4ok_ua
1687ce3182 Added new translations 2019-05-14 23:59:24 +03:00
Anuken
2888e87bb8 Map conversion fix 2019-05-14 16:38:49 -04:00
Anuken
094ebb8020 Removed some TODOs 2019-05-14 13:18:05 -04:00
Anuken
54ad52edc2 Merging of map saves 2019-05-14 11:54:22 -04:00
Anuken
0e869f3cb5 Fixed rules not saving / Memory usage reduction 2019-05-14 11:48:14 -04:00
Anuken
4d40af6ac0 More helpful in-game edit button 2019-05-13 11:47:38 -04:00
Anuken
79a2f31056 Fixed unit tests 2019-05-13 11:32:57 -04:00
Anuken
b2341bf75c Added map default rule editing 2019-05-13 11:31:25 -04:00
Anuken
c4c4b473e5 Server cleanup 2019-05-13 00:43:06 -04:00
Anuken
6e26ccf25d Removed unnecessary inheritance 2019-05-12 23:50:33 -04:00
Anuken
83bfad3546 Fixed server compilation 2019-05-12 20:01:59 -04:00
Anuken
90f6fff1ae Layout fixes 2019-05-12 19:55:26 -04:00
Anuken
52f2b52990 Somewhat functional rule selection 2019-05-12 19:43:23 -04:00
Anuken
48ed4b0e49 Fixed startup crash / Fixed editor rule issue 2019-05-12 12:51:25 -04:00
Anuken
c3c609e7b9 Fixed invisible enemies 2019-05-12 12:38:40 -04:00
Anuken
6cd8fa6b0c Removed unused support library dependency 2019-05-12 12:16:46 -04:00
Anuken
ffb6d398d7 Layout fixes 2019-05-12 12:00:19 -04:00
Anuken
52674b4668 Mobile diagonal toggle / Cancel button moved 2019-05-12 11:19:31 -04:00
Anuken
4ae2370137 New WIP custom map selection 2019-05-12 10:32:08 -04:00
키에르
cee55afa5c Update bundle_ko.properties 2019-05-12 15:46:03 +09:00
키에르
f998bbbe4c Update bundle_ko.properties 2019-05-12 14:45:25 +09:00
Anuken
e5d19a9819 Entity placement/removal 2019-05-11 21:42:06 -04:00
Anuken
dd75d88d2f Unit creation, team switch 2019-05-11 12:32:13 -04:00
Anuken
65ea01218a Fixed core-less editor gameover, respawning 2019-05-11 00:58:13 -04:00
Anuken
7a2234cd25 Tweaks to improve in-game editing 2019-05-11 00:37:29 -04:00
Anuken
11ede2756e Functional in-game map edits and loading 2019-05-10 20:25:09 -04:00
Anuken
3e51fab387 In-game editing (broken) 2019-05-10 19:13:55 -04:00
Anuken
962f413421 Cleanup 2019-05-10 16:16:21 -04:00
Anuken
ae6c938abb Merge remote-tracking branch 'origin/master' 2019-05-10 16:02:15 -04:00
Anuken
68faae69c5 Fixed compilation errors / Re-added basic trace dialog 2019-05-10 16:02:05 -04:00
MrPickles14
08edce7906 Update core/assets/bundles/bundle_fr.properties
Co-Authored-By: Math2128 <math2128@gmail.com>
2019-05-10 14:32:24 -04:00
MrPickles14
55eb493d1f Update bundle_fr.properties
J'ai changé 2 ou 3 trucs et ajouté des traductions qui n'étaient pas faites
2019-05-10 14:30:38 -04:00
Anuken
d6be07f1b8 Fixed crash 2019-05-10 13:42:04 -04:00
Anuken
064a012b25 Map previews functional 2019-05-10 12:57:45 -04:00
MrPickles14
df26148e7c Update bundle_fr.properties 2019-05-10 12:23:21 -04:00
Anuken
d26f533111 Basic non-in-game editor functionality 2019-05-10 00:01:48 -04:00
Anuken
69575dbab3 Fixed multiblocks not drawing 2019-05-09 18:10:12 -04:00
Anuken
9f4a430412 Fixed tests 2019-05-09 14:39:52 -04:00
Anuken
23843be981 More bugfix stuff 2019-05-09 12:57:00 -04:00
Anuken
486e3ffc0a Actual map conversion, loading of saves 2019-05-09 10:53:52 -04:00
Anuken
8127e5a66f Made save format actually functional, many things still broken 2019-05-08 23:16:08 -04:00
Anuken
53167a3b52 Map conversion code 2019-05-07 17:30:37 -04:00
Anuken
1b77247c40 wow it builds 2019-05-07 11:56:17 -04:00
Leone25
24374cf7e3 Update bundle_it.properties (#490)
please merge as soon as possible
2019-05-07 09:34:42 -04:00
Anuken
88de54ec90 Further unfinished map tweaks 2019-05-06 18:32:18 -04:00
Anuken
3035d569cc Editor<->world data merging 2019-05-06 17:03:53 -04:00
Anuken
51f9ad5a2c many things 2019-05-06 14:34:21 -04:00
키에르
bb322f1bff Update bundle_ko.properties 2019-05-06 16:20:54 +09:00
키에르
72843e9c92 Update bundle_ko.properties 2019-05-06 16:19:20 +09:00
Anuken
20fbe2fbbe even less broken 2019-05-05 22:09:02 -04:00
Anuken
bf073a84c8 a bit less broken but still broken 2019-05-05 19:05:46 -04:00
Anuken
35b158dba7 everything is borked 2019-05-05 14:16:34 -04:00
Anuken
465c0e7dc3 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-05-05 12:50:04 -04:00
Anuken
eb4f6f2e9f Merge branch 'master' of https://github.com/Anuken/Mindustry into save-rewrite 2019-05-05 12:39:38 -04:00
Anuken
0ff56e3a68 Fixed meltdown not firing when cheating 2019-05-05 12:36:30 -04:00
Prosta4ok_ua
e4e2b6ab00 Hmmmmmm 2019-05-05 18:37:24 +03:00
Anuken
af67690e75 WIP save refactoring 2019-05-05 11:36:38 -04:00
beito123
b37ae484c0 Update Japanese translations 2019-05-05 23:39:15 +09:00
beito123
18f1b5f9d2 Update Japanese translations 2019-05-05 01:52:35 +09:00
beito123
96a92fd85f Update Japanese translations 2019-05-04 18:42:05 +09:00
beito123
e5175d6309 Update Japanese translations 2019-05-04 18:37:44 +09:00
beito123
b5ceee3336 Merge remote-tracking branch 'upstream/master' 2019-05-04 16:42:48 +09:00
Deyvid67
c97826ed29 Update bundle_pt_BR.properties 2019-05-02 14:33:29 -03:00
Anuken
9c653a46bc Merge remote-tracking branch 'origin/master'
# Conflicts:
#	core/src/io/anuke/mindustry/game/Version.java
2019-05-02 12:59:05 -04:00
beito123
9f5a183793 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-05-02 20:08:10 +09:00
Anuken
c2a6690d24 Merge branch 'master' of https://github.com/Anuken/Mindustry 2019-05-01 20:52:02 -04:00
Anuken
5e5b719704 Added version toggle 2019-05-01 20:51:44 -04:00
laohuaji233
bb5e454b91 Update bundle_zh_CN.properties
Most of them have been translated into Chinese, but there are still some uncertainties.
2019-05-01 23:19:27 +08:00
Prosta4okua
ffb12f9c0b Update bundle_ru.properties 2019-05-01 18:18:01 +03:00
Prosta4okua
a89786d079 Update bundle_uk_UA.properties 2019-05-01 18:17:35 +03:00
Prosta4ok_ua
271d01dc9d Tar fields, Overgrowth, Dart Mech Pad 2019-05-01 13:16:12 +03:00
Prosta4okua
d3ffaea042 Update bundle_uk_UA.properties 2019-05-01 11:36:13 +03:00
beito123
a2fa65330d Update Japanese translations 2019-04-29 17:40:03 +09:00
beito123
d3af66b7ed Merge remote-tracking branch 'upstream/master' 2019-04-29 17:18:16 +09:00
beito123
4a7960d64b Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-04-16 19:10:18 +09:00
Anuken
c5226c9e59 Merge branch 'master' into master 2019-03-20 17:13:48 -06:00
beito123
3bad95b389 Update Japanese translations 2019-03-20 15:29:36 +09:00
beito123
54ef7760b9 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-03-20 13:11:49 +09:00
beito123
2ed5d34192 Update Japanese 2019-03-19 21:20:29 +09:00
beito123
9336a2b4c5 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-03-17 17:56:40 +09:00
beito123
eb92ca8cd7 Update Japanese 2019-03-17 16:44:51 +09:00
beito123
f5866d7f72 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-03-06 14:59:38 +09:00
beito123
dbbc72d00f Update Japanese translations 2019-03-06 14:49:12 +09:00
beito123
2b4bcf0b0a Oops! 2019-02-15 12:17:43 +09:00
beito123
0851f2d0e2 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/assets/bundles/bundle_ja.properties
2019-02-13 12:23:26 +09:00
beito123
ea9ed841ee Update Japanese translations 2018-12-16 21:54:32 +09:00
beito123
567f3fd3cd Update Japanese translations 2018-12-15 17:26:26 +09:00
beito123
9dcd8dc419 Merge remote-tracking branch 'fork_master/master' 2018-12-15 15:48:39 +09:00
beito123
e19bd9d434 Update Japanese translation 2018-12-10 23:10:57 +09:00
beito123
35ecd26634 Update Japanese translations 2018-12-10 00:37:00 +09:00
beito123
ac3bb37c36 Update Japanese translations 2018-12-09 19:36:29 +09:00
beito123
17b8b285a3 Update Japanese translations 2018-12-09 19:10:41 +09:00
beito123
788bf383aa Update Japanese translations 2018-12-09 19:07:40 +09:00
beito123
8d0b889f3c Update Japanese translations 2018-12-09 15:09:37 +09:00
beito123
d250fb655d Merge remote-tracking branch 'fork_master/master' 2018-12-09 14:26:55 +09:00
beito123
74eb79de17 Merge remote-tracking branch 'fork_master/master' 2018-12-08 00:44:59 +09:00
beito123
e2eabfc141 Merge remote-tracking branch 'fork_master/master' 2018-12-01 17:08:54 +09:00
beito123
a3ee43b31c Update Japanese translations 2018-11-25 23:49:40 +09:00
beito123
12dd16d4bf Update Japanese 2018-11-25 23:40:33 +09:00
beito123
a5b9e57576 Update Japanese translations
Improve and update for new changes
2018-11-25 23:33:00 +09:00
beito123
6c194d257c merge from master 2018-11-25 22:39:04 +09:00
beito123
09598e0ced Update Japanese 2018-11-16 19:39:16 +09:00
beito123
6af2696f6a Update Japanese 2018-11-16 19:01:05 +09:00
beito123
69dac77932 Merge remote-tracking branch 'fork_master/master' 2018-11-16 18:44:14 +09:00
beito123
2764e0e5fa Upadte Japanese translations 2018-11-15 01:42:11 +09:00
beito123
fa5cdc3afa Update Japanese translation
Applies commit 7a51693. and small changes.
2018-11-15 01:07:39 +09:00
beito123
8dae5ec47a Add new japanese translation
It translated on commit 66810c8.
so it don't apply changes from commit 17e0489.
2018-11-15 00:39:37 +09:00
968 changed files with 11745 additions and 11006 deletions

View File

@@ -8,7 +8,7 @@ buildscript{
} }
dependencies{ dependencies{
classpath 'com.android.tools.build:gradle:3.4.0' classpath 'com.android.tools.build:gradle:3.4.1'
} }
} }
@@ -167,26 +167,3 @@ task run(type: Exec){
def adb = path + "/platform-tools/adb" def adb = path + "/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/io.anuke.mindustry.AndroidLauncher' commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/io.anuke.mindustry.AndroidLauncher'
} }
// sets up the Android Idea project, using the old Ant based build.
idea{
module{
sourceDirs += file("src")
scopes = [COMPILE: [plus: [project.configurations.compile]]]
iml{
withXml{
def node = it.asNode()
def builder = NodeBuilder.newInstance()
builder.current = node
builder.component(name: "FacetManager"){
facet(type: "android", name: "Android"){
configuration{
option(name: "UPDATE_PROPERTY_FILES", value: "true")
}
}
}
}
}
}
}

View File

@@ -15,16 +15,15 @@ import io.anuke.arc.backends.android.surfaceview.AndroidApplication;
import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration; import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration;
import io.anuke.arc.files.FileHandle; import io.anuke.arc.files.FileHandle;
import io.anuke.arc.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.scene.ui.layout.Unit; import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Strings; import io.anuke.arc.util.Strings;
import io.anuke.arc.util.serialization.Base64Coder; import io.anuke.arc.util.serialization.Base64Coder;
import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.game.Saves.SaveSlot; import io.anuke.mindustry.game.Saves.SaveSlot;
import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.*;
import io.anuke.mindustry.ui.dialogs.FileChooser; import io.anuke.mindustry.ui.dialogs.FileChooser;
import io.anuke.mindustry.net.ArcNetClient;
import io.anuke.mindustry.net.ArcNetServer;
import java.io.*; import java.io.*;
import java.util.ArrayList; import java.util.ArrayList;
@@ -72,8 +71,8 @@ public class AndroidLauncher extends AndroidApplication{
} }
@Override @Override
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){ public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, Predicate<String> filetype){
chooser = new FileChooser(text, file -> file.extension().equalsIgnoreCase(filetype), open, cons); chooser = new FileChooser(text, file -> filetype.test(file.extension().toLowerCase()), open, cons);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && 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)){ checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
chooser.show(); chooser.show();
@@ -157,7 +156,7 @@ public class AndroidLauncher extends AndroidApplication{
SaveSlot slot = control.saves.importSave(file); SaveSlot slot = control.saves.importSave(file);
ui.load.runLoadSave(slot); ui.load.runLoadSave(slot);
}catch(IOException e){ }catch(IOException e){
ui.showError(Core.bundle.format("save.import.fail", Strings.parseException(e, false))); ui.showError(Core.bundle.format("save.import.fail", Strings.parseException(e, true)));
} }
}else{ }else{
ui.showError("$save.import.invalid"); ui.showError("$save.import.invalid");

View File

@@ -4,12 +4,27 @@ import java.lang.annotation.*;
public class Annotations{ public class Annotations{
@Target({ElementType.METHOD, ElementType.FIELD}) /** Indicates that a method should always call its super version. */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface CallSuper{
}
/** Annotation that allows overriding CallSuper annotation. To be used on method that overrides method with CallSuper annotation from parent class.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface OverrideCallSuper {
}
/** Indicates that a method return or field can be null.*/
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
public @interface Nullable{ public @interface Nullable{
} }
/** Indicates that a method return or field cannot be null.*/
@Target({ElementType.METHOD, ElementType.FIELD}) @Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
public @interface NonNull{ public @interface NonNull{

View File

@@ -0,0 +1,65 @@
package io.anuke.annotations;
import com.sun.source.util.TreePath;
import com.sun.source.util.Trees;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.JCExpressionStatement;
import io.anuke.annotations.Annotations.OverrideCallSuper;
import javax.annotation.processing.*;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
import javax.tools.Diagnostic.Kind;
import java.util.List;
import java.util.Set;
@SupportedAnnotationTypes("java.lang.Override")
public class CallSuperAnnotationProcessor extends AbstractProcessor{
private Trees trees;
@Override
public void init (ProcessingEnvironment pe) {
super.init(pe);
trees = Trees.instance(pe);
}
public boolean process (Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
for (Element e : roundEnv.getElementsAnnotatedWith(Override.class)) {
if (e.getAnnotation(OverrideCallSuper.class) != null) return false;
CodeAnalyzerTreeScanner codeScanner = new CodeAnalyzerTreeScanner();
codeScanner.setMethodName(e.getSimpleName().toString());
TreePath tp = trees.getPath(e.getEnclosingElement());
codeScanner.scan(tp, trees);
if (codeScanner.isCallSuperUsed()) {
List list = codeScanner.getMethod().getBody().getStatements();
if (!doesCallSuper(list, codeScanner.getMethodName())) {
processingEnv.getMessager().printMessage(Kind.ERROR, "Overriding method '" + codeScanner.getMethodName() + "' must explicitly call super method from its parent class.", e);
}
}
}
return false;
}
private boolean doesCallSuper (List list, String methodName) {
for (Object object : list) {
if (object instanceof JCTree.JCExpressionStatement) {
JCTree.JCExpressionStatement expr = (JCExpressionStatement) object;
String exprString = expr.toString();
if (exprString.startsWith("super." + methodName) && exprString.endsWith(");")) return true;
}
}
return false;
}
@Override
public SourceVersion getSupportedSourceVersion () {
return SourceVersion.RELEASE_8;
}
}

View File

@@ -0,0 +1,98 @@
package io.anuke.annotations;
import com.sun.source.tree.*;
import com.sun.source.util.TreePathScanner;
import com.sun.source.util.Trees;
import com.sun.tools.javac.code.Scope;
import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.code.Symbol.MethodSymbol;
import com.sun.tools.javac.code.Type.ClassType;
import com.sun.tools.javac.tree.JCTree.JCIdent;
import com.sun.tools.javac.tree.JCTree.JCTypeApply;
import io.anuke.annotations.Annotations.CallSuper;
import java.lang.annotation.Annotation;
class CodeAnalyzerTreeScanner extends TreePathScanner<Object, Trees> {
private String methodName;
private MethodTree method;
private boolean callSuperUsed;
@Override
public Object visitClass (ClassTree classTree, Trees trees) {
Tree extendTree = classTree.getExtendsClause();
if (extendTree instanceof JCTypeApply) { //generic classes case
JCTypeApply generic = (JCTypeApply) extendTree;
extendTree = generic.clazz;
}
if (extendTree instanceof JCIdent) {
JCIdent tree = (JCIdent) extendTree;
Scope members = tree.sym.members();
if (checkScope(members))
return super.visitClass(classTree, trees);
if (checkSuperTypes((ClassType) tree.type))
return super.visitClass(classTree, trees);
}
callSuperUsed = false;
return super.visitClass(classTree, trees);
}
public boolean checkSuperTypes (ClassType type) {
if (type.supertype_field != null && type.supertype_field.tsym != null) {
if (checkScope(type.supertype_field.tsym.members()))
return true;
else
return checkSuperTypes((ClassType) type.supertype_field);
}
return false;
}
public boolean checkScope (Scope members) {
for (Symbol s : members.getElements()) {
if (s instanceof MethodSymbol) {
MethodSymbol ms = (MethodSymbol) s;
if (ms.getSimpleName().toString().equals(methodName)) {
Annotation annotation = ms.getAnnotation(CallSuper.class);
if (annotation != null) {
callSuperUsed = true;
return true;
}
}
}
}
return false;
}
@Override
public Object visitMethod (MethodTree methodTree, Trees trees) {
if (methodTree.getName().toString().equals(methodName))
method = methodTree;
return super.visitMethod(methodTree, trees);
}
public void setMethodName (String methodName) {
this.methodName = methodName;
}
public String getMethodName () {
return methodName;
}
public MethodTree getMethod () {
return method;
}
public boolean isCallSuperUsed () {
return callSuperUsed;
}
}

View File

@@ -13,9 +13,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
@SupportedSourceVersion(SourceVersion.RELEASE_8) @SupportedSourceVersion(SourceVersion.RELEASE_8)
@SupportedAnnotationTypes({ @SupportedAnnotationTypes("io.anuke.annotations.Annotations.Serialize")
"io.anuke.annotations.Annotations.Serialize"
})
public class SerializeAnnotationProcessor extends AbstractProcessor{ public class SerializeAnnotationProcessor extends AbstractProcessor{
/** Target class name. */ /** Target class name. */
private static final String className = "Serialization"; private static final String className = "Serialization";
@@ -44,20 +42,10 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC); TypeSpec.Builder classBuilder = TypeSpec.classBuilder(className).addModifiers(Modifier.PUBLIC);
classBuilder.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "\"unchecked\"").build()); classBuilder.addAnnotation(AnnotationSpec.builder(SuppressWarnings.class).addMember("value", "\"unchecked\"").build());
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning); classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC); MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
TypeName jsonType = ClassName.bestGuess("io.anuke.arc.util.serialization.Json");
TypeName jsonValueType = ClassName.bestGuess("io.anuke.arc.util.serialization.JsonValue");
TypeName ubJsonWriterType = ClassName.bestGuess("io.anuke.arc.util.serialization.UBJsonWriter");
TypeName ubJsonReaderType = ClassName.bestGuess("io.anuke.arc.util.serialization.UBJsonReader");
classBuilder.addField(jsonType, "bjson", Modifier.STATIC, Modifier.PRIVATE);
classBuilder.addField(ubJsonReaderType, "bjsonReader", Modifier.STATIC, Modifier.PRIVATE);
classBuilder.addStaticBlock(CodeBlock.builder()
.addStatement("bjson = new " + jsonType + "()")
.addStatement("bjsonReader = new " + ubJsonReaderType + "()")
.build());
for(TypeElement elem : elements){ for(TypeElement elem : elements){
TypeName type = TypeName.get(elem.asType()); TypeName type = TypeName.get(elem.asType());
String simpleTypeName = type.toString().substring(type.toString().lastIndexOf('.') + 1); String simpleTypeName = type.toString().substring(type.toString().lastIndexOf('.') + 1);
@@ -79,19 +67,7 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
.addException(IOException.class) .addException(IOException.class)
.addModifiers(Modifier.PUBLIC); .addModifiers(Modifier.PUBLIC);
MethodSpec.Builder jsonWriteMethod = MethodSpec.methodBuilder("write" + simpleTypeName + "Json")
.returns(void.class)
.addParameter(jsonType, "json")
.addParameter(type, "object")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
MethodSpec.Builder jsonReadMethod = MethodSpec.methodBuilder("read" + simpleTypeName + "Json")
.returns(type)
.addParameter(jsonValueType, "value")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
readMethod.addStatement("$L object = new $L()", type, type); readMethod.addStatement("$L object = new $L()", type, type);
jsonReadMethod.addStatement("$L object = new $L()", type, type);
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem)); List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
for(VariableElement field : fields){ for(VariableElement field : fields){
@@ -105,9 +81,6 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
if(field.asType().getKind().isPrimitive()){ if(field.asType().getKind().isPrimitive()){
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")"); writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
readMethod.addStatement("object." + name + "= stream.read" + capName + "()"); readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
jsonWriteMethod.addStatement("json.writeValue(\"" + name + "\", object." + name + ")");
jsonReadMethod.addStatement("if(value.has(\"" + name + "\")) object." + name + "= value.get" + capName + "(\"" + name + "\")");
}else{ }else{
writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName + ".class).write(stream, object." + name + ")"); writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName + ".class).write(stream, object." + name + ")");
readMethod.addStatement("object." + name + " = (" + typeName + ")io.anuke.arc.Core.settings.getSerializer(" + typeName + ".class).read(stream)"); readMethod.addStatement("object." + name + " = (" + typeName + ")io.anuke.arc.Core.settings.getSerializer(" + typeName + ".class).read(stream)");
@@ -115,7 +88,6 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
} }
readMethod.addStatement("return object"); readMethod.addStatement("return object");
jsonReadMethod.addStatement("return object");
serializer.addMethod(writeMethod.build()); serializer.addMethod(writeMethod.build());
serializer.addMethod(readMethod.build()); serializer.addMethod(readMethod.build());
@@ -130,32 +102,6 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
classBuilder.addMethod(writeMethod.build()); classBuilder.addMethod(writeMethod.build());
classBuilder.addMethod(readMethod.build()); classBuilder.addMethod(readMethod.build());
classBuilder.addMethod(jsonWriteMethod.build());
classBuilder.addMethod(jsonReadMethod.build());
MethodSpec.Builder binaryJsonWriteMethod = MethodSpec.methodBuilder("write" + simpleTypeName + "StreamJson")
.returns(void.class)
.addParameter(DataOutput.class, "stream")
.addParameter(type, "object")
.addException(IOException.class)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addStatement("java.io.StringWriter output = new java.io.StringWriter()")
.addStatement("bjson.setWriter(output)")
.addStatement("bjson.writeObjectStart(" + type + ".class, " + type + ".class)")
.addStatement("write" + simpleTypeName + "Json(bjson, object)")
.addStatement("bjson.writeObjectEnd()")
.addStatement("stream.writeUTF(output.toString())");
MethodSpec.Builder binaryJsonReadMethod = MethodSpec.methodBuilder("read" + simpleTypeName + "StreamJson")
.returns(type)
.addParameter(DataInput.class, "stream")
.addException(IOException.class)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addStatement("return read" + simpleTypeName + "Json(bjson.fromJson(null, stream.readUTF()))");
classBuilder.addMethod(binaryJsonWriteMethod.build());
classBuilder.addMethod(binaryJsonReadMethod.build());
} }
classBuilder.addMethod(method.build()); classBuilder.addMethod(method.build());

View File

@@ -1,3 +1,4 @@
io.anuke.annotations.RemoteMethodAnnotationProcessor io.anuke.annotations.RemoteMethodAnnotationProcessor
io.anuke.annotations.SerializeAnnotationProcessor io.anuke.annotations.SerializeAnnotationProcessor
io.anuke.annotations.StructAnnotationProcessor io.anuke.annotations.StructAnnotationProcessor
io.anuke.annotations.CallSuperAnnotationProcessor

View File

@@ -15,8 +15,6 @@ buildscript{
} }
allprojects{ allprojects{
apply plugin: "idea"
version = 'release' version = 'release'
ext{ ext{
@@ -29,7 +27,7 @@ allprojects{
arcHash = null arcHash = null
debugged = { debugged = {
return new File(projectDir.parent, '../debug').exists() && !project.hasProperty("release") return new File(projectDir.parent, '../debug').exists() && !project.hasProperty("release") && project.hasProperty("args")
} }
localArc = { localArc = {
@@ -177,6 +175,31 @@ project(":core"){
} }
dependencies{ dependencies{
if(System.properties["user.name"] == "anuke"){
task cleanGen{
doFirst{
delete{
delete "../core/src/io/anuke/mindustry/gen/"
}
}
}
task copyGen{
doLast{
copy{
from("../core/build/generated/sources/annotationProcessor/java/main/io/anuke/mindustry/gen"){
include "**/*.java"
}
into "../core/src/io/anuke/mindustry/gen"
}
}
}
compileJava.dependsOn(cleanGen)
compileJava.finalizedBy(copyGen)
}
compile arcModule("arc-core") compile arcModule("arc-core")
compile arcModule("extensions:freetype") compile arcModule("extensions:freetype")
compile arcModule("extensions:arcnet") compile arcModule("extensions:arcnet")
@@ -227,6 +250,7 @@ project(":annotations"){
dependencies{ dependencies{
compile 'com.squareup:javapoet:1.11.0' compile 'com.squareup:javapoet:1.11.0'
compile files("${System.getProperty('java.home')}/../lib/tools.jar")
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1018 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 B

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 B

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 B

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

After

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 B

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 B

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 2.0 KiB

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