diff --git a/android/Images/TileSets/Default/AtollOverlay.png b/android/Images/TileSets/Default/AtollOverlay.png deleted file mode 100644 index c062e982bd..0000000000 Binary files a/android/Images/TileSets/Default/AtollOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/CityOverlay.png b/android/Images/TileSets/Default/CityOverlay.png deleted file mode 100644 index 8af843ff5a..0000000000 Binary files a/android/Images/TileSets/Default/CityOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/FalloutOverlay.png b/android/Images/TileSets/Default/FalloutOverlay.png deleted file mode 100644 index 91a19fa54b..0000000000 Binary files a/android/Images/TileSets/Default/FalloutOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/Flood plainsOverlay.png b/android/Images/TileSets/Default/Flood plainsOverlay.png deleted file mode 100644 index d77ce89099..0000000000 Binary files a/android/Images/TileSets/Default/Flood plainsOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/ForestOverlay.png b/android/Images/TileSets/Default/ForestOverlay.png deleted file mode 100644 index 8c2e11e8cf..0000000000 Binary files a/android/Images/TileSets/Default/ForestOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/HillOverlay.png b/android/Images/TileSets/Default/HillOverlay.png deleted file mode 100644 index 0139f972f9..0000000000 Binary files a/android/Images/TileSets/Default/HillOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/IceOverlay.png b/android/Images/TileSets/Default/IceOverlay.png deleted file mode 100644 index d17766aaa9..0000000000 Binary files a/android/Images/TileSets/Default/IceOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/JungleOverlay.png b/android/Images/TileSets/Default/JungleOverlay.png deleted file mode 100644 index 32943e13dd..0000000000 Binary files a/android/Images/TileSets/Default/JungleOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/LakesOverlay.png b/android/Images/TileSets/Default/LakesOverlay.png deleted file mode 100644 index e839d59a61..0000000000 Binary files a/android/Images/TileSets/Default/LakesOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/MarshOverlay.png b/android/Images/TileSets/Default/MarshOverlay.png deleted file mode 100644 index 776297e9ea..0000000000 Binary files a/android/Images/TileSets/Default/MarshOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/MountainOverlay.png b/android/Images/TileSets/Default/MountainOverlay.png deleted file mode 100644 index 41288f7abc..0000000000 Binary files a/android/Images/TileSets/Default/MountainOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/NaturalWonderOverlay.png b/android/Images/TileSets/Default/NaturalWonderOverlay.png deleted file mode 100644 index e13a110a60..0000000000 Binary files a/android/Images/TileSets/Default/NaturalWonderOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/OasisOverlay.png b/android/Images/TileSets/Default/OasisOverlay.png deleted file mode 100644 index 1ee6bd0a6b..0000000000 Binary files a/android/Images/TileSets/Default/OasisOverlay.png and /dev/null differ diff --git a/android/Images/TileSets/Default/Tiles/River-Bottom.png b/android/Images/TileSets/Default/Tiles/River-Bottom.png deleted file mode 100644 index bf6f6c7833..0000000000 Binary files a/android/Images/TileSets/Default/Tiles/River-Bottom.png and /dev/null differ diff --git a/android/Images/TileSets/Default/Tiles/River-BottomLeft.png b/android/Images/TileSets/Default/Tiles/River-BottomLeft.png deleted file mode 100644 index 95f39dcb20..0000000000 Binary files a/android/Images/TileSets/Default/Tiles/River-BottomLeft.png and /dev/null differ diff --git a/android/Images/TileSets/Default/Tiles/River-BottomRight.png b/android/Images/TileSets/Default/Tiles/River-BottomRight.png deleted file mode 100644 index 1a9382653e..0000000000 Binary files a/android/Images/TileSets/Default/Tiles/River-BottomRight.png and /dev/null differ diff --git a/android/Images/TileSets/Default/Arrows/CityHasAttacked.png b/android/Images/TileSets/Minimal/Arrows/CityHasAttacked.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/CityHasAttacked.png rename to android/Images/TileSets/Minimal/Arrows/CityHasAttacked.png diff --git a/android/Images/TileSets/Default/Arrows/Generic.png b/android/Images/TileSets/Minimal/Arrows/Generic.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/Generic.png rename to android/Images/TileSets/Minimal/Arrows/Generic.png diff --git a/android/Images/TileSets/Default/Arrows/UnitAttacked.png b/android/Images/TileSets/Minimal/Arrows/UnitAttacked.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/UnitAttacked.png rename to android/Images/TileSets/Minimal/Arrows/UnitAttacked.png diff --git a/android/Images/TileSets/Default/Arrows/UnitHasAttacked.png b/android/Images/TileSets/Minimal/Arrows/UnitHasAttacked.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/UnitHasAttacked.png rename to android/Images/TileSets/Minimal/Arrows/UnitHasAttacked.png diff --git a/android/Images/TileSets/Default/Arrows/UnitMoved.png b/android/Images/TileSets/Minimal/Arrows/UnitMoved.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/UnitMoved.png rename to android/Images/TileSets/Minimal/Arrows/UnitMoved.png diff --git a/android/Images/TileSets/Default/Arrows/UnitMoving.png b/android/Images/TileSets/Minimal/Arrows/UnitMoving.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/UnitMoving.png rename to android/Images/TileSets/Minimal/Arrows/UnitMoving.png diff --git a/android/Images/TileSets/Default/Arrows/UnitTeleported.png b/android/Images/TileSets/Minimal/Arrows/UnitTeleported.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/UnitTeleported.png rename to android/Images/TileSets/Minimal/Arrows/UnitTeleported.png diff --git a/android/Images/TileSets/Default/Arrows/UnitWithdrew.png b/android/Images/TileSets/Minimal/Arrows/UnitWithdrew.png similarity index 100% rename from android/Images/TileSets/Default/Arrows/UnitWithdrew.png rename to android/Images/TileSets/Minimal/Arrows/UnitWithdrew.png diff --git a/android/Images/TileSets/Default/Borders/ConcaveConvexInner.png b/android/Images/TileSets/Minimal/Borders/ConcaveConvexInner.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConcaveConvexInner.png rename to android/Images/TileSets/Minimal/Borders/ConcaveConvexInner.png diff --git a/android/Images/TileSets/Default/Borders/ConcaveConvexOuter.png b/android/Images/TileSets/Minimal/Borders/ConcaveConvexOuter.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConcaveConvexOuter.png rename to android/Images/TileSets/Minimal/Borders/ConcaveConvexOuter.png diff --git a/android/Images/TileSets/Default/Borders/ConcaveInner.png b/android/Images/TileSets/Minimal/Borders/ConcaveInner.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConcaveInner.png rename to android/Images/TileSets/Minimal/Borders/ConcaveInner.png diff --git a/android/Images/TileSets/Default/Borders/ConcaveOuter.png b/android/Images/TileSets/Minimal/Borders/ConcaveOuter.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConcaveOuter.png rename to android/Images/TileSets/Minimal/Borders/ConcaveOuter.png diff --git a/android/Images/TileSets/Default/Borders/ConvexConcaveInner.png b/android/Images/TileSets/Minimal/Borders/ConvexConcaveInner.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConvexConcaveInner.png rename to android/Images/TileSets/Minimal/Borders/ConvexConcaveInner.png diff --git a/android/Images/TileSets/Default/Borders/ConvexConcaveOuter.png b/android/Images/TileSets/Minimal/Borders/ConvexConcaveOuter.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConvexConcaveOuter.png rename to android/Images/TileSets/Minimal/Borders/ConvexConcaveOuter.png diff --git a/android/Images/TileSets/Default/Borders/ConvexInner.png b/android/Images/TileSets/Minimal/Borders/ConvexInner.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConvexInner.png rename to android/Images/TileSets/Minimal/Borders/ConvexInner.png diff --git a/android/Images/TileSets/Default/Borders/ConvexOuter.png b/android/Images/TileSets/Minimal/Borders/ConvexOuter.png similarity index 100% rename from android/Images/TileSets/Default/Borders/ConvexOuter.png rename to android/Images/TileSets/Minimal/Borders/ConvexOuter.png diff --git a/android/Images/TileSets/Default/Crosshair.png b/android/Images/TileSets/Minimal/Crosshair.png similarity index 100% rename from android/Images/TileSets/Default/Crosshair.png rename to android/Images/TileSets/Minimal/Crosshair.png diff --git a/android/Images/TileSets/Default/CrosshatchHexagon.png b/android/Images/TileSets/Minimal/CrosshatchHexagon.png similarity index 100% rename from android/Images/TileSets/Default/CrosshatchHexagon.png rename to android/Images/TileSets/Minimal/CrosshatchHexagon.png diff --git a/android/Images/TileSets/Default/Hexagon.png b/android/Images/TileSets/Minimal/Hexagon.png similarity index 100% rename from android/Images/TileSets/Default/Hexagon.png rename to android/Images/TileSets/Minimal/Hexagon.png diff --git a/android/Images/TileSets/Default/Highlight.png b/android/Images/TileSets/Minimal/Highlight.png similarity index 100% rename from android/Images/TileSets/Default/Highlight.png rename to android/Images/TileSets/Minimal/Highlight.png diff --git a/android/Images/TileSets/Default/Railroad.png b/android/Images/TileSets/Minimal/Railroad.png similarity index 100% rename from android/Images/TileSets/Default/Railroad.png rename to android/Images/TileSets/Minimal/Railroad.png diff --git a/android/Images/TileSets/Default/Road.png b/android/Images/TileSets/Minimal/Road.png similarity index 100% rename from android/Images/TileSets/Default/Road.png rename to android/Images/TileSets/Minimal/Road.png diff --git a/android/Images/TileSets/Minimal/Tiles/Atoll.png b/android/Images/TileSets/Minimal/Tiles/Atoll.png new file mode 100644 index 0000000000..d43f463a5c Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Atoll.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/City center.png b/android/Images/TileSets/Minimal/Tiles/City center.png new file mode 100644 index 0000000000..8a7ae83ca8 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/City center.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Fallout.png b/android/Images/TileSets/Minimal/Tiles/Fallout.png new file mode 100644 index 0000000000..869d9ca488 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Fallout.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Flood plains.png b/android/Images/TileSets/Minimal/Tiles/Flood plains.png new file mode 100644 index 0000000000..af14eea760 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Flood plains.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Forest.png b/android/Images/TileSets/Minimal/Tiles/Forest.png new file mode 100644 index 0000000000..766d0c1edf Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Forest.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Hill.png b/android/Images/TileSets/Minimal/Tiles/Hill.png new file mode 100644 index 0000000000..88e8f1234a Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Hill.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Ice.png b/android/Images/TileSets/Minimal/Tiles/Ice.png new file mode 100644 index 0000000000..619e12da6a Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Ice.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Jungle.png b/android/Images/TileSets/Minimal/Tiles/Jungle.png new file mode 100644 index 0000000000..9a9f06b261 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Jungle.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Lakes.png b/android/Images/TileSets/Minimal/Tiles/Lakes.png new file mode 100644 index 0000000000..e1a2d3d81f Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Lakes.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Marsh.png b/android/Images/TileSets/Minimal/Tiles/Marsh.png new file mode 100644 index 0000000000..6a8eae34cd Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Marsh.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Mountain.png b/android/Images/TileSets/Minimal/Tiles/Mountain.png new file mode 100644 index 0000000000..380b398da3 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Mountain.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/NaturalWonder.png b/android/Images/TileSets/Minimal/Tiles/NaturalWonder.png new file mode 100644 index 0000000000..c8288556f5 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/NaturalWonder.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/Oasis.png b/android/Images/TileSets/Minimal/Tiles/Oasis.png new file mode 100644 index 0000000000..cd51d15ea2 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/Oasis.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/River-Bottom.png b/android/Images/TileSets/Minimal/Tiles/River-Bottom.png new file mode 100644 index 0000000000..7d822d6671 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/River-Bottom.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/River-BottomLeft.png b/android/Images/TileSets/Minimal/Tiles/River-BottomLeft.png new file mode 100644 index 0000000000..563868f588 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/River-BottomLeft.png differ diff --git a/android/Images/TileSets/Minimal/Tiles/River-BottomRight.png b/android/Images/TileSets/Minimal/Tiles/River-BottomRight.png new file mode 100644 index 0000000000..ac4e0d14e1 Binary files /dev/null and b/android/Images/TileSets/Minimal/Tiles/River-BottomRight.png differ diff --git a/android/assets/game.atlas b/android/assets/game.atlas index eafdc1cb9d..d9b8e5fc63 100644 --- a/android/assets/game.atlas +++ b/android/assets/game.atlas @@ -104,7 +104,7 @@ ImprovementIcons/City center index: -1 ImprovementIcons/City ruins rotate: false - xy: 4, 182 + xy: 1470, 1944 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -228,7 +228,7 @@ ImprovementIcons/Railroad orig: 100, 100 offset: 0, 0 index: -1 -TileSets/Default/Railroad +TileSets/Minimal/Railroad rotate: false xy: 1149, 1404 size: 100, 100 @@ -396,14 +396,14 @@ OtherIcons/Hexagon orig: 277, 240 offset: 0, 0 index: -1 -TileSets/Default/Hexagon +TileSets/FantasyHex/Hexagon rotate: false xy: 4, 1584 size: 277, 240 orig: 277, 240 offset: 0, 0 index: -1 -TileSets/FantasyHex/Hexagon +TileSets/Minimal/Hexagon rotate: false xy: 4, 1584 size: 277, 240 @@ -986,7 +986,7 @@ StatIcons/Acquire index: -1 StatIcons/CityConnection rotate: false - xy: 1470, 1944 + xy: 4, 74 size: 100, 100 orig: 100, 100 offset: 0, 0 @@ -1103,34 +1103,6 @@ StatIcons/Strength orig: 50, 50 offset: 0, 0 index: -1 -TileSets/Default/Arrows/CityHasAttacked - rotate: false - xy: 482, 1876 - size: 100, 60 - orig: 100, 60 - offset: 0, 0 - index: -1 -TileSets/Default/Arrows/UnitHasAttacked - rotate: false - xy: 482, 1876 - size: 100, 60 - orig: 100, 60 - offset: 0, 0 - index: -1 -TileSets/FantasyHex/Arrows/UnitHasAttacked - rotate: false - xy: 482, 1876 - size: 100, 60 - orig: 100, 60 - offset: 0, 0 - index: -1 -TileSets/Default/Arrows/Generic - rotate: false - xy: 4, 6 - size: 100, 60 - orig: 100, 60 - offset: 0, 0 - index: -1 TileSets/FantasyHex/Arrows/Generic rotate: false xy: 4, 6 @@ -1138,9 +1110,9 @@ TileSets/FantasyHex/Arrows/Generic orig: 100, 60 offset: 0, 0 index: -1 -TileSets/Default/Arrows/UnitAttacked +TileSets/Minimal/Arrows/Generic rotate: false - xy: 190, 1164 + xy: 4, 6 size: 100, 60 orig: 100, 60 offset: 0, 0 @@ -1152,9 +1124,9 @@ TileSets/FantasyHex/Arrows/UnitAttacked orig: 100, 60 offset: 0, 0 index: -1 -TileSets/Default/Arrows/UnitMoved +TileSets/Minimal/Arrows/UnitAttacked rotate: false - xy: 298, 1150 + xy: 190, 1164 size: 100, 60 orig: 100, 60 offset: 0, 0 @@ -1166,9 +1138,9 @@ TileSets/FantasyHex/Arrows/UnitMoved orig: 100, 60 offset: 0, 0 index: -1 -TileSets/Default/Arrows/UnitMoving +TileSets/Minimal/Arrows/UnitMoved rotate: false - xy: 112, 6 + xy: 298, 1150 size: 100, 60 orig: 100, 60 offset: 0, 0 @@ -1180,9 +1152,9 @@ TileSets/FantasyHex/Arrows/UnitMoving orig: 100, 60 offset: 0, 0 index: -1 -TileSets/Default/Arrows/UnitTeleported +TileSets/Minimal/Arrows/UnitMoving rotate: false - xy: 1270, 1228 + xy: 112, 6 size: 100, 60 orig: 100, 60 offset: 0, 0 @@ -1194,9 +1166,9 @@ TileSets/FantasyHex/Arrows/UnitTeleported orig: 100, 60 offset: 0, 0 index: -1 -TileSets/Default/Arrows/UnitWithdrew +TileSets/Minimal/Arrows/UnitTeleported rotate: false - xy: 1378, 1228 + xy: 1270, 1228 size: 100, 60 orig: 100, 60 offset: 0, 0 @@ -1208,18 +1180,11 @@ TileSets/FantasyHex/Arrows/UnitWithdrew orig: 100, 60 offset: 0, 0 index: -1 -TileSets/Default/AtollOverlay +TileSets/Minimal/Arrows/UnitWithdrew rotate: false - xy: 822, 1944 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Borders/ConcaveConvexInner - rotate: false - xy: 406, 1411 - size: 81, 15 - orig: 81, 15 + xy: 1378, 1228 + size: 100, 60 + orig: 100, 60 offset: 0, 0 index: -1 TileSets/FantasyHex/Borders/ConcaveConvexInner @@ -1229,9 +1194,9 @@ TileSets/FantasyHex/Borders/ConcaveConvexInner orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConcaveConvexOuter +TileSets/Minimal/Borders/ConcaveConvexInner rotate: false - xy: 406, 1165 + xy: 406, 1411 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1243,9 +1208,9 @@ TileSets/FantasyHex/Borders/ConcaveConvexOuter orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConcaveInner +TileSets/Minimal/Borders/ConcaveConvexOuter rotate: false - xy: 1378, 1205 + xy: 406, 1165 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1257,9 +1222,9 @@ TileSets/FantasyHex/Borders/ConcaveInner orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConcaveOuter +TileSets/Minimal/Borders/ConcaveInner rotate: false - xy: 495, 1165 + xy: 1378, 1205 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1271,9 +1236,9 @@ TileSets/FantasyHex/Borders/ConcaveOuter orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConvexConcaveInner +TileSets/Minimal/Borders/ConcaveOuter rotate: false - xy: 1378, 1182 + xy: 495, 1165 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1285,9 +1250,9 @@ TileSets/FantasyHex/Borders/ConvexConcaveInner orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConvexConcaveOuter +TileSets/Minimal/Borders/ConvexConcaveInner rotate: false - xy: 584, 1165 + xy: 1378, 1182 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1299,9 +1264,9 @@ TileSets/FantasyHex/Borders/ConvexConcaveOuter orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConvexInner +TileSets/Minimal/Borders/ConvexConcaveOuter rotate: false - xy: 1378, 1159 + xy: 584, 1165 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1313,9 +1278,9 @@ TileSets/FantasyHex/Borders/ConvexInner orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/Borders/ConvexOuter +TileSets/Minimal/Borders/ConvexInner rotate: false - xy: 673, 1165 + xy: 1378, 1159 size: 81, 15 orig: 81, 15 offset: 0, 0 @@ -1327,18 +1292,11 @@ TileSets/FantasyHex/Borders/ConvexOuter orig: 81, 15 offset: 0, 0 index: -1 -TileSets/Default/CityOverlay +TileSets/Minimal/Borders/ConvexOuter rotate: false - xy: 4, 74 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Crosshair - rotate: false - xy: 482, 1944 - size: 116, 100 - orig: 116, 100 + xy: 673, 1165 + size: 81, 15 + orig: 81, 15 offset: 0, 0 index: -1 TileSets/FantasyHex/Crosshair @@ -1348,11 +1306,11 @@ TileSets/FantasyHex/Crosshair orig: 116, 100 offset: 0, 0 index: -1 -TileSets/Default/CrosshatchHexagon +TileSets/Minimal/Crosshair rotate: false - xy: 4, 1340 - size: 273, 236 - orig: 273, 236 + xy: 482, 1944 + size: 116, 100 + orig: 116, 100 offset: 0, 0 index: -1 TileSets/FantasyHex/CrosshatchHexagon @@ -1362,32 +1320,11 @@ TileSets/FantasyHex/CrosshatchHexagon orig: 273, 236 offset: 0, 0 index: -1 -TileSets/Default/FalloutOverlay +TileSets/Minimal/CrosshatchHexagon rotate: false - xy: 698, 1836 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Flood plainsOverlay - rotate: false - xy: 1238, 1836 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/ForestOverlay - rotate: false - xy: 1454, 1836 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Highlight - rotate: false - xy: 4, 1832 - size: 284, 212 - orig: 284, 212 + xy: 4, 1340 + size: 273, 236 + orig: 273, 236 offset: 0, 0 index: -1 TileSets/FantasyHex/Highlight @@ -1397,88 +1334,11 @@ TileSets/FantasyHex/Highlight orig: 284, 212 offset: 0, 0 index: -1 -TileSets/Default/HillOverlay +TileSets/Minimal/Highlight rotate: false - xy: 698, 1728 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/IceOverlay - rotate: false - xy: 1022, 1728 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/JungleOverlay - rotate: false - xy: 1562, 1728 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/LakesOverlay - rotate: false - xy: 1670, 1728 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/MarshOverlay - rotate: false - xy: 613, 1620 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/MountainOverlay - rotate: false - xy: 1369, 1620 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/NaturalWonderOverlay - rotate: false - xy: 1585, 1620 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/OasisOverlay - rotate: false - xy: 1909, 1620 - size: 100, 100 - orig: 100, 100 - offset: 0, 0 - index: -1 -TileSets/Default/Road - rotate: false - xy: 404, 1775 - size: 61, 11 - orig: 61, 11 - offset: 0, 0 - index: -1 -TileSets/Default/Tiles/River-Bottom - rotate: false - xy: 1550, 1008 - size: 32, 28 - orig: 32, 28 - offset: 0, 0 - index: -1 -TileSets/Default/Tiles/River-BottomLeft - rotate: false - xy: 1550, 972 - size: 32, 28 - orig: 32, 28 - offset: 0, 0 - index: -1 -TileSets/Default/Tiles/River-BottomRight - rotate: false - xy: 1590, 972 - size: 32, 28 - orig: 32, 28 + xy: 4, 1832 + size: 284, 212 + orig: 284, 212 offset: 0, 0 index: -1 TileSets/FantasyHex/Railroad @@ -2358,21 +2218,21 @@ TileSets/FantasyHex/Tiles/Quarry+Stone index: -1 TileSets/FantasyHex/Tiles/River-Bottom rotate: false - xy: 1590, 1008 + xy: 1550, 1008 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomLeft rotate: false - xy: 1550, 936 + xy: 1550, 972 size: 32, 28 orig: 32, 28 offset: 0, 0 index: -1 TileSets/FantasyHex/Tiles/River-BottomRight rotate: false - xy: 1550, 900 + xy: 1590, 972 size: 32, 28 orig: 32, 28 offset: 0, 0 @@ -5513,3 +5373,143 @@ TileSets/HexaRealm/Tiles/Wine+Plantation orig: 64, 56 offset: 0, 0 index: -1 +TileSets/Minimal/Arrows/CityHasAttacked + rotate: false + xy: 482, 1876 + size: 100, 60 + orig: 100, 60 + offset: 0, 0 + index: -1 +TileSets/FantasyHex/Arrows/UnitHasAttacked + rotate: false + xy: 482, 1876 + size: 100, 60 + orig: 100, 60 + offset: 0, 0 + index: -1 +TileSets/Minimal/Arrows/UnitHasAttacked + rotate: false + xy: 482, 1876 + size: 100, 60 + orig: 100, 60 + offset: 0, 0 + index: -1 +TileSets/Minimal/Road + rotate: false + xy: 404, 1775 + size: 61, 11 + orig: 61, 11 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Atoll + rotate: false + xy: 822, 1944 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/City center + rotate: false + xy: 4, 182 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Fallout + rotate: false + xy: 698, 1836 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Flood plains + rotate: false + xy: 1238, 1836 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Forest + rotate: false + xy: 1454, 1836 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Hill + rotate: false + xy: 698, 1728 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Ice + rotate: false + xy: 1022, 1728 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Jungle + rotate: false + xy: 1562, 1728 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Lakes + rotate: false + xy: 1670, 1728 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Marsh + rotate: false + xy: 613, 1620 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Mountain + rotate: false + xy: 1369, 1620 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/NaturalWonder + rotate: false + xy: 1585, 1620 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/Oasis + rotate: false + xy: 1909, 1620 + size: 100, 100 + orig: 100, 100 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/River-Bottom + rotate: false + xy: 1590, 1008 + size: 32, 28 + orig: 32, 28 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/River-BottomLeft + rotate: false + xy: 1550, 936 + size: 32, 28 + orig: 32, 28 + offset: 0, 0 + index: -1 +TileSets/Minimal/Tiles/River-BottomRight + rotate: false + xy: 1550, 900 + size: 32, 28 + orig: 32, 28 + offset: 0, 0 + index: -1 diff --git a/android/assets/game.png b/android/assets/game.png index 28d447fd18..5a014ddfb6 100644 Binary files a/android/assets/game.png and b/android/assets/game.png differ diff --git a/android/assets/jsons/TileSets/Default.json b/android/assets/jsons/TileSets/Default.json deleted file mode 100644 index 1b5e5e4f41..0000000000 --- a/android/assets/jsons/TileSets/Default.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "fallbackTileSet": null, -} diff --git a/android/assets/jsons/TileSets/Minimal.json b/android/assets/jsons/TileSets/Minimal.json new file mode 100644 index 0000000000..2c7b6f92b9 --- /dev/null +++ b/android/assets/jsons/TileSets/Minimal.json @@ -0,0 +1,20 @@ +{ + "useColorAsBaseTerrain": "true", + "useSummaryImages": "true", + "fallbackTileSet": null, + "tileScales": { + "Atoll":0.35, + "City center":0.7, + "Faulout":0.35, + "Flood plains":0.35, + "Forest":0.35, + "Hill":0.35, + "Ice":0.35, + "Jungle":0.35, + "Lakes":0.35, + "Marsh":0.35, + "Mountain":0.5, + "NaturalWonder":0.5, + "Oasis":0.35 + } +} diff --git a/core/src/com/unciv/Constants.kt b/core/src/com/unciv/Constants.kt index 3513ee6311..96e64b4971 100644 --- a/core/src/com/unciv/Constants.kt +++ b/core/src/com/unciv/Constants.kt @@ -79,6 +79,8 @@ object Constants { const val dropboxMultiplayerServer = "Dropbox" + const val defaultTileset = "HexaRealm" + /** * Use this to determine whether a [MapUnit][com.unciv.logic.map.MapUnit]'s movement is exhausted * (currentMovement <= this) if and only if a fuzzy comparison is needed to account for Float rounding errors. diff --git a/core/src/com/unciv/UncivGame.kt b/core/src/com/unciv/UncivGame.kt index c9d101c668..5b49ff75d9 100644 --- a/core/src/com/unciv/UncivGame.kt +++ b/core/src/com/unciv/UncivGame.kt @@ -126,7 +126,7 @@ class UncivGame(parameters: UncivGameParameters) : Game() { ImageGetter.resetAtlases() ImageGetter.setNewRuleset(ImageGetter.ruleset) // This needs to come after the settings, since we may have default visual mods if (settings.tileSet !in ImageGetter.getAvailableTilesets()) { // If one of the tilesets is no longer available, default back - settings.tileSet = "FantasyHex" + settings.tileSet = Constants.defaultTileset } BaseScreen.setSkin() // needs to come AFTER the Texture reset, since the buttons depend on it diff --git a/core/src/com/unciv/models/metadata/GameSettings.kt b/core/src/com/unciv/models/metadata/GameSettings.kt index 66148d4c29..827f35cd27 100644 --- a/core/src/com/unciv/models/metadata/GameSettings.kt +++ b/core/src/com/unciv/models/metadata/GameSettings.kt @@ -37,7 +37,7 @@ class GameSettings { var pauseBetweenTracks = 10 var turnsBetweenAutosaves = 1 - var tileSet: String = "HexaRealm" + var tileSet: String = Constants.defaultTileset var showTutorials: Boolean = true var autoAssignCityProduction: Boolean = true var autoBuildingRoads: Boolean = true diff --git a/core/src/com/unciv/models/tilesets/TileSetConfig.kt b/core/src/com/unciv/models/tilesets/TileSetConfig.kt index bb74af726a..25457a4b13 100644 --- a/core/src/com/unciv/models/tilesets/TileSetConfig.kt +++ b/core/src/com/unciv/models/tilesets/TileSetConfig.kt @@ -3,31 +3,39 @@ package com.unciv.models.tilesets import com.badlogic.gdx.graphics.Color class TileSetConfig { - var useColorAsBaseTerrain = true + var useColorAsBaseTerrain = false + var useSummaryImages = false var unexploredTileColor: Color = Color.DARK_GRAY var fogOfWarColor: Color = Color.BLACK /** Name of the tileset to use when this one is missing images. Null to disable. */ var fallbackTileSet: String? = "FantasyHex" /** Scale factor for hex images, with hex center as origin. */ var tileScale: Float = 1f + var tileScales: HashMap = HashMap() var ruleVariants: HashMap> = HashMap() fun clone(): TileSetConfig { val toReturn = TileSetConfig() toReturn.useColorAsBaseTerrain = useColorAsBaseTerrain + toReturn.useSummaryImages = useSummaryImages toReturn.unexploredTileColor = unexploredTileColor toReturn.fogOfWarColor = fogOfWarColor toReturn.fallbackTileSet = fallbackTileSet toReturn.tileScale = tileScale + toReturn.tileScales = tileScales toReturn.ruleVariants.putAll(ruleVariants.map { Pair(it.key, it.value.clone()) }) return toReturn } fun updateConfig(other: TileSetConfig) { useColorAsBaseTerrain = other.useColorAsBaseTerrain + useSummaryImages = other.useSummaryImages unexploredTileColor = other.unexploredTileColor fogOfWarColor = other.fogOfWarColor fallbackTileSet = other.fallbackTileSet + for ((tileString, scale) in other.tileScales){ + tileScales[tileString] = scale + } for ((tileSetString, renderOrder) in other.ruleVariants){ ruleVariants[tileSetString] = renderOrder } diff --git a/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt b/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt index 4afa5de7a1..dab6ee6348 100644 --- a/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt +++ b/core/src/com/unciv/ui/cityscreen/CityTileGroup.kt @@ -73,7 +73,6 @@ class CityTileGroup(private val city: CityInfo, tileInfo: TileInfo, tileSetStrin terrainFeatureLayerGroup.color.a = 0.5f icons.improvementIcon?.setColor(1f, 1f, 1f, 0.5f) resourceImage?.setColor(1f, 1f, 1f, 0.5f) - cityImage?.setColor(1f, 1f, 1f, 0.5f) icons.civilianUnitIcon?.setColor(1f, 1f, 1f, 0.5f) icons.militaryUnitIcon?.setColor(1f, 1f, 1f, 0.5f) updatePopulationIcon() diff --git a/core/src/com/unciv/ui/tilegroups/TileGroup.kt b/core/src/com/unciv/ui/tilegroups/TileGroup.kt index da7014c38c..94302ad60d 100644 --- a/core/src/com/unciv/ui/tilegroups/TileGroup.kt +++ b/core/src/com/unciv/ui/tilegroups/TileGroup.kt @@ -19,7 +19,6 @@ import com.unciv.models.helpers.TintedMapArrow import com.unciv.models.helpers.UnitMovementMemoryType import com.unciv.ui.cityscreen.YieldGroup import com.unciv.ui.images.ImageGetter -import com.unciv.ui.utils.extensions.center import kotlin.math.PI import kotlin.math.atan import kotlin.math.atan2 @@ -62,19 +61,9 @@ open class TileGroup( /** List of image locations comprising the layers so we don't need to change images all the time */ private var tileImageIdentifiers = listOf() - // This is for OLD tiles - the "mountain" symbol on mountains for instance - private var baseTerrainOverlayImage: Image? = null - private var baseTerrain: String = "" - class TerrainFeatureLayerGroupClass(groupSize: Float) : ActionlessGroup(groupSize) val terrainFeatureLayerGroup = TerrainFeatureLayerGroupClass(groupSize) - // These are for OLD tiles - for instance the "forest" symbol on the forest - private var terrainFeatureOverlayImage: Image? = null - private val terrainFeatures: ArrayList = ArrayList() - protected var cityImage: Image? = null - private var naturalWonderImage: Image? = null - private var pixelMilitaryUnitImageLocation = "" var pixelMilitaryUnitGroup = ActionlessGroup(groupSize) private var pixelCivilianUnitImageLocation = "" @@ -241,7 +230,14 @@ open class TileGroup( private fun getTileBaseImageLocations(viewingCiv: CivilizationInfo?): List { if (viewingCiv == null && !showEntireMap) return tileSetStrings.hexagonList - if (tileInfo.naturalWonder != null) return listOf(tileSetStrings.orFallback { getTile(tileInfo.naturalWonder!!) }) + + val baseHexagon = if (tileSetStrings.tileSetConfig.useColorAsBaseTerrain) + listOf(tileSetStrings.hexagon) + else listOf() + + if (tileInfo.naturalWonder != null) + return if (tileSetStrings.tileSetConfig.useSummaryImages) baseHexagon + tileSetStrings.naturalWonder + else baseHexagon + tileSetStrings.orFallback{ getTile(tileInfo.naturalWonder!!) } val shownImprovement = tileInfo.getShownImprovement(viewingCiv) val shouldShowImprovement = shownImprovement != null && UncivGame.Current.settings.showPixelImprovements @@ -259,9 +255,9 @@ open class TileGroup( val allTogetherLocation = tileSetStrings.getTile(allTogether) return when { - tileSetStrings.tileSetConfig.ruleVariants[allTogether] != null -> tileSetStrings.tileSetConfig.ruleVariants[allTogether]!!.map { tileSetStrings.getTile(it) } - ImageGetter.imageExists(allTogetherLocation) -> listOf(allTogetherLocation) - else -> getTerrainImageLocations(terrainImages) + getImprovementAndResourceImages(resourceAndImprovementSequence) + tileSetStrings.tileSetConfig.ruleVariants[allTogether] != null -> baseHexagon + tileSetStrings.tileSetConfig.ruleVariants[allTogether]!!.map { tileSetStrings.getTile(it) } + ImageGetter.imageExists(allTogetherLocation) -> baseHexagon + allTogetherLocation + else -> baseHexagon + getTerrainImageLocations(terrainImages) + getImprovementAndResourceImages(resourceAndImprovementSequence) } } @@ -280,14 +276,18 @@ open class TileGroup( else resourceAndImprovementSequence.map { tileSetStrings.orFallback { getTile(it) } }.toList() } - /** Used for: Underlying tile, unit overlays, border images, perhaps for other things in the future. - Parent should already be set when calling. */ - private fun setHexagonImageSize(hexagonImage: Image) { + /** + * Used for: Underlying tile, unit overlays, border images, perhaps for other things in the future. + * Parent should already be set when calling. + * + * Uses tileSetStrings.tileSetConfig.tileScale as default if scale is null + */ + private fun setHexagonImageSize(hexagonImage: Image, scale: Float? = null) { hexagonImage.setSize(hexagonImageWidth, hexagonImage.height * hexagonImageWidth / hexagonImage.width) hexagonImage.setOrigin(hexagonImageOrigin.first, hexagonImageOrigin.second) hexagonImage.x = hexagonImagePosition.first hexagonImage.y = hexagonImagePosition.second - hexagonImage.setScale(tileSetStrings.tileSetConfig.tileScale) + hexagonImage.setScale(scale ?: tileSetStrings.tileSetConfig.tileScale) } private fun updateTileImage(viewingCiv: CivilizationInfo?) { @@ -299,9 +299,9 @@ open class TileGroup( } tileImageIdentifiers = tileBaseImageLocations - for (image in tileBaseImages.asReversed()) image.remove() + for (image in tileBaseImages) image.remove() tileBaseImages.clear() - for (baseLocation in tileBaseImageLocations.asReversed()) { // reversed because we send each one to back + for (baseLocation in tileBaseImageLocations) { // Here we check what actual tiles exist, and pick one - not at random, but based on the tile location, // so it stays consistent throughout the game if (!ImageGetter.imageExists(baseLocation)) continue @@ -321,18 +321,17 @@ open class TileGroup( i += 1 } val finalLocation = existingImages.random(Random(tileInfo.position.hashCode() + locationToCheck.hashCode())) - val image = ImageGetter.getImage(finalLocation) - tileBaseImages.add(image) - baseLayerGroup.addActorAt(0,image) - setHexagonImageSize(image) - } - if (tileBaseImages.isEmpty()) { // Absolutely nothing! This is for the 'default' tileset - val image = ImageGetter.getImage(tileSetStrings.hexagon) tileBaseImages.add(image) baseLayerGroup.addActor(image) - setHexagonImageSize(image) + + if (tileSetStrings.tileSetConfig.tileScales.isNotEmpty()) { + val scale = tileSetStrings.tileSetConfig.tileScales[baseLocation.takeLastWhile { it != '/' }] + setHexagonImageSize(image, scale) + } else { + setHexagonImageSize(image) + } } } @@ -379,16 +378,12 @@ open class TileGroup( updateTileImage(viewingCiv) updateRivers(tileInfo.hasBottomRightRiver, tileInfo.hasBottomRiver, tileInfo.hasBottomLeftRiver) - updateTerrainBaseImage() - updateTerrainFeatureImage() updatePixelMilitaryUnit(tileIsViewable && showMilitaryUnit) updatePixelCivilianUnit(tileIsViewable) icons.update(showResourcesAndImprovements,showTileYields, tileIsViewable, showMilitaryUnit,viewingCiv) - updateCityImage() - updateNaturalWonderImage() updateTileColor(tileIsViewable) updateRoadImages() @@ -404,72 +399,6 @@ open class TileGroup( if (!tileInfo.ruleset.nations.containsKey(unit.owner)) unit.removeFromTile() } - private fun updateTerrainBaseImage() { - if (tileInfo.baseTerrain == baseTerrain) return - baseTerrain = tileInfo.baseTerrain - - if (baseTerrainOverlayImage != null) { - baseTerrainOverlayImage!!.remove() - baseTerrainOverlayImage = null - } - - val imagePath = tileSetStrings.orFallback { getBaseTerrainOverlay(baseTerrain) } - if (!ImageGetter.imageExists(imagePath)) return - baseTerrainOverlayImage = ImageGetter.getImage(imagePath) - baseTerrainOverlayImage!!.run { - color.a = 0.25f - setSize(40f, 40f) - center(this@TileGroup) - } - baseLayerGroup.addActor(baseTerrainOverlayImage) - } - - private fun updateCityImage() { - if (cityImage == null && tileInfo.isCityCenter()) { - val cityOverlayLocation = tileSetStrings.cityOverlay - if (!ImageGetter.imageExists(cityOverlayLocation)) // have a city tile, don't need an overlay - return - - cityImage = ImageGetter.getImage(cityOverlayLocation) - terrainFeatureLayerGroup.addActor(cityImage) - cityImage!!.run { - setSize(60f, 60f) - center(this@TileGroup) - } - } - if (cityImage != null && !tileInfo.isCityCenter()) { - cityImage!!.remove() - cityImage = null - } - } - - private fun updateNaturalWonderImage() { - if (naturalWonderImage == null && tileInfo.isNaturalWonder()) { - val naturalWonderOverlay = tileSetStrings.naturalWonderOverlay - if (!ImageGetter.imageExists(naturalWonderOverlay)) // Assume no natural wonder overlay = dedicated tile image - return - - if (baseTerrainOverlayImage != null) { - baseTerrainOverlayImage!!.remove() - baseTerrainOverlayImage = null - } - - naturalWonderImage = ImageGetter.getImage(naturalWonderOverlay) - terrainFeatureLayerGroup.addActor(naturalWonderImage) - naturalWonderImage!!.run { - color.a = 0.25f - setSize(40f, 40f) - center(this@TileGroup) - } - } - - // Is this possible? - if (naturalWonderImage != null && !tileInfo.isNaturalWonder()) { - naturalWonderImage!!.remove() - naturalWonderImage = null - } - } - private fun clearBorders() { for (borderSegment in borderSegments.values) for (image in borderSegment.images) @@ -649,35 +578,20 @@ open class TileGroup( } private fun updateTileColor(isViewable: Boolean) { - var color = - if (tileSetStrings.tileSetConfig.useColorAsBaseTerrain) - tileInfo.getBaseTerrain().getColor() - else Color.WHITE.cpy() // no need to color it, it's already colored - - if (!isViewable) color = color.lerp(tileSetStrings.tileSetConfig.fogOfWarColor, 0.6f) - for(image in tileBaseImages) image.color = color - } - - private fun updateTerrainFeatureImage() { - if (tileInfo.terrainFeatures != terrainFeatures) { - terrainFeatures.clear() - terrainFeatures.addAll(tileInfo.terrainFeatures) - if (terrainFeatureOverlayImage != null) terrainFeatureOverlayImage!!.remove() - terrainFeatureOverlayImage = null - - for (terrainFeature in terrainFeatures) { - val terrainFeatureOverlayLocation = tileSetStrings.orFallback { getTerrainFeatureOverlay(terrainFeature) } - if (!ImageGetter.imageExists(terrainFeatureOverlayLocation)) return - terrainFeatureOverlayImage = ImageGetter.getImage(terrainFeatureOverlayLocation) - terrainFeatureLayerGroup.addActor(terrainFeatureOverlayImage) - terrainFeatureOverlayImage!!.run { - setSize(30f, 30f) - setColor(1f, 1f, 1f, 0.5f) - center(this@TileGroup) - } - } + val baseTerrainColor = when { + tileSetStrings.tileSetConfig.useColorAsBaseTerrain && !isViewable -> tileInfo.getBaseTerrain().getColor().lerp(tileSetStrings.tileSetConfig.fogOfWarColor, 0.6f) + tileSetStrings.tileSetConfig.useColorAsBaseTerrain -> tileInfo.getBaseTerrain().getColor() + !isViewable -> Color.WHITE.cpy().lerp(tileSetStrings.tileSetConfig.fogOfWarColor, 0.6f) + else -> Color.WHITE.cpy() } + + val color = if (!isViewable) Color.WHITE.cpy().lerp(tileSetStrings.tileSetConfig.fogOfWarColor, 0.6f) + else Color.WHITE.cpy() + + for((index, image) in tileBaseImages.withIndex()) + image.color = if (index == 0) baseTerrainColor else color } + private fun updatePixelMilitaryUnit(showMilitaryUnit: Boolean) { var newImageLocation = "" diff --git a/core/src/com/unciv/ui/tilegroups/TileSetStrings.kt b/core/src/com/unciv/ui/tilegroups/TileSetStrings.kt index 3e16cc62e1..565366f1d6 100644 --- a/core/src/com/unciv/ui/tilegroups/TileSetStrings.kt +++ b/core/src/com/unciv/ui/tilegroups/TileSetStrings.kt @@ -26,11 +26,10 @@ class TileSetStrings(tileSet: String = UncivGame.Current.settings.tileSet, fallb val crosshatchHexagon by lazy { orFallback { tileSetLocation + "CrosshatchHexagon" } } val crosshair by lazy { orFallback { getString(tileSetLocation, "Crosshair") } } val highlight by lazy { orFallback { getString(tileSetLocation, "Highlight") } } - val cityOverlay = tileSetLocation + "CityOverlay" val roadsMap = RoadStatus.values() .filterNot { it == RoadStatus.None } .associateWith { tileSetLocation + it.name } - val naturalWonderOverlay = tileSetLocation + "NaturalWonderOverlay" + val naturalWonder = tileSetLocation + "Tiles/NaturalWonder" val tilesLocation = tileSetLocation + "Tiles/" val bottomRightRiver by lazy { orFallback { tilesLocation + "River-BottomRight"} } @@ -64,13 +63,8 @@ class TileSetStrings(tileSet: String = UncivGame.Current.settings.tileSet, fallb return currentString } - val overlay = "Overlay" - val city = "City" val tag = "-" fun getTile(baseTerrain: String) = getString(tilesLocation, baseTerrain) - fun getBaseTerrainOverlay(baseTerrain: String) = getString(tileSetLocation, baseTerrain, overlay) - fun getTerrainFeatureOverlay(terrainFeature: String) = getString(tileSetLocation, terrainFeature, overlay) - fun getBorder(borderShapeString: String, innerOrOuter:String) = getString(bordersLocation, borderShapeString, innerOrOuter) diff --git a/docs/Modders/Creating-a-custom-tileset.md b/docs/Modders/Creating-a-custom-tileset.md index 6260fb820a..9aad8deb8a 100644 --- a/docs/Modders/Creating-a-custom-tileset.md +++ b/docs/Modders/Creating-a-custom-tileset.md @@ -27,12 +27,19 @@ This is where tileset configs shine. You can use these to alter the way Unicv re To create a config for your tileset you just need to create a new .json file under Jsons/Tilesets/. Just create a .txt file and rename it to MyCoolTilesetExample.json. You only have to add things if you want to change them. Else the default values will be used. -This is an example of such a config file that I will explain below: +This is an example of such a config file that will be explain below: -``` +```json "useColorAsBaseTerrain": "false", + "useSummaryImages": "true", "unexploredTileColor": {"r":1,"g":1,"b":1,"a":1}, "fogOfWarColor": {"r":1,"g":0,"b":0,"a":1}, + "fallbackTileSet": null, + "tileScale":0.9, + "tileScales": { + "City center":1.2, + "Citadel":1.5 + } "ruleVariants": { "Grassland+Forest": ["Grassland","ForestForGrassland"], "Grassland+Jungle+Dyes+Trading post": ["Grassland","JungleForGrasslandBack","Dyes+Trading post","JungleForGrasslandFront"] @@ -41,9 +48,19 @@ This is an example of such a config file that I will explain below: ### useColorAsBaseTerrain -A boolean value ("true" or "false"). Default value: "true" +A boolean value ("true" or "false"). Default value: "false" -If true all tiles will be colored in their corresponding base terrain color. This is how the "Default" tileset works. +If true, an additional "Hexagon" image is placed below each tile and colored in the corresponding BaseTerrain color. This removes the necessity to add individual BaseTerrain images. This is how the "Minimal" tileset works. + +### useSummaryImages + +A boolean value ("true" or "false"). Default value: "false" + +If true, summary images are used for specific groups of images instead of using individual tile images. The summary images must be placed in the same folder as every other tile image. Summary images used: + +| Image group | Summary image | +| ----------- | ------------- | +| Natural wonders | "NaturalWonder" | ### unexploredTileColor @@ -57,9 +74,27 @@ A color defined with normalized RGBA values. Default value: "{"r":0, "g":0, "b": Defines the color of the fog of war. The color gets approximated by 60% to allow the colors of the images below to shine through. +### fallbackTileSet + +A string value. Default value: "FantasyHex" + +The name of another tileset whose images should be used if this tileset is missing images. Can be set to null to disable the the fallback tileset + +### tileScale + +A float value. Default value: 1.0 + +The scale of all tiles. Can be used to increase or decrease the size of every tile. Is being used by the tileset mod [5Hex (made by ravignir)](https://github.com/ravignir/5Hex-Tileset) to fake shadows. + +### tileScales + +A dictionary mapping string to a float value. Default value: empty + +Used by the "Minimal" tileset to scale all its tiles except the base terrain down. Each entry overrides the tileScale value for the specified tile. + ### ruleVariants -A dictionary mapping string to string[]. Default value: empty +A dictionary mapping string to a list of strings. Default value: empty The ruleVariants are the most powerful part of the tileset config. With this, you can define, for a specific tile, which images and in which order these images should be used. diff --git a/docs/Other/Map-related-JSON-files.md b/docs/Other/Map-related-JSON-files.md index eb8e083777..da9477f2ca 100644 --- a/docs/Other/Map-related-JSON-files.md +++ b/docs/Other/Map-related-JSON-files.md @@ -119,12 +119,16 @@ A few uniques can be added to ancient ruin effects to modify when they can be ea A mod can define new Tilesets or add to existing ones, namely FantasyHex. There is one json file per Tileset, named same as the Tileset, and placed in a subfolder named "TileSets" relative to the other json files. This is called TileSetConfig and has the following structure: -| Attribute | Type | Optional | Notes | +| Attribute | Type | Default value | Notes | | --------- | ---- | -------- | ----- | -| useColorAsBaseTerrain | Boolean | Default true | ? *WIP* | -| unexploredTileColor | Color | Default Dark Gray | `{"r":0.25,"g":0.25,"b":0.25,"a":1}` | -| fogOfWarColor | Color | Default Black | `{"r":0,"g":0,"b":0,"a":1}` | -| ruleVariants | List | Default empty | see below | +| [useColorAsBaseTerrain](../Modders/Creating-a-custom-tileset.md#useColorAsBaseTerrain) | Boolean | false | | +| [useSummaryImages](../Modders/Creating-a-custom-tileset.md#useSummaryImages) | Boolean | false | | +| [unexploredTileColor](../Modders/Creating-a-custom-tileset.md#unexploredTileColor) | Color | Dark Gray | `{"r":0.25,"g":0.25,"b":0.25,"a":1}` | +| [fogOfWarColor](../Modders/Creating-a-custom-tileset.md#fogOfWarColor) | Color | Black | `{"r":0,"g":0,"b":0,"a":1}` | +| [fallbackTileSet](../Modders/Creating-a-custom-tileset.md#fallbackTileSet) | String | "FantasyHex" | null to disable | +| [tileScale](../Modders/Creating-a-custom-tileset.md#tileScale) | Float | 1.0 | | +| [tileScales](../Modders/Creating-a-custom-tileset.md#tileScales) | Dictionary | empty | | +| [ruleVariants](../Modders/Creating-a-custom-tileset.md#ruleVariants) | Dictionary | empty | see below | ruleVariants control substitutions when layering images for a tile, they are list looking like: