diff --git a/README.md b/README.md index ba49717e..8def86be 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,67 @@ -# Marshmallow +![logo](logo.png) + A planet creator for Outer Wilds. Planets are created using a JSON file format structure, and placed in the `planets` folder. -Moon support is coming soon! -Support for mods to create custom planets / moons is also coming soon! +There is an example planet bundled with the mod - change some values and see what happens! - [Creating a planet file](#creating-a-planet-file-) - [Using Marshmallow from other mods](#using-marshmallow-from-other-mods-) - [Submit bugs / Chat about life](#submit-bugs--chat-about-life-) +- [Credits](#credits-) ## Creating a planet file : -This list will update as more options are added. Structure JSON file like so : +This list will update as more options are added. Here is an example of a file : ``` { - "name" : "Test Planet", - "position" : { - "x" : 0, - "y" : 0, - "z" : 5000 - }, - "orbitAngle" : 0, - "primaryBody" : "SUN", - "hasFog" : true, - "fogTint" : { - "r" : 255, - "g" : 100, - "b" : 0, - "a" : 128 - }, - "fogDensity" : 0.5 + "name" : "Gallifrey", + "position" : { + "x" : 0, + "y" : 0, + "z" : 10000 + }, + "orbitAngle" : 45, + "primaryBody" : "SUN", + "isMoon" : false, + "hasSpawnPoint" : true, + "hasClouds" : true, + "topCloudSize" : 650, + "bottomCloudSize" : 600, + "bottomCloudTint" : + { + "r" : 255, + "g" : 0, + "b" : 0, + "a" : 128 + }, + "topCloudTint" : + { + "r" : 255, + "g" : 0, + "b" : 0, + "a" : 128 + }, + "hasWater" : true, + "waterSize" : 401, + "hasRain" : true, + "hasGravity" : true, + "surfaceAcceleration" : 12, + "hasMapMarker" : true, + "hasFog" : true, + "fogTint" : + { + "r" : 255, + "g" : 100, + "b" : 0, + "a" : 128 + }, + "fogDensity" : 0.75, + "groundSize" : 400 } ``` Everything in "Required" is always needed, and so is every tabbed line in an option. @@ -42,6 +70,7 @@ Everything in "Required" is always needed, and so is every tabbed line in an opt - position - The Vector3 positon of the planet in world space. - orbitAngle - The angle of the orbit. - primaryBody - The AstroObject ID of the body this planet orbits. +- isMoon - Is the body a moon or not a moon (a planet)? ### Optional : - hasGround - Set to "true" if you want to have a sphere as a ground. @@ -69,6 +98,8 @@ To use the API, first define this interface in your mod. public interface IMarshmallow { void Create(Dictionary config); + + GameObject GetPlanet(string name); } ``` Then, you need to find the Marshmallow API. This can be done using the interaction helpers of OWML. @@ -84,6 +115,7 @@ var configDict = new Dictionary { "position", new Vector3(0, 0, 3000) }, { "orbitAngle", 0 }, { "primaryBody", "SUN" }, + { "isMoon" : false }, { "hasSpawnPoint", true }, { "hasGround", true }, { "groundSize", 400f }, @@ -110,3 +142,12 @@ marshmallowApi.Create(configDict); ## Submit bugs / Chat about life : Did you know we have a nice [Outer Wilds discord](https://discord.gg/Sftcc9Z)? Drop by to submit bugs, ask questions, and chat about whatever. Join us modding folk in the `#modding` channel! + +## Credits : +Written by Mister_Nebula + +With help from : +- TAImatem +- AmazingAlek +- Raicuparta +- and the Outer Wilds discord server. diff --git a/logo.png b/logo.png new file mode 100644 index 00000000..6eac4633 Binary files /dev/null and b/logo.png differ diff --git a/manifest.json b/manifest.json index 35664a98..cd2174d6 100644 --- a/manifest.json +++ b/manifest.json @@ -3,6 +3,6 @@ "author": "misternebula", "name": "Marshmallow", "uniqueName": "misternebula.Marshmallow", - "version": "1.0", - "owmlVersion": "0.3.39" -} \ No newline at end of file + "version": "1.0.0", + "owmlVersion": "0.3.53" +}