@@ -67,13 +67,15 @@ export class FlatWorld {
6767function createFakePlayer (
6868 version : string ,
6969 mcData : ReturnType < typeof registry > ,
70+ world : Bot [ "world" ] ,
7071 pos : Vec3 ,
7172 groundLevel : number ,
72- ) {
73+ ) : any {
7374 const onGround = pos . y === groundLevel ;
7475 const control : Partial < Record < ControlState , boolean > > = { } ;
7576
7677 return {
78+ world : world ,
7779 entity : {
7880 position : pos ,
7981 velocity : new Vec3 ( 0 , onGround ? - 0.08 : 0 , 0 ) ,
@@ -96,6 +98,11 @@ function createFakePlayer(
9698 food : 20 ,
9799 game : { gameMode : "survival" , dimension : "overworld" } ,
98100 registry : mcData ,
101+
102+ blockAt : ( point : Vec3 , extraInfos ?: any ) => {
103+ return world . getBlock ( point )
104+ } ,
105+
99106 setControlState : ( name : ControlState , value : boolean ) => {
100107 control [ name ] = value ;
101108 } ,
@@ -109,7 +116,7 @@ export function createFlatWorld(version: string, floorY: number) {
109116 return new FlatWorld ( mcData . blocksByName , Block , floorY ) ;
110117}
111118
112- export function createPlayerRig ( options : {
119+ export function createPlayerRig ( world : Bot [ "world" ] , options : {
113120 version : string ;
114121 position : Vec3 ;
115122 groundLevel ?: number ;
@@ -118,7 +125,7 @@ export function createPlayerRig(options: {
118125 const groundLevel = options . groundLevel ?? position . y ;
119126 const { mcData } = loadMcData ( version ) ;
120127
121- const fakePlayer : any = createFakePlayer ( version , mcData , position . clone ( ) , groundLevel ) ;
128+ const fakePlayer : any = createFakePlayer ( version , mcData , world , position . clone ( ) , groundLevel ) ;
122129 fakePlayer . entity = applyMdToNewEntity ( EPhysicsCtx , mcData . entitiesByName . player , fakePlayer . entity ) ;
123130
124131 const physics = new BotcraftPhysics ( mcData ) ;
0 commit comments