diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/.gitignore b/src/main/csharp/net/eagle0/clients/unity/eagle0/.gitignore index d546a7c053..4bebfd9133 100644 --- a/src/main/csharp/net/eagle0/clients/unity/eagle0/.gitignore +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/.gitignore @@ -41,4 +41,12 @@ sysinfo.txt mono_crash.* # Local server data -ServerData/ \ No newline at end of file +ServerData/ + +# Unity FBX import artifacts (auto-generated duplicates of textures/materials) +*.fbm/ +*.fbm.meta +Assets/HoneyBadger/Materials/ +Assets/HoneyBadger/Materials.meta +Assets/HoneyBadger/M_Honey_Badger.mat +Assets/HoneyBadger/M_Honey_Badger.mat.meta \ No newline at end of file diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Eagle/RendererViewportClipper.cs.meta b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Eagle/RendererViewportClipper.cs.meta new file mode 100644 index 0000000000..8f04e4b3ff --- /dev/null +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Eagle/RendererViewportClipper.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4b52ff8ff61324201acf4003d652e406 \ No newline at end of file diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Hex Tiles.meta b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Hex Tiles.meta new file mode 100644 index 0000000000..95501e8220 --- /dev/null +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Hex Tiles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eb5a03386d2454688b331abc55cc75f8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Map Editor.meta b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Map Editor.meta new file mode 100644 index 0000000000..cf5e83db5c --- /dev/null +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Map Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 16c000a7ba9a34e95aee4e0a6783dcd6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/NecromancerControlChainManager.cs.meta b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/NecromancerControlChainManager.cs.meta new file mode 100644 index 0000000000..f9c85d88a2 --- /dev/null +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/NecromancerControlChainManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2b8331a1add784e08bf2f37a2870a551 \ No newline at end of file diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/TacticalAssetLoader.cs.meta b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/TacticalAssetLoader.cs.meta new file mode 100644 index 0000000000..4ec723e0a7 --- /dev/null +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/TacticalAssetLoader.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5ed14593667f64416869656e27b8bfff \ No newline at end of file diff --git a/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/TrackedEffectAnimator.cs.meta b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/TrackedEffectAnimator.cs.meta new file mode 100644 index 0000000000..f476cb7f69 --- /dev/null +++ b/src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Shardok/TrackedEffectAnimator.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 212c80b83b33b43cc80db75e73dae19f \ No newline at end of file diff --git a/tools/map_generator/fix_import.py b/tools/map_generator/fix_import.py new file mode 100644 index 0000000000..4b7fc44231 --- /dev/null +++ b/tools/map_generator/fix_import.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +"""Fix the imported rawGray by restoring ocean/border pixels from original.""" +import gzip +from collections import Counter +from pathlib import Path + +import numpy as np + +SCRIPT_DIR = Path(__file__).parent +UNITY_ASSETS = ( + SCRIPT_DIR.parent.parent + / "src/main/csharp/net/eagle0/clients/unity/eagle0/Assets/Eagle" +) + +# Load original +with gzip.open(UNITY_ASSETS / "rawGray.gz.bytes", "rb") as f: + orig = np.frombuffer(f.read(), dtype=np.uint8).reshape(1834, 3786) + +# Load imported (with broken ocean) +with gzip.open(SCRIPT_DIR / "output/rawGray.gz.bytes", "rb") as f: + imported = np.frombuffer(f.read(), dtype=np.uint8).reshape(1834, 3786).copy() + +# Restore ocean/border from original +ocean_or_border = (orig == 0) | (orig == 255) +imported[ocean_or_border] = orig[ocean_or_border] + +# Now check real changes +diff = orig != imported +print(f"Real province changes: {np.sum(diff):,} pixels") + +changed_from = orig[diff] +changed_to = imported[diff] +transitions = Counter(zip(changed_from.tolist(), changed_to.tolist())) +print("Transitions:") +for (fr, to), count in transitions.most_common(20): + print(f" {fr:3d} -> {to:3d}: {count:,}") + +# Show bounding box of changes +ys, xs = np.where(diff) +if len(ys) > 0: + print(f"\nChange region: raw_y [{ys.min()}, {ys.max()}], raw_x [{xs.min()}, {xs.max()}]") + +# Save fixed version +data = imported.astype(np.uint8).tobytes() +with gzip.open(SCRIPT_DIR / "output/rawGray.gz.bytes", "wb") as f: + f.write(data) +print("Saved fixed import to output/rawGray.gz.bytes")