Type:IField`1: Difference between revisions

From Resonite Wiki
Added many, many, many links. Some spell checking.
m chore: category caps
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Stub}}
[[File:Inspector With ValueField And ReferenceField.webp|thumb|right|alt=An inspector containing a ValueField<int> and ReferenceField<Slot>.|All "fields" in an inspector are themselves an IField. In this image, the <code>persistent</code>, <code>UpdateOrder</code>, <code>Enabled</code>, and <code>Value</code> fields are of type [[Type:Sync`1|Sync<T>]], which implements IField. <code>Reference</code> is a [[Type:SyncRef`1|SyncRef<Slot>]], which is an IField<RefID>.]]


An IField<nowiki><T></nowiki> is an [[Interface_Type|Interface Type]] used to reference a field of type T which stores a [[Type:Value|Value]], [[Reference_Type|Reference]], [[Type:Type|Type]], or [[Type:Delegate|Delegate]].
The '''IField&lt;T&gt;''' type is an [[Interface Type|Interface Type]] that designates the object it is applied to as something that is a field of type <code>T</code>. This includes anything that is exposed within the [[Scene Inspector]] UI.
 
As with IValue&lt;T&gt;, IField&lt;T&gt; can in theory hold any type, but is only useful with [[value types]] in the FrooxEngine data model.
 
In addition to every feature that [[Type:IValue|IValue&lt;T&gt;]] implements, this interface makes things implementing it:
 
* Have the ability to be [[Drive|driven]].
* Synced by default, requiring a drive to become local.
 
== Interfaces Implemented ==
 
* [[Type:ISyncMember|ISyncMember]]
** [[Type:IWorldElement|IWorldElement]]
** [[Type:ILinkable|ILinkable]]
* [[Type:IValue`1|IValue&lt;T&gt;]]
** [[Type:IChangeable|IChangeable]]
** [[Type:IInitializable|IInitializable]]
 
== Types Implementing IField&lt;T&gt; ==
 
* [[Type:SyncField`1|SyncField&lt;T&gt;]]
* [[Type:RawOutput`1|RawOutput&lt;T&gt;]]


Using the [[ProtoFlux:To_String|ToString Object]] node on this will show you the object stored inside.
[[Category:Type]]
[[Category:Type]]
[[Category:Reference types]]

Latest revision as of 03:45, 10 June 2025

An inspector containing a ValueField<int> and ReferenceField<Slot>.
All "fields" in an inspector are themselves an IField. In this image, the persistent, UpdateOrder, Enabled, and Value fields are of type Sync<T>, which implements IField. Reference is a SyncRef<Slot>, which is an IField<RefID>.

The IField<T> type is an Interface Type that designates the object it is applied to as something that is a field of type T. This includes anything that is exposed within the Scene Inspector UI.

As with IValue<T>, IField<T> can in theory hold any type, but is only useful with value types in the FrooxEngine data model.

In addition to every feature that IValue<T> implements, this interface makes things implementing it:

  • Have the ability to be driven.
  • Synced by default, requiring a drive to become local.

Interfaces Implemented

Types Implementing IField<T>