Difference between revisions of "GetMiscComponents - MiscObject"

From the Fallout4 CreationKit Wiki
Jump to navigation Jump to search
imported>Qazaaq
(Extended the papyrus example. Thanks @JigsJosh for getting it started.)
imported>Qazaaq
(code example)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Template:Incomplete Article}}
'''F4SE Member of:''' [[MiscObject Script]]
'''F4SE Member of:''' [[MiscObject Script]]
{{Template:Papyrus:RequiredF4SE|version=0.4.2}}
{{Template:Papyrus:RequiredF4SE|version=0.4.2}}


Gets an array of [[MiscComponent Struct - MiscObject|MiscComponent]] for this [[MiscItem]].
Gets the ''[[Template:Editor:Property:Component Data|Component Data]]'' for this [[MiscItem]] as an array of [[MiscComponent Struct - MiscObject|MiscComponent]] structures.


== Syntax ==
== Syntax ==
Line 18: Line 17:
== Examples ==
== Examples ==
<source lang="papyrus">
<source lang="papyrus">
; Count miscellaneous components
; Count how many different types of components are used
int count = Item.GetMiscComponents().Length
MiscObject DeskFanOffice01
Debug.Trace(Item + " has " + count + " components.")
 
int count = DeskFanOffice01.GetMiscComponents().Length
If (count == 1)
    Debug.Trace(DeskFanOffice01 + " has one type of component.")
ElseIf (count > 1)
    Debug.Trace(DeskFanOffice01 + " has "+count+" types of component.")
Else
    Debug.Trace(DeskFanOffice01 + " has no components.")
EndIf
</source>
</source>




<source lang="papyrus">
<source lang="papyrus">
{For each miscellaneous component}
Scriptname Example extends ScriptObject
MiscObject:MiscComponent[] components = Item.GetMiscComponents()
import MiscObject
If (components)
 
    int index = 0
MiscObject Property DeskFanOffice01 Auto Const Mandatory
    While (index < components.Length)
 
        Debug.Trace(Item + " uses " + components[index].Count + " of the " + components[index].Object + " component.")
Event OnInit()
        index += 1
    {For each miscellaneous component}
    EndWhile
    MiscComponent[] components = DeskFanOffice01.GetMiscComponents()
Else
    If (components)
    Debug.Trace(Item + " has no components.")
        int index = 0
EndIf
        While (index < components.Length)
            Debug.Trace("("+index+" of "+components.Length+") There is "+components[index].Count+" of the '"+components[index].Object+"' component")
            index += 1
        EndWhile
    Else
        Debug.Trace(DeskFanOffice01+" has no components.")
    EndIf
EndEvent
</source>
</source>
== Notes ==
*Do not use these functions on [[Constructible Object]] as they will not work. Papyrus defines [[ConstructibleObject Script]] as extends [[MiscObject Script]] when this is not remotely true internally and F4SE does not support this kind of conversion in code so these are separate functions.


== See Also ==
== See Also ==
Line 42: Line 59:
*[[Component]]
*[[Component]]
*[[MiscComponent Struct - MiscObject]]
*[[MiscComponent Struct - MiscObject]]
*[[SetMiscComponents - MiscObject]]





Latest revision as of 19:29, 2 December 2018

F4SE Member of: MiscObject Script
Requires F4SE version 0.4.2 or higher.

Gets the Component Data for this MiscItem as an array of MiscComponent structures.

Syntax[edit | edit source]

MiscComponent[] Function GetMiscComponents() Native

Parameters[edit | edit source]

  • None

Return Value[edit | edit source]

An array of MiscComponent structures.

Examples[edit | edit source]

; Count how many different types of components are used
MiscObject DeskFanOffice01

int count = DeskFanOffice01.GetMiscComponents().Length
If (count == 1)
    Debug.Trace(DeskFanOffice01 + " has one type of component.")
ElseIf (count > 1)
    Debug.Trace(DeskFanOffice01 + " has "+count+" types of component.")
Else
    Debug.Trace(DeskFanOffice01 + " has no components.")
EndIf


Scriptname Example extends ScriptObject
import MiscObject

MiscObject Property DeskFanOffice01 Auto Const Mandatory

Event OnInit()
    {For each miscellaneous component}
    MiscComponent[] components = DeskFanOffice01.GetMiscComponents()
    If (components)
        int index = 0
        While (index < components.Length)
            Debug.Trace("("+index+" of "+components.Length+") There is "+components[index].Count+" of the '"+components[index].Object+"' component")
            index += 1
        EndWhile
    Else
        Debug.Trace(DeskFanOffice01+" has no components.")
    EndIf
EndEvent

Notes[edit | edit source]

See Also[edit | edit source]