/
Floor.swift
37 lines (31 loc) · 1.07 KB
/
Floor.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//
// Floor.swift
// star-dash
//
// Created by Ho Jun Hao on 16/3/24.
//
import Foundation
class Floor: Entity {
let id: EntityId
private let position: CGPoint
init(id: EntityId, position: CGPoint) {
self.id = id
self.position = position
}
init(position: CGPoint) {
self.id = UUID()
self.position = position
}
func setUpAndAdd(to: EntityManager) {
let positionComponent = PositionComponent(entityId: self.id, position: self.position, rotation: .zero)
let physicsComponent = PhysicsComponent(entityId: self.id, size: PhysicsConstants.Dimensions.floor)
physicsComponent.restitution = 0.0
physicsComponent.isDynamic = false
physicsComponent.categoryBitMask = PhysicsConstants.CollisionCategory.floor
physicsComponent.contactTestMask = PhysicsConstants.ContactMask.floor
physicsComponent.collisionBitMask = PhysicsConstants.CollisionMask.floor
to.add(entity: self)
to.add(component: positionComponent)
to.add(component: physicsComponent)
}
}