45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
@startuml
|
|
class SocketPoint {
|
|
- socketType : SocketType
|
|
- socketRadius : float = 0.1f
|
|
- socketNormal : Vector3
|
|
- acceptableTypes : List<SocketType>
|
|
- radiusTolerance : float = 0.05f
|
|
- visualIndicator : GameObject
|
|
- defaultColor : Color
|
|
- activeColor : Color
|
|
- compatibleColor : Color
|
|
- incompatibleColor : Color
|
|
- canHoldJoint : bool = false
|
|
- occupyingObject : GameObject
|
|
- isOccupied : bool = false
|
|
- holdedJoint : GameObject
|
|
- isJointOccupied : bool = false
|
|
- CanAccept(otherSocket:ISocket) : bool
|
|
+ CanAccept(otherSocket:ISocket, isJoint:bool) : bool
|
|
+ GetNormal() : Vector3
|
|
+ Highlight(state:HighlightState) : void
|
|
- Update() : void
|
|
+ GetTransform() : Transform
|
|
+ GetSocketType() : SocketType
|
|
+ GetSocketRadius() : float
|
|
+ SetSocketRadius(radius:float) : void
|
|
+ IsOccupied() : bool
|
|
+ IsJointOccupied() : bool
|
|
+ GetOccupyingObject() : GameObject
|
|
+ GetJointObject() : GameObject
|
|
+ SetOccupied(obj:GameObject) : void
|
|
+ SetJointOccupied(jointObject:GameObject) : void
|
|
+ ReleaseJoint() : void
|
|
+ Release() : void
|
|
}
|
|
enum HighlightState {
|
|
Default,
|
|
Active,
|
|
Compatible,
|
|
Incompatible,
|
|
}
|
|
MonoBehaviour <|-- SocketPoint
|
|
ISocket <|-- SocketPoint
|
|
@enduml
|