XML:PSpc: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (→‎XML structure: wording)
m (oops, forgot WPge)
 
Line 3: Line 3:
==General information==
==General information==
* The XML on this page is compatible with OniSplit '''v0.9.61.0'''.
* The XML on this page is compatible with OniSplit '''v0.9.61.0'''.
* This resource uses the concept of the [[wp:9-slice scaling|nine-slice GUI]] to construct [[IGPG]]s (in-game pages), which are used by [[XML:DPge|DPges]], [[XML:HPge|HPges]], [[XML:IPge|IPges]], [[XML:OPge|OPges]], and [[XML:TxtC|TxtCs]].
* This resource uses the concept of the [[wp:9-slice scaling|nine-slice GUI]] to construct [[IGPG]]s (in-game pages), which are used by [[XML:DPge|DPge]], [[XML:HPge|HPge]], [[XML:IPge|IPge]], [[XML:OPge|OPge]], [[XML:WPge|WPge]] and [[XML:TxtC|TxtC]].
* You could attempt to simulate image alignment by using the image you want displayed as a corner, then supplying a transparent texture for the other components.
* You could attempt to simulate image alignment by using the image you want displayed as a corner, then supplying a transparent texture for the other components.
* Please note that animated TXMPs doesn't work in a PSpc.
* Please note that animated TXMPs doesn't work in a PSpc.

Latest revision as of 14:12, 6 December 2023

PSpc : Part Specification
XML modding tips
  • See HERE to start learning about XML modding.
  • See HERE if you are searching for information on how to handle object coordinates.
  • See HERE for some typical modding errors and their causes.
XML.png
XML

PNTA << Other file types >> PSpL

switch to OBD page

General information

  • The XML on this page is compatible with OniSplit v0.9.61.0.
  • This resource uses the concept of the nine-slice GUI to construct IGPGs (in-game pages), which are used by DPge, HPge, IPge, OPge, WPge and TxtC.
  • You could attempt to simulate image alignment by using the image you want displayed as a corner, then supplying a transparent texture for the other components.
  • Please note that animated TXMPs doesn't work in a PSpc.

XML structure

1 4 7
2 5 8
3 6 9

There are 9 <PSpcPoint> tags under <TopLeft> and nine <PSpcPoint>s under <RightBottom>. The nth <PSpcPoint> tag under <TopLeft> and the nth <PSpcPoint> under <RightBottom> belong together; the entries under <TopLeft> and <RightBottom> comprise pairs of points which define a single tile out of nine (this is a bit confusing, but the XML simply reflects how Oni stores them). The order of the tiles is top to bottom, left to right.

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <PSpc id="0">
       <TopLeft>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           [...]
       </TopLeft>
       <RightBottom>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           [...]
       </RightBottom>
       <Texture>TXMP...</Texture>
   </PSpc>
</Oni>

Example

TXMPh_19 is the only image appearing in TxtClevel_19a, but a PSpc divides it into 3 parts in order to stretch it across the top of the page. Each part is framed by the pixel coordinates in the XML below. As always with nine-slice tiling, the corners do not stretch, and the border tiles and the center tile do. Note that only parts 1, 4, and 7 are used in the following PSpc.

TXMPh_19
Color-coded version: the bluish half is tile 1, the single line of pixels in the center is tile 4 (this gets stretched horizontally), and the orange half is tile 7.

Coordinates of 1: {0, 0} to {64, 32}
Coordinates of 4: {64, 0} to {64, 32}
Coordinates of 7: {65, 0} to {128, 32}
which produces:

PSpc parts ingame.png
<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <PSpc id="0">
       <LeftTop>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>64</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>65</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
       </LeftTop>
       <RightBottom>
           <PSpcPoint>
               <X>64</X>
               <Y>32</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>64</X>
               <Y>32</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>128</X>
               <Y>32</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
           <PSpcPoint>
               <X>0</X>
               <Y>0</Y>
           </PSpcPoint>
       </RightBottom>
       <Texture>TXMPh_19</Texture>
   </PSpc>
</Oni>