Open1
UEFN,Verseのソースコードのクラス図の可視化
@startuml
package Devices{
creative_device --|> creative_object_interface
creative_device_base --|> creative_object
creative_object --|> creative_object_interface
creative_prop --|> creative_object
creative_object -> move_to_result
DeviceMethods -> spawn_prop_result
trigger_device --|> trigger_base_device
trigger_base_device --|> creative_device_base
vending_machine_device --|> creative_device_base
timer_device --|> creative_device_base
teleporter_device --|> creative_device_base
score_manager_device --|> creative_device_base
DeviceMethods ---> creative_prop_asset
class DeviceMethods{
+ []creative_object_interface GetCreativeObjectsWithTag(Tag:tag)
+ []creative_object_interface GetCreativeObjectsWithTags(SearchCriteria:tag_search_criteria)
+ tag_view GetTags(CreativeObject:creative_object_interface)
+ fort_playspace GetPlayspace(CreativeObject:creative_object_interface)
+ tuple(?creative_prop, spawn_prop_result) SpawnProp(Asset:creative_prop_asset,Transform:transform)
}
class creative_device {
+ void OnBegin()
+ void OnEnd()
+ transform GetTransform()
+ void TeleportTo(Position:vector3, Rotation:rotation)
+ move_to_result MoveTo(Position:vector3, Rotation:rotation, OverTime:float)
+ void Show()
+ void Hide()
}
class creative_device_base {
}
class creative_device_asset {
}
interface creative_object_interface {
}
class creative_object {
+ transform GetTransform()
+ void TeleportTo(Position:vector3, Rotation:rotation)
+ move_to_result MoveTo(Position:vector3, Rotation:rotation, OverTime:float)
}
class creative_prop {
+ void Dispose()
+ void IsValid()
+ void SetMesh(Mesh:mesh)
+ void SetMaterial(Material:material, ?Index:int)
+ void Show()
+ void Hide()
}
class creative_prop_asset {
}
enum spawn_prop_result {
Ok,
UnknownError,
InvalidSpawnPoint,
SpawnPointOutOfBounds,
InvalidAsset,
TooManyProps
}
enum move_to_result {
DestinationReached,
WillNotReachDestination
}
class trigger_device{
}
abstract class trigger_base_device{
}
}
package Game{
creative_object_interface --|> positional
interface positional{
+ transform GetTransform()
}
}
package Verse{
creative_prop --|> invalidatable
invalidatable --|> disposable
interface invalidatable{
+ void IsValid()
}
interface disposable{
+ void Dispose()
}
}
package Simulation {
package Tags{
DeviceMethods -> tag
abstract class tag{
}
interface tag_view{
+ void Has(TagToCheck:tag)
+ void HasAny(InTags:[]tag)
+ void HasWall(InTags:[]tag)
}
enum tag_search_sort_type {
Unsorted
Sorted
}
class tag_search_criteria{
+ []tag RequiredTags()
+ []tag PreferredTags()
+ []tag ExclusionTags()
+ tag_search_sort_type SortType()
}
}
player --|> agent
class agent{
}
class player{
}
}
package Playspaces{
DeviceMethods -> fort_playspace
fort_playspace -> player
interface fort_playspace {
+[]player GetPlayers()
+ fort_team_collection GetTeamCollection()
+ listenable(player) PlayerAddedEvent
+ listenable(player) PlayerRemovedEvent
}
}
original_verse_device --|> creative_device