diff --git a/RVM_Beta1.0.zip b/RVM_Beta1.0.zip new file mode 100644 index 0000000..521bdb4 Binary files /dev/null and b/RVM_Beta1.0.zip differ diff --git a/RVM_Beta1.0/RVM_Beta1.0/RVM Rimworld Visual Mod Maker Installation and Usage Guide - Beta 1.0.pdf b/RVM_Beta1.0/RVM_Beta1.0/RVM Rimworld Visual Mod Maker Installation and Usage Guide - Beta 1.0.pdf new file mode 100644 index 0000000..abc7d59 Binary files /dev/null and b/RVM_Beta1.0/RVM_Beta1.0/RVM Rimworld Visual Mod Maker Installation and Usage Guide - Beta 1.0.pdf differ diff --git a/RVM_Beta1.0/RVM_Beta1.0/RVM安装与使用指南Beta1.0.pdf b/RVM_Beta1.0/RVM_Beta1.0/RVM安装与使用指南Beta1.0.pdf new file mode 100644 index 0000000..ed8efb4 Binary files /dev/null and b/RVM_Beta1.0/RVM_Beta1.0/RVM安装与使用指南Beta1.0.pdf differ diff --git a/RVM_Beta1.0/RVM_Beta1.0/index.html b/RVM_Beta1.0/RVM_Beta1.0/index.html new file mode 100644 index 0000000..435c181 --- /dev/null +++ b/RVM_Beta1.0/RVM_Beta1.0/index.html @@ -0,0 +1,12 @@ + + +
+ + +{project.mod.packageId}
{T("Custom Race automatically adds Humanoid Alien Races as a required dependency only when enabled.")}
{deps.map((d, i) =>{T("Disable pawn skin tinting and use white skinColor in HAR graphicPaths.")}
+ {renderTextureGroup(project, T, setAsset, "race.body.shared", "Body shared", r.textureMode === "shared" || r.textureMode === "bodyTypes")} + {renderTextureGroup(project, T, setAsset, "race.body.male", "Male body", r.textureMode === "gendered")} + {renderTextureGroup(project, T, setAsset, "race.body.female", "Female body", r.textureMode === "gendered")} + {r.textureMode === "bodyTypes" && BODY_TYPES.map((bt) => renderTextureGroup(project, T, setAsset, `race.bodytype.${bt}`, `${bt} body`, true))} + {renderTextureGroup(project, T, setAsset, "race.head.shared", "Head shared", r.headTextureMode === "shared")} + {renderTextureGroup(project, T, setAsset, "race.head.male", "Male head", r.headTextureMode === "gendered")} + {renderTextureGroup(project, T, setAsset, "race.head.female", "Female head", r.headTextureMode === "gendered")} +{T("Click header to expand or collapse this node.")}
{T("No items yet. Click New item to add one.")}
}{project.items.map((item) => { + const open = isExpanded(item.id); + return{item.kind} · {item.weaponMode} · {item.label}
{T("Collapsed item")}: {item.defName}
{T("Buildable items export as safe standalone ThingDef and appear in Architect tabs.")}
+{T("This editor now writes an independent projectile for ranged weapons. The sound preset only changes soundCast/soundCastTail and never overwrites your weapon stats.")}
+{T("Chinese punctuation in comma fields will be converted to English commas before export.")}
+{T("Beam sound note")}
{T("Beam weapons use Verb_ShootBeam and Beam-style damage; projectile texture and projectile speed are ignored.")}
+{T("Beam visual note")}
+ {(item.beamVisualPreset || "anomalyIncinerator") === "custom" && <> +{T("Fire chance is currently UI-only for XML safety; use Flame damageDef with Explosion radius for fire-style explosions.")}
+ >} +{T("Tech tree support creates ResearchProjectDef and can link items through researchPrerequisite.")}
{T("Chinese punctuation in comma fields will be converted to English commas before export.")}
{T("No research projects yet. Click New research to add one.")}
}{project.research.map((r) => { + const open = isExpanded(r.id); + const ownership = researchOwnership(r); + return{ownership === "independent" ? T("Create independent tech tree") : T("Merge into vanilla tech tree")} · {r.techLevel} · {r.baseCost}
{T("Collapsed research")}: {r.defName}
{ownership === "independent" ? T("Independent tree note") : T("Vanilla merge note")}
+ {ownership === "independent" &&{T("When Custom Race is enabled, this uses Biotech's ConfigurePawnsXenotypes scenPart to generate starting pawns from the custom PawnKind instead of vanilla Human pawns.")}
+{T("Custom race candidate pool")}: {s.startingPawnRaceMode === "experimentalCandidatePool" ? T("Experimental candidate pool note") : T("Custom race start note")}
+{T("Custom race candidate pool")}: {s.startingPawnRaceMode === "experimentalCandidatePool" ? T("Experimental candidate pool note") : T("Custom race start note")}
} +No assets uploaded.
: Object.entries(project.assets).map(([key, asset]) =>{key}{asset.fileName}{T("No blocking errors")}
}{T("Save status")}: {T("Autosaved locally")}
{`Playable Mod ZIP contains only:
+About/About.xml
+Defs/...
+Textures/...
+
+Editor folder receives:
+logs/*_modmaker_log.txt
+source/*_ModMakerProject.json`}Log and source project files are not packaged into the playable Mod ZIP. They are written beside the editor instead: logs/ and source/.