BrawlCrate v0.41
Wii File Editor
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Properties | List of all members
BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode Class Reference
Inheritance diagram for BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode:
BrawlLib.SSBB.ResourceNodes.MDL0EntryNode BrawlLib.SSBB.ResourceNodes.ResourceNode

Public Member Functions

void SetAllRefs (sbyte value)
 
override void RemoveChild (ResourceNode child)
 
override void AddChild (ResourceNode child, bool change)
 
override void SignalPropertyChange ()
 
void Default ()
 
void Default (bool change)
 
void DefaultAsMetal (int texcount)
 
void DefaultAsShadow ()
 
void DefaultAsSpy ()
 
override bool OnInitialize ()
 
override void OnPopulate ()
 
override void OnRebuild (VoidPtr address, int length, bool force)
 
override int OnCalculateSize (bool force)
 
override void SignalPropertyChange ()
 
- Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
void OnRenamed ()
 
List< ResourceNodeGetChildrenRecursive ()
 Used primarily to get bone lists. Kept for all resource nodes for utility. More...
 
virtual void SignalPropertyChange ()
 
virtual void Dispose ()
 
void SelectChildAtIndex (int index)
 
void UpdateProperties ()
 
void UpdateCurrentControl ()
 
virtual bool MoveUp ()
 
virtual bool MoveDown ()
 
virtual void OnMoved ()
 
virtual void DoMoveDown ()
 
virtual void DoMoveDown (bool select)
 
virtual void DoMoveUp ()
 
virtual void DoMoveUp (bool select)
 
virtual bool AddUp ()
 
virtual bool AddDown ()
 
virtual bool ToParent ()
 
void Populate (int levels=-1)
 
virtual void OnPopulate ()
 
void Initialize (ResourceNode parent, FileMap source)
 
void Initialize (ResourceNode parent, VoidPtr address, int length)
 
void Initialize (ResourceNode parent, DataSource origSource)
 
virtual void Initialize (ResourceNode parent, DataSource origSource, DataSource uncompSource)
 
virtual bool OnInitialize ()
 
virtual void Restore ()
 
virtual void Remove ()
 
virtual void RemoveChild (ResourceNode child)
 
virtual void AddChild (ResourceNode child)
 
virtual void AddChild (ResourceNode child, bool change)
 
virtual void InsertChild (ResourceNode child, int index)
 
virtual void InsertChild (ResourceNode child, bool change, int index)
 
void SetSizeInternal (int size)
 
virtual void Replace (string fileName)
 
virtual void Replace (ResourceNode node)
 
virtual void Replace (string fileName, FileMapProtect prot, FileOptions options)
 
virtual void ReplaceRaw (VoidPtr address, int length)
 
virtual void ReplaceRaw (FileMap map)
 
virtual void Export (string outPath)
 
void Export (FileStream outStream)
 
virtual void ExportUncompressed (string outPath)
 
void ExportUncompressed (FileStream outStream)
 
virtual void Rebuild ()
 
virtual void Rebuild (bool force)
 
virtual void Rebuild (VoidPtr address, int length, bool force)
 
virtual void OnRebuild (VoidPtr address, int length, bool force)
 
virtual int CalculateSize (bool force)
 
virtual int OnCalculateSize (bool force)
 
void Merge ()
 
void Merge (bool forceBuild)
 
ResourceNode FindChildByType (string path, bool searchChildren, params ResourceType[] types)
 
ResourceNode FindChildByType (string path, bool searchChildren, StringComparison compare, params ResourceType[] types)
 
ResourceNode FindChild (string path)
 
ResourceNode FindChild (string path, bool searchChildren)
 
ResourceNode FindChild (string path, StringComparison compare)
 
ResourceNode FindChild (string path, bool searchChildren, StringComparison compare)
 
ResourceNode[] FindChildrenByClassType (string path, Type type)
 
ResourceNode[] FindChildrenByType (string path, ResourceType type)
 
ResourceNode[] FindChildrenByTypeInGroup (string path, ResourceType type, byte group)
 
ResourceNode[] FindChildrenByName (string name)
 
unsafe string FindName (string name)
 
ResourceNode FindEmbeddedIndex (int index)
 
virtual unsafe byte[] MD5 ()
 Find the MD5 checksum of this node's data. If this node doesn't have any data (BRESGroupNode, for example), this method will return null. More...
 
string MD5Str ()
 Get the result of the MD5() function as a string of hexadecimal digits. If MD5() returns null, this method will return an empty string. More...
 
ResourceNode PrevSibling ()
 
ResourceNode NextSibling ()
 
override string ToString ()
 
virtual void SortChildren ()
 

Public Attributes

KSelSwapBlock _swapBlock = KSelSwapBlock.Default
 
List< MDL0MaterialNode_materials = new List<MDL0MaterialNode>()
 
sbyte Ref0 = -1
 
sbyte Ref1 = -1
 
sbyte Ref2 = -1
 
sbyte Ref3 = -1
 
sbyte Ref4 = -1
 
sbyte Ref5 = -1
 
sbyte Ref6 = -1
 
sbyte Ref7 = -1
 
string[] _fragShaderSource
 
bool _enabled = true
 
bool _autoMetal
 
int _texCount = -1
 
bool _rendered = false
 
- Public Attributes inherited from BrawlLib.SSBB.ResourceNodes.MDL0EntryNode
int _entryIndex
 
- Public Attributes inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
Form _mainForm
 
string _name
 
string _origPath
 
ResourceNode _parent
 
List< ResourceNode_children = new List<ResourceNode>()
 
int _calcSize
 
EventHandler UpdateControl
 
MoveEventHandler MovedDown
 
ResourceEventHandler Renamed
 
ResourceEventHandler PropertyChanged
 
ResourceEventHandler Replaced
 
ResourceEventHandler Restored
 
ResourceChildEventHandler ChildRemoved
 
bool _isPopulating
 
bool _replaced
 

Properties

override ResourceType ResourceFileType [get]
 
byte Stages [get]
 
MDL0MaterialNode[] Materials [get]
 
ColorChannel Swap0Red [get, set]
 
ColorChannel Swap0Green [get, set]
 
ColorChannel Swap0Blue [get, set]
 
ColorChannel Swap0Alpha [get, set]
 
ColorChannel Swap1Red [get, set]
 
ColorChannel Swap1Green [get, set]
 
ColorChannel Swap1Blue [get, set]
 
ColorChannel Swap1Alpha [get, set]
 
ColorChannel Swap2Red [get, set]
 
ColorChannel Swap2Green [get, set]
 
ColorChannel Swap2Blue [get, set]
 
ColorChannel Swap2Alpha [get, set]
 
ColorChannel Swap3Red [get, set]
 
ColorChannel Swap3Green [get, set]
 
ColorChannel Swap3Blue [get, set]
 
ColorChannel Swap3Alpha [get, set]
 
TexMapID IndTex0MapID [get, set]
 
TexCoordID IndTex0Coord [get, set]
 
TexMapID IndTex1MapID [get, set]
 
TexCoordID IndTex1Coord [get, set]
 
TexMapID IndTex2MapID [get, set]
 
TexCoordID IndTex2Coord [get, set]
 
TexMapID IndTex3MapID [get, set]
 
TexCoordID IndTex3Coord [get, set]
 
bool TextureRef0 [get, set]
 
bool TextureRef1 [get, set]
 
bool TextureRef2 [get, set]
 
bool TextureRef3 [get, set]
 
bool TextureRef4 [get, set]
 
bool TextureRef5 [get, set]
 
bool TextureRef6 [get, set]
 
bool TextureRef7 [get, set]
 
override string Name [get, set]
 
- Properties inherited from BrawlLib.SSBB.ResourceNodes.MDL0EntryNode
MDL0Node Model [get]
 
BRRESNode BRESNode [get]
 
- Properties inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
string FilePath [get]
 
string FileName [get]
 
string DirectoryName [get]
 
ResourceNode RootNode [get]
 
DataSource OriginalSource [get]
 
DataSource UncompressedSource [get]
 
DataSource WorkingSource [get]
 
DataSource WorkingUncompressed [get]
 
virtual bool HasChildren [get]
 
virtual ResourceType ResourceFileType [get]
 
string NodeType [get]
 
virtual string TreePathAbsolute [get]
 
virtual string TreePath [get]
 
virtual int Level [get]
 
virtual int MaxNameLength [get]
 
virtual bool AllowDuplicateNames [get]
 
virtual bool AllowNullNames [get]
 
virtual string Name [get, set]
 
ResourceNode Parent [get, set]
 
List< ResourceNodeChildren [get]
 
int Index [get]
 
int HexIndex [get]
 
bool IsCompressed [get]
 
bool HasChanged [get, set]
 
bool IsBranch [get]
 
bool HasMerged [get]
 
virtual bool AllowSaving [get, set]
 
virtual bool IsDirty [get, set]
 
virtual uint UncompressedSize [get]
 
virtual Type[] AllowedChildTypes [get]
 
virtual string Compression [get, set]
 
virtual bool RetainChildrenOnReplace [get]
 
virtual bool supportsCompression [get]
 
static MD5CryptoServiceProvider MD5Provider [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
static ResourceNode[] FindAllSubNodes (ResourceNode root)
 
static ResourceNode FindNode (ResourceNode root, string path, bool searchChildren, StringComparison compare)
 
- Protected Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
void ForceReplacedEvent ()
 
virtual void MergeInternal ()
 
- Events inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
SelectEventHandler SelectChild
 
EventHandler UpdateProps
 
MoveEventHandler MovedUp
 
ResourceEventHandler Disposing
 
ResourceChildEventHandler ChildAdded
 
ResourceChildInsertEventHandler ChildInserted
 

Member Function Documentation

◆ AddChild()

override void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.AddChild ( ResourceNode  child,
bool  change 
)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

346 {
347 base.AddChild(child, change);
348
349 foreach (MDL0MaterialNode m in Materials)
350 {
351 m._updating = true;
352 m.ActiveShaderStages = Stages;
353 m._updating = false;
354 }
355 }
MDL0MaterialNode[] Materials
Definition: MDL0ShaderNode.cs:16
byte Stages
Definition: MDL0ShaderNode.cs:15

◆ Default() [1/2]

void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Default ( )
inline
481 {
482 Default(true);
483 }
void Default()
Definition: MDL0ShaderNode.cs:480

◆ Default() [2/2]

void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Default ( bool  change)
inline
486 {
487 SetAllRefs(-1);
488
489 MDL0TEVStageNode stage = new MDL0TEVStageNode();
490 AddChild(stage, change);
491 }
void SetAllRefs(sbyte value)
Definition: MDL0ShaderNode.cs:30
override void AddChild(ResourceNode child, bool change)
Definition: MDL0ShaderNode.cs:345

◆ DefaultAsMetal()

void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.DefaultAsMetal ( int  texcount)
inline
494 {
495 _autoMetal = true;
496
497 SetAllRefs(-1);
498
499 switch ((_texCount = texcount) - 1)
500 {
501 case 0:
502 Ref0 = 0;
503 break;
504 case 1:
505 Ref1 = 1;
506 break;
507 case 2:
508 Ref2 = 2;
509 break;
510 case 3:
511 Ref3 = 3;
512 break;
513 case 4:
514 Ref4 = 4;
515 break;
516 case 5:
517 Ref5 = 5;
518 break;
519 case 6:
520 Ref6 = 6;
521 break;
522 case 7:
523 Ref7 = 7;
524 break;
525 }
526
527 Children.Clear();
528
529 int i = 0;
530 MDL0TEVStageNode s;
531 while (i++ < 4)
532 {
533 AddChild(s = new MDL0TEVStageNode());
534 s.DefaultAsMetal(texcount - 1);
535 }
536 }
sbyte Ref3
Definition: MDL0ShaderNode.cs:24
sbyte Ref1
Definition: MDL0ShaderNode.cs:22
sbyte Ref5
Definition: MDL0ShaderNode.cs:26
sbyte Ref2
Definition: MDL0ShaderNode.cs:23
int _texCount
Definition: MDL0ShaderNode.cs:469
sbyte Ref6
Definition: MDL0ShaderNode.cs:27
bool _autoMetal
Definition: MDL0ShaderNode.cs:468
sbyte Ref7
Definition: MDL0ShaderNode.cs:28
sbyte Ref0
Definition: MDL0ShaderNode.cs:21
sbyte Ref4
Definition: MDL0ShaderNode.cs:25
List< ResourceNode > Children
Definition: ResourceNode.cs:262

◆ DefaultAsShadow()

void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.DefaultAsShadow ( )
inline
539 {
540 Default(true);
541 TextureRef0 = true;
542 ((MDL0TEVStageNode) Children[0]).TextureEnabled = true;
543 ((MDL0TEVStageNode) Children[0]).TextureMapID = TexMapID.TexMap0;
544 ((MDL0TEVStageNode) Children[0]).TextureCoordID = TexCoordID.TexCoord0;
545 ((MDL0TEVStageNode) Children[0]).ConstantColorSelection = TevKColorSel.ConstantColor0_RGB;
546 ((MDL0TEVStageNode) Children[0]).ColorSelectionA = ColorArg.One;
547 ((MDL0TEVStageNode) Children[0]).ColorSelectionC = ColorArg.One;
548 ((MDL0TEVStageNode) Children[0]).ColorSelectionD = ColorArg.Color0;
549 ((MDL0TEVStageNode) Children[0]).ColorOperation = TevColorOp.Subtract;
550 ((MDL0TEVStageNode) Children[0]).ConstantAlphaSelection = TevKAlphaSel.ConstantColor0_Alpha;
551 ((MDL0TEVStageNode) Children[0]).AlphaSelectionB = AlphaArg.Alpha0;
552 ((MDL0TEVStageNode) Children[0]).AlphaSelectionC = AlphaArg.TextureAlpha;
553 ((MDL0TEVStageNode) Children[0]).AlphaRegister = TevAlphaRegID.Alpha1;
554 }
bool TextureRef0
Definition: MDL0ShaderNode.cs:361
TexCoordID
Definition: Enum.cs:327
TevKAlphaSel
Definition: Enum.cs:342
TexMapID
Definition: Enum.cs:286
TevAlphaRegID
Definition: Enum.cs:167
AlphaArg
Definition: Enum.cs:103
TevColorOp
Definition: Enum.cs:175
ColorArg
Definition: Enum.cs:83
TevKColorSel
Definition: Enum.cs:376

◆ DefaultAsSpy()

void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.DefaultAsSpy ( )
inline
557 {
558 Default(true);
559 TextureRef0 = true;
560 TextureRef1 = true;
561 IndTex0MapID = TexMapID.TexMap1;
562 IndTex0Coord = TexCoordID.TexCoord1;
563 ((MDL0TEVStageNode) Children[0]).TextureEnabled = true;
564 ((MDL0TEVStageNode) Children[0]).TextureMapID = TexMapID.TexMap0;
565 ((MDL0TEVStageNode) Children[0]).TextureCoordID = TexCoordID.TexCoord0;
566 ((MDL0TEVStageNode) Children[0]).RasterColor = ColorSelChan.LightChannel0;
567 ((MDL0TEVStageNode) Children[0]).ConstantColorSelection = TevKColorSel.ConstantColor0_RGB;
568 ((MDL0TEVStageNode) Children[0]).ColorSelectionB = ColorArg.TextureColor;
569 ((MDL0TEVStageNode) Children[0]).ColorSelectionC = ColorArg.RasterColor;
570 ((MDL0TEVStageNode) Children[0]).ColorScale = TevScale.MultiplyBy2;
571 ((MDL0TEVStageNode) Children[0]).ConstantAlphaSelection = TevKAlphaSel.ConstantColor0_Alpha;
572 ((MDL0TEVStageNode) Children[0]).AlphaSelectionB = AlphaArg.TextureAlpha;
573 ((MDL0TEVStageNode) Children[0]).AlphaSelectionC = AlphaArg.RasterAlpha;
574 ((MDL0TEVStageNode) Children[0]).Bias = IndTexBiasSel.STU;
575 ((MDL0TEVStageNode) Children[0]).Matrix = IndTexMtxID.Matrix0;
576 }
TexCoordID IndTex0Coord
Definition: MDL0ShaderNode.cs:252
bool TextureRef1
Definition: MDL0ShaderNode.cs:374
TexMapID IndTex0MapID
Definition: MDL0ShaderNode.cs:240
IndTexBiasSel
Definition: Enum.cs:438
ColorSelChan
Definition: Enum.cs:303
TevScale
Definition: Enum.cs:255
IndTexMtxID
Definition: Enum.cs:450

◆ OnCalculateSize()

override int BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.OnCalculateSize ( bool  force)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

734 {
735 return 512;
736 }

◆ OnInitialize()

override bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.OnInitialize ( )
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

584 {
585 Ref0 = Header->_ref0;
586 Ref1 = Header->_ref1;
587 Ref2 = Header->_ref2;
588 Ref3 = Header->_ref3;
589 Ref4 = Header->_ref4;
590 Ref5 = Header->_ref5;
591 Ref6 = Header->_ref6;
592 Ref7 = Header->_ref7;
593
594 //Attach to materials
595 byte* pHeader = (byte*) Header;
596 if (Model?._matList != null)
597 {
598 foreach (MDL0MaterialNode mat in Model._matList)
599 {
600 MDL0Material* mHeader = mat.Header;
601 if ((byte*) mHeader + mHeader->_shaderOffset == pHeader)
602 {
603 mat._shader = this;
604 _materials.Add(mat);
605 }
606 }
607 }
608
609 _swapBlock = *Header->SwapBlock;
610
611 return Header->_stages > 0;
612 }
MDL0Node Model
Definition: MDL0GroupNode.cs:28
List< ResourceNode > _matList
Definition: MDL0Node.cs:304
List< MDL0MaterialNode > _materials
Definition: MDL0ShaderNode.cs:19
KSelSwapBlock _swapBlock
Definition: MDL0ShaderNode.cs:18
Definition: MDL0.cs:1165
bint _shaderOffset
Definition: MDL0.cs:1211
sbyte _ref6
Definition: MDL0.cs:1815
sbyte _ref2
Definition: MDL0.cs:1815
byte _stages
Definition: MDL0.cs:1813
sbyte _ref4
Definition: MDL0.cs:1815
sbyte _ref3
Definition: MDL0.cs:1815
sbyte _ref7
Definition: MDL0.cs:1815
sbyte _ref0
Definition: MDL0.cs:1815
sbyte _ref5
Definition: MDL0.cs:1815
KSelSwapBlock * SwapBlock
Definition: MDL0.cs:1818
sbyte _ref1
Definition: MDL0.cs:1815

◆ OnPopulate()

override void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.OnPopulate ( )
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

615 {
616 StageGroup* grp = Header->First;
617 for (int r = 0; r < 8; r++, grp = grp->Next)
618 {
619 if (grp->_mask.Reg == 0x61)
620 {
621 MDL0TEVStageNode s0 = new MDL0TEVStageNode();
622
623 KSel ksel = new KSel(grp->_ksel.Data.Value);
624 RAS1_TRef tref = new RAS1_TRef(grp->_tref.Data.Value);
625
626 s0._colorEnv = grp->_evenColorEnv.Data;
627 s0._alphaEnv = grp->_evenAlphaEnv.Data;
628 s0._cmd = grp->_evenCmd.Data;
629
630 s0._kcSel = ksel.KCSel0;
631 s0._kaSel = ksel.KASel0;
632
633 s0._texMapID = tref.TexMapID0;
634 s0._texCoord = tref.TexCoord0;
635 s0._colorChan = tref.ColorChannel0;
636 s0._texEnabled = tref.TexEnabled0;
637
638 s0._parent = this;
639 _children.Add(s0);
640
641 if (grp->_oddColorEnv.Reg == 0x61 && grp->_oddAlphaEnv.Reg == 0x61 && grp->_oddCmd.Reg == 0x61)
642 {
643 MDL0TEVStageNode s1 = new MDL0TEVStageNode
644 {
645 _colorEnv = grp->_oddColorEnv.Data,
646 _alphaEnv = grp->_oddAlphaEnv.Data,
647 _cmd = grp->_oddCmd.Data,
648
649 _kcSel = ksel.KCSel1,
650 _kaSel = ksel.KASel1,
651
652 _texMapID = tref.TexMapID1,
653 _texCoord = tref.TexCoord1,
654 _colorChan = tref.ColorChannel1,
655 _texEnabled = tref.TexEnabled1,
656
657 _parent = this
658 };
659 _children.Add(s1);
660 }
661 }
662 }
663 }
ResourceNode _parent
Definition: ResourceNode.cs:142
List< ResourceNode > _children
Definition: ResourceNode.cs:143
StageGroup * First
Definition: MDL0.cs:1821
Definition: MDL0.cs:1681
StageGroup * Next
Definition: MDL0.cs:1753
Definition: BP.cs:696
TevKAlphaSel KASel0
Definition: BP.cs:773
TevKAlphaSel KASel1
Definition: BP.cs:785
TevKColorSel KCSel0
Definition: BP.cs:767
TevKColorSel KCSel1
Definition: BP.cs:779
Definition: BP.cs:565
bool TexEnabled1
Definition: BP.cs:676
TexCoordID TexCoord1
Definition: BP.cs:670
TexCoordID TexCoord0
Definition: BP.cs:640
ColorSelChan ColorChannel0
Definition: BP.cs:652
ColorSelChan ColorChannel1
Definition: BP.cs:682
TexMapID TexMapID1
Definition: BP.cs:664
TexMapID TexMapID0
Definition: BP.cs:634
bool TexEnabled0
Definition: BP.cs:646

◆ OnRebuild()

override void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.OnRebuild ( VoidPtr  address,
int  length,
bool  force 
)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

666 {
667 MDL0Shader* header = (MDL0Shader*) address;
668
669 header->_dataLength = length;
670 header->_index = Index;
671
672 header->_stages = Stages;
673
674 header->_ref0 = Ref0;
675 header->_ref1 = Ref1;
676 header->_ref2 = Ref2;
677 header->_ref3 = Ref3;
678 header->_ref4 = Ref4;
679 header->_ref5 = Ref5;
680 header->_ref6 = Ref6;
681 header->_ref7 = Ref7;
682
683 header->_pad0 = 0;
684 header->_pad1 = 0;
685 header->_pad2 = 0;
686 header->_pad3 = 0;
687 header->_pad4 = 0;
688
689 *header->SwapBlock = _swapBlock;
690
691 StageGroup* grp = (StageGroup*) (address + 0x80);
692 for (int i = 0; i < Children.Count; i++)
693 {
694 MDL0TEVStageNode c = (MDL0TEVStageNode) Children[i]; //Current Stage
695
696 if ((i & 1) == 0) //Even Stage
697 {
698 *grp = StageGroup.Default;
699
700 grp->SetGroup(i >> 1);
701 grp->SetStage(i);
702
703 grp->_evenColorEnv.Data = c._colorEnv;
704 grp->_evenAlphaEnv.Data = c._alphaEnv;
705 grp->_evenCmd.Data = c._cmd;
706
707 if (i == Children.Count - 1) //Last stage is even, odd stage isn't used
708 {
709 grp->_ksel.Data = new KSel(0, 0, c._kcSel, c._kaSel, 0, 0);
710 grp->_tref.Data = new RAS1_TRef(c._texMapID, c._texCoord, c._texEnabled, c._colorChan,
711 TexMapID.TexMap7, TexCoordID.TexCoord7, false, ColorSelChan.Zero);
712 }
713 }
714 else //Odd Stage
715 {
716 MDL0TEVStageNode p = (MDL0TEVStageNode) Children[i - 1]; //Previous Stage
717
718 grp->SetStage(i);
719
720 grp->_oddColorEnv.Data = c._colorEnv;
721 grp->_oddAlphaEnv.Data = c._alphaEnv;
722 grp->_oddCmd.Data = c._cmd;
723
724 grp->_ksel.Data = new KSel(0, 0, p._kcSel, p._kaSel, c._kcSel, c._kaSel);
725 grp->_tref.Data = new RAS1_TRef(p._texMapID, p._texCoord, p._texEnabled, p._colorChan, c._texMapID,
726 c._texCoord, c._texEnabled, c._colorChan);
727
728 grp = grp->Next;
729 }
730 }
731 }
int Index
Definition: ResourceNode.cs:301
Definition: MDL0.cs:1807
bint _dataLength
Definition: MDL0.cs:1810
byte _pad0
Definition: MDL0.cs:1814
int _pad3
Definition: MDL0.cs:1816
bint _index
Definition: MDL0.cs:1812
int _pad4
Definition: MDL0.cs:1816
byte _pad1
Definition: MDL0.cs:1814
byte _pad2
Definition: MDL0.cs:1814
BPCommand _evenColorEnv
Definition: MDL0.cs:1691
BPCommand _evenAlphaEnv
Definition: MDL0.cs:1693
BPCommand _evenCmd
Definition: MDL0.cs:1695
BPCommand _oddColorEnv
Definition: MDL0.cs:1692
static readonly StageGroup Default
Definition: MDL0.cs:1698
void SetGroup(int index)
Definition: MDL0.cs:1711
BPCommand _tref
Definition: MDL0.cs:1690
BPCommand _oddCmd
Definition: MDL0.cs:1696
BPCommand _ksel
Definition: MDL0.cs:1689
BPCommand _oddAlphaEnv
Definition: MDL0.cs:1694
void SetStage(int index)
Definition: MDL0.cs:1717
BUInt24 Data
Definition: BP.cs:18

◆ RemoveChild()

override void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.RemoveChild ( ResourceNode  child)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

334 {
335 base.RemoveChild(child);
336
337 foreach (MDL0MaterialNode m in Materials)
338 {
339 m._updating = true;
340 m.ActiveShaderStages = Stages;
341 m._updating = false;
342 }
343 }

◆ SetAllRefs()

void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.SetAllRefs ( sbyte  value)
inline
31 {
32 Ref0 = value;
33 Ref1 = value;
34 Ref2 = value;
35 Ref3 = value;
36 Ref4 = value;
37 Ref5 = value;
38 Ref6 = value;
39 Ref7 = value;
41 }
override void SignalPropertyChange()
Definition: MDL0ShaderNode.cs:461

◆ SignalPropertyChange()

override void BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.SignalPropertyChange ( )
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.MDL0EntryNode.

462 {
463 _fragShaderSource = null;
464 base.SignalPropertyChange();
465 }
string[] _fragShaderSource
Definition: MDL0ShaderNode.cs:43

Member Data Documentation

◆ _autoMetal

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._autoMetal

◆ _enabled

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._enabled = true

◆ _fragShaderSource

string [] BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._fragShaderSource

◆ _materials

List<MDL0MaterialNode> BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._materials = new List<MDL0MaterialNode>()

◆ _rendered

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._rendered = false

◆ _swapBlock

KSelSwapBlock BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._swapBlock = KSelSwapBlock.Default

◆ _texCount

int BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode._texCount = -1

◆ Ref0

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref0 = -1

◆ Ref1

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref1 = -1

◆ Ref2

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref2 = -1

◆ Ref3

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref3 = -1

◆ Ref4

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref4 = -1

◆ Ref5

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref5 = -1

◆ Ref6

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref6 = -1

◆ Ref7

sbyte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Ref7 = -1

Property Documentation

◆ IndTex0Coord

TexCoordID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex0Coord
getset
252 {
254 set
255 {
256 _swapBlock._Value16.TexCoord0 = value;
258 }
259 }
RAS1_IRef _Value16
Definition: MDL0.cs:1674
TexCoordID TexCoord0
Definition: BP.cs:521

◆ IndTex0MapID

TexMapID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex0MapID
getset
240 {
242 set
243 {
244 _swapBlock._Value16.TexMap0 = value;
246 }
247 }
TexMapID TexMap0
Definition: BP.cs:515

◆ IndTex1Coord

TexCoordID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex1Coord
getset
276 {
278 set
279 {
280 _swapBlock._Value16.TexCoord1 = value;
282 }
283 }
TexCoordID TexCoord1
Definition: BP.cs:533

◆ IndTex1MapID

TexMapID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex1MapID
getset
264 {
266 set
267 {
268 _swapBlock._Value16.TexMap1 = value;
270 }
271 }
TexMapID TexMap1
Definition: BP.cs:527

◆ IndTex2Coord

TexCoordID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex2Coord
getset
300 {
302 set
303 {
304 _swapBlock._Value16.TexCoord2 = value;
306 }
307 }
TexCoordID TexCoord2
Definition: BP.cs:545

◆ IndTex2MapID

TexMapID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex2MapID
getset
288 {
290 set
291 {
292 _swapBlock._Value16.TexMap2 = value;
294 }
295 }
TexMapID TexMap2
Definition: BP.cs:539

◆ IndTex3Coord

TexCoordID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex3Coord
getset
324 {
326 set
327 {
328 _swapBlock._Value16.TexCoord3 = value;
330 }
331 }
TexCoordID TexCoord3
Definition: BP.cs:557

◆ IndTex3MapID

TexMapID BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.IndTex3MapID
getset
312 {
314 set
315 {
316 _swapBlock._Value16.TexMap3 = value;
318 }
319 }
TexMapID TexMap3
Definition: BP.cs:551

◆ Materials

MDL0MaterialNode [] BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Materials
get

◆ Name

override string BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Name
getset
473 {
474 get => string.IsNullOrEmpty(base.Name) || base.Name.Equals("<null>", StringComparison.OrdinalIgnoreCase)
475 ? $"Shader {Index}"
476 : base.Name;
477 set => base.Name = value;
478 }

◆ ResourceFileType

override ResourceType BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.ResourceFileType
get

◆ Stages

byte BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Stages
get

◆ Swap0Alpha

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap0Alpha
getset
84 {
85 get => _swapBlock._Value03.XGA;
86 set
87 {
88 _swapBlock._Value03.XGA = value;
90 }
91 }
KSel _Value03
Definition: MDL0.cs:1622
ColorChannel XGA
Definition: BP.cs:761

◆ Swap0Blue

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap0Blue
getset
72 {
73 get => _swapBlock._Value03.XRB;
74 set
75 {
76 _swapBlock._Value03.XRB = value;
78 }
79 }
ColorChannel XRB
Definition: BP.cs:755

◆ Swap0Green

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap0Green
getset
60 {
61 get => _swapBlock._Value01.XGA;
62 set
63 {
64 _swapBlock._Value01.XGA = value;
66 }
67 }
KSel _Value01
Definition: MDL0.cs:1614

◆ Swap0Red

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap0Red
getset
48 {
49 get => _swapBlock._Value01.XRB;
50 set
51 {
52 _swapBlock._Value01.XRB = value;
54 }
55 }

◆ Swap1Alpha

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap1Alpha
getset
132 {
133 get => _swapBlock._Value07.XGA;
134 set
135 {
136 _swapBlock._Value07.XGA = value;
138 }
139 }
KSel _Value07
Definition: MDL0.cs:1638

◆ Swap1Blue

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap1Blue
getset
120 {
121 get => _swapBlock._Value07.XRB;
122 set
123 {
124 _swapBlock._Value07.XRB = value;
126 }
127 }

◆ Swap1Green

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap1Green
getset
108 {
109 get => _swapBlock._Value05.XGA;
110 set
111 {
112 _swapBlock._Value05.XGA = value;
114 }
115 }
KSel _Value05
Definition: MDL0.cs:1630

◆ Swap1Red

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap1Red
getset
96 {
97 get => _swapBlock._Value05.XRB;
98 set
99 {
100 _swapBlock._Value05.XRB = value;
102 }
103 }

◆ Swap2Alpha

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap2Alpha
getset
180 {
181 get => _swapBlock._Value11.XGA;
182 set
183 {
184 _swapBlock._Value11.XGA = value;
186 }
187 }
KSel _Value11
Definition: MDL0.cs:1654

◆ Swap2Blue

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap2Blue
getset
168 {
169 get => _swapBlock._Value11.XRB;
170 set
171 {
172 _swapBlock._Value11.XRB = value;
174 }
175 }

◆ Swap2Green

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap2Green
getset
156 {
157 get => _swapBlock._Value09.XGA;
158 set
159 {
160 _swapBlock._Value09.XGA = value;
162 }
163 }
KSel _Value09
Definition: MDL0.cs:1646

◆ Swap2Red

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap2Red
getset
144 {
145 get => _swapBlock._Value09.XRB;
146 set
147 {
148 _swapBlock._Value09.XRB = value;
150 }
151 }

◆ Swap3Alpha

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap3Alpha
getset
228 {
229 get => _swapBlock._Value15.XGA;
230 set
231 {
232 _swapBlock._Value15.XGA = value;
234 }
235 }
KSel _Value15
Definition: MDL0.cs:1670

◆ Swap3Blue

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap3Blue
getset
216 {
217 get => _swapBlock._Value15.XRB;
218 set
219 {
220 _swapBlock._Value15.XRB = value;
222 }
223 }

◆ Swap3Green

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap3Green
getset
204 {
205 get => _swapBlock._Value13.XGA;
206 set
207 {
208 _swapBlock._Value13.XGA = value;
210 }
211 }
KSel _Value13
Definition: MDL0.cs:1662

◆ Swap3Red

ColorChannel BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.Swap3Red
getset
192 {
193 get => _swapBlock._Value13.XRB;
194 set
195 {
196 _swapBlock._Value13.XRB = value;
198 }
199 }

◆ TextureRef0

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef0
getset
361 {
362 get => Ref0 != -1;
363 set
364 {
365 Ref0 = (sbyte) (value ? 0 : -1);
367 }
368 }

◆ TextureRef1

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef1
getset
374 {
375 get => Ref1 != -1;
376 set
377 {
378 Ref1 = (sbyte) (value ? 1 : -1);
380 }
381 }

◆ TextureRef2

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef2
getset
387 {
388 get => Ref2 != -1;
389 set
390 {
391 Ref2 = (sbyte) (value ? 2 : -1);
393 }
394 }

◆ TextureRef3

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef3
getset
400 {
401 get => Ref3 != -1;
402 set
403 {
404 Ref3 = (sbyte) (value ? 3 : -1);
406 }
407 }

◆ TextureRef4

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef4
getset
413 {
414 get => Ref4 != -1;
415 set
416 {
417 Ref4 = (sbyte) (value ? 4 : -1);
419 }
420 }

◆ TextureRef5

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef5
getset
426 {
427 get => Ref5 != -1;
428 set
429 {
430 Ref5 = (sbyte) (value ? 5 : -1);
432 }
433 }

◆ TextureRef6

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef6
getset
439 {
440 get => Ref6 != -1;
441 set
442 {
443 Ref6 = (sbyte) (value ? 6 : -1);
445 }
446 }

◆ TextureRef7

bool BrawlLib.SSBB.ResourceNodes.MDL0ShaderNode.TextureRef7
getset
452 {
453 get => Ref7 != -1;
454 set
455 {
456 Ref7 = (sbyte) (value ? 7 : -1);
458 }
459 }

The documentation for this class was generated from the following file: