first_person_player: finished first pass of movement and input
This commit is contained in:
@ -29,7 +29,16 @@ class Modifier {
|
||||
editor_tick(delta: Num) : None {}
|
||||
|
||||
get(entity: Entity) : Data { Mod.get(entity, Modifier.id) }
|
||||
each(fn: Fn) {
|
||||
|
||||
list() : List {
|
||||
var list = []
|
||||
each {|entity: Entity, unused|
|
||||
list.add(entity)
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
each(fn: Fn) : None {
|
||||
var count = attached_count
|
||||
for(idx in 0 ... count) {
|
||||
var inst = Block.get_at(_block, idx)
|
||||
@ -38,7 +47,8 @@ class Modifier {
|
||||
fn.call(entity, data)
|
||||
}
|
||||
}
|
||||
each(start: Num, count: Num, fn: Fn) {
|
||||
|
||||
each(start: Num, count: Num, fn: Fn) : None {
|
||||
for(idx in start ... start + count) {
|
||||
var inst = Block.get_at(_block, idx)
|
||||
var data = Block.instance(_block, inst)
|
||||
@ -58,6 +68,7 @@ class API {
|
||||
static system(entity: Entity) : System { World.get_system(Entity.get_world(entity), Modifier.id) }
|
||||
static count(world: World) : Num { system_in(world).attached_count }
|
||||
static each(world: World, fn: Fn) : System { system_in(world).each(fn) }
|
||||
static with(world: World) : List { system_in(world).list() }
|
||||
static get : APIGet { APIGetter }
|
||||
static set : APISet { APISetter }
|
||||
static connect : APIWireConnect { APIWireConnects }
|
||||
@ -65,6 +76,24 @@ class API {
|
||||
}
|
||||
|
||||
class Fields {
|
||||
static acceleration : String { "acceleration" }
|
||||
static decelleration : String { "decelleration" }
|
||||
static speed_run : String { "speed_run" }
|
||||
static speed_walk : String { "speed_walk" }
|
||||
static ground_check_dist : String { "ground_check_dist" }
|
||||
static jump_impulse : String { "jump_impulse" }
|
||||
static jump_grace_time : String { "jump_grace_time" }
|
||||
static event_forward : String { "event_forward" }
|
||||
static event_backward : String { "event_backward" }
|
||||
static event_strafe_left : String { "event_strafe_left" }
|
||||
static event_strafe_right : String { "event_strafe_right" }
|
||||
static event_sprint : String { "event_sprint" }
|
||||
static event_jump : String { "event_jump" }
|
||||
static input_target : String { "input_target" }
|
||||
static target_speed : String { "target_speed" }
|
||||
static time_since_grounded : String { "time_since_grounded" }
|
||||
static is_grounded : String { "is_grounded" }
|
||||
static movement_active : String { "movement_active" }
|
||||
}
|
||||
|
||||
import "luxe: world/states" for AState, States, Op
|
||||
@ -84,10 +113,46 @@ class APIWireConnect {
|
||||
|
||||
class APIGet {
|
||||
construct new() {}
|
||||
acceleration(entity: Entity) : Num { Modifier.get(entity).acceleration }
|
||||
decelleration(entity: Entity) : Num { Modifier.get(entity).decelleration }
|
||||
speed_run(entity: Entity) : Num { Modifier.get(entity).speed_run }
|
||||
speed_walk(entity: Entity) : Num { Modifier.get(entity).speed_walk }
|
||||
ground_check_dist(entity: Entity) : Num { Modifier.get(entity).ground_check_dist }
|
||||
jump_impulse(entity: Entity) : Num { Modifier.get(entity).jump_impulse }
|
||||
jump_grace_time(entity: Entity) : Num { Modifier.get(entity).jump_grace_time }
|
||||
event_forward(entity: Entity) : String { Modifier.get(entity).event_forward }
|
||||
event_backward(entity: Entity) : String { Modifier.get(entity).event_backward }
|
||||
event_strafe_left(entity: Entity) : String { Modifier.get(entity).event_strafe_left }
|
||||
event_strafe_right(entity: Entity) : String { Modifier.get(entity).event_strafe_right }
|
||||
event_sprint(entity: Entity) : String { Modifier.get(entity).event_sprint }
|
||||
event_jump(entity: Entity) : String { Modifier.get(entity).event_jump }
|
||||
input_target(entity: Entity) : Float3 { Modifier.get(entity).input_target }
|
||||
target_speed(entity: Entity) : Num { Modifier.get(entity).target_speed }
|
||||
time_since_grounded(entity: Entity) : Num { Modifier.get(entity).time_since_grounded }
|
||||
is_grounded(entity: Entity) : Bool { Modifier.get(entity).is_grounded }
|
||||
movement_active(entity: Entity) : Bool { Modifier.get(entity).movement_active }
|
||||
}
|
||||
|
||||
class APISet {
|
||||
construct new() {}
|
||||
acceleration(entity: Entity, value: Num) { Modifier.get(entity).acceleration = value }
|
||||
decelleration(entity: Entity, value: Num) { Modifier.get(entity).decelleration = value }
|
||||
speed_run(entity: Entity, value: Num) { Modifier.get(entity).speed_run = value }
|
||||
speed_walk(entity: Entity, value: Num) { Modifier.get(entity).speed_walk = value }
|
||||
ground_check_dist(entity: Entity, value: Num) { Modifier.get(entity).ground_check_dist = value }
|
||||
jump_impulse(entity: Entity, value: Num) { Modifier.get(entity).jump_impulse = value }
|
||||
jump_grace_time(entity: Entity, value: Num) { Modifier.get(entity).jump_grace_time = value }
|
||||
event_forward(entity: Entity, value: String) { Modifier.get(entity).event_forward = value }
|
||||
event_backward(entity: Entity, value: String) { Modifier.get(entity).event_backward = value }
|
||||
event_strafe_left(entity: Entity, value: String) { Modifier.get(entity).event_strafe_left = value }
|
||||
event_strafe_right(entity: Entity, value: String) { Modifier.get(entity).event_strafe_right = value }
|
||||
event_sprint(entity: Entity, value: String) { Modifier.get(entity).event_sprint = value }
|
||||
event_jump(entity: Entity, value: String) { Modifier.get(entity).event_jump = value }
|
||||
input_target(entity: Entity, value: Float3) { Modifier.get(entity).input_target = value }
|
||||
target_speed(entity: Entity, value: Num) { Modifier.get(entity).target_speed = value }
|
||||
time_since_grounded(entity: Entity, value: Num) { Modifier.get(entity).time_since_grounded = value }
|
||||
is_grounded(entity: Entity, value: Bool) { Modifier.get(entity).is_grounded = value }
|
||||
movement_active(entity: Entity, value: Bool) { Modifier.get(entity).movement_active = value }
|
||||
}
|
||||
|
||||
var APIGetter = APIGet.new()
|
||||
|
||||
Reference in New Issue
Block a user