mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00
Subnautica: add logic dumper for mod (#1386)
* Subnautica: add logic dumper for mod * Subnautica: export more data * Subnautica: fix some Cyclops logic
This commit is contained in:
@@ -571,9 +571,35 @@ location_table: Dict[int, LocationDict] = {
|
||||
'need_laser_cutter': False,
|
||||
'position': {'x': 83.2, 'y': -276.4, 'z': -345.5}},
|
||||
}
|
||||
if False: # turn to True to export for Subnautica mod
|
||||
payload = {location_id: location_data["position"] for location_id, location_data in location_table.items()}
|
||||
import json
|
||||
|
||||
if False: # turn to True to export for Subnautica mod
|
||||
import json
|
||||
import math
|
||||
|
||||
payload = {location_id: location_data["position"] for location_id, location_data in location_table.items()}
|
||||
with open("locations.json", "w") as f:
|
||||
json.dump(payload, f)
|
||||
|
||||
def radiated(pos: Vector):
|
||||
aurora_dist = math.sqrt((pos["x"] - 1038.0) ** 2 + (pos["y"] - -3.4) ** 2 + (pos["y"] - -163.1) ** 2)
|
||||
return aurora_dist < 950
|
||||
|
||||
def far_away(pos: Vector):
|
||||
return (pos["x"] ** 2 + pos["z"] ** 2) > (800 ** 2)
|
||||
|
||||
payload = {
|
||||
# "LaserCutter" in Subnautica ID
|
||||
"761": [location_id for location_id, location_data
|
||||
in location_table.items() if location_data["need_laser_cutter"]],
|
||||
# PropulsionCannon in Subnautica ID
|
||||
"757": [location_id for location_id, location_data
|
||||
in location_table.items() if location_data.get("need_propulsion_cannon", False)],
|
||||
# Radiation Suit in Subnautica ID
|
||||
"519": [location_id for location_id, location_data
|
||||
in location_table.items() if radiated(location_data["position"])],
|
||||
# SeaGlide in Subnautica ID
|
||||
"751": [location_id for location_id, location_data
|
||||
in location_table.items() if far_away(location_data["position"])],
|
||||
}
|
||||
with open("logic.json", "w") as f:
|
||||
json.dump(payload, f)
|
||||
|
||||
Reference in New Issue
Block a user