diff --git a/symbols/CMakeLists.txt b/symbols/CMakeLists.txt index 13a127df4d..53b2aff12b 100644 --- a/symbols/CMakeLists.txt +++ b/symbols/CMakeLists.txt @@ -29,6 +29,7 @@ set(SRC src/network/packet/ChatPacket.def src/entity/EntityFactory.def src/entity/PrimedTnt.def + src/entity/CameraEntity.def src/entity/EntityRenderer.def src/entity/Sheep.def src/entity/PathfinderMob.def @@ -61,6 +62,7 @@ set(SRC src/level/Biome.def src/level/ChunkSource.def src/level/ChunkCache.def + src/level/LightLayer.def src/level/Level.def src/level/LevelRenderer.def src/level/LevelStorageSource.def diff --git a/symbols/src/entity/CameraEntity.def b/symbols/src/entity/CameraEntity.def new file mode 100644 index 0000000000..6f560af77f --- /dev/null +++ b/symbols/src/entity/CameraEntity.def @@ -0,0 +1,7 @@ +extends Entity; + +size 0xbe4; +vtable 0x108898; + +// -1 or an entity id +property int tracking_id = 0xbe0; \ No newline at end of file diff --git a/symbols/src/entity/Entity.def b/symbols/src/entity/Entity.def index def2f3b9a9..e9cb2944f1 100644 --- a/symbols/src/entity/Entity.def +++ b/symbols/src/entity/Entity.def @@ -18,5 +18,7 @@ property float pitch = 0x44; property float old_yaw = 0x48; property float old_pitch = 0x4c; property float head_height = 0x68; +property float hitbox_width = 0x6c; +property float hitbox_height = 0x70; property bool on_ground = 0xb2; property bool freeze_physics = 0xb9; diff --git a/symbols/src/entity/EntityFactory.def b/symbols/src/entity/EntityFactory.def index 2430dcf645..b32cfbc788 100644 --- a/symbols/src/entity/EntityFactory.def +++ b/symbols/src/entity/EntityFactory.def @@ -1 +1,2 @@ +// https://mcpirevival.miraheze.org/wiki/Minecraft:_Pi_Edition_Complete_Entity_List shows what id should be static-method Entity *CreateEntity(int id, Level *level) = 0x7d794; diff --git a/symbols/src/entity/Mob.def b/symbols/src/entity/Mob.def index 2555e94e39..c540f84966 100644 --- a/symbols/src/entity/Mob.def +++ b/symbols/src/entity/Mob.def @@ -2,6 +2,8 @@ extends Entity; vtable 0x10ad60; +constructor (Level *level) = 0x81b80; + virtual-method void actuallyHurt(int damage) = 0x16c; virtual-method void die(Entity *cause) = 0x130; virtual-method ItemInstance *getCarriedItem() = 0x1ac; diff --git a/symbols/src/game/Minecraft.def b/symbols/src/game/Minecraft.def index 18303f7c4f..b6440d884f 100644 --- a/symbols/src/game/Minecraft.def +++ b/symbols/src/game/Minecraft.def @@ -1,12 +1,10 @@ vtable 0x102700; -virtual-method void init() = 0x38; method void tickInput() = 0x15ffc; method void setIsCreativeMode(int is_creative) = 0x16ec4; method int isTouchscreen() = 0x1639c; method void setScreen(Screen *screen) = 0x15d6c; method void tick(int param_1, int param_2) = 0x16934; -virtual-method void update() = 0x24; method void hostMultiplayer(int port) = 0x16664; method char *getProgressMessage() = 0x16e58; method uint isLevelGenerated() = 0x16e6c; @@ -14,30 +12,34 @@ method bool isCreativeMode() = 0x17270; method void releaseMouse() = 0x15d30; method void grabMouse() = 0x15d10; method void leaveGame(bool save_remote_level) = 0x15ea0; -virtual-method int handleBack(bool do_nothing) = 0x34; method uchar *getCreator() = 0x17538; method LevelStorageSource *getLevelSource() = 0x16e84; method void handleMouseDown(int param_1, bool can_destroy) = 0x1584c; method void handleBuildAction(uint *build_action_intention) = 0x15920; -virtual-method void selectLevel(std::string *level_dir, std::string *level_name, LevelSettings *settings) = 0x40; method void joinMultiplayer(PingedCompatibleServer *server) = 0x165f4; +virtual-method void update() = 0x24; +virtual-method int handleBack(bool do_nothing) = 0x34; +virtual-method void init() = 0x38; +virtual-method void selectLevel(std::string *level_dir, std::string *level_name, LevelSettings *settings) = 0x40; + property int screen_width = 0x20; property int screen_height = 0x24; -property NetEventCallback *network_handler = 0x174; -property RakNetInstance *rak_net_instance = 0x170; -property Level *level = 0x188; -property Textures *textures = 0x164; -property GameMode *game_mode = 0x160; -property LocalPlayer *player = 0x18c; property Options options = 0x3c; +property LevelRenderer *levelrenderer = 0x150; +property GameMode *game_mode = 0x160; +property Textures *textures = 0x164; +property RakNetInstance *rak_net_instance = 0x170; +property NetEventCallback *network_handler = 0x174; +property Level *level = 0x188; +property Mob *camera = 0x194; +property Gui gui = 0x198; +property LocalPlayer *player = 0x18c; +property Screen *screen = 0xc10; property HitResult hit_result = 0xc38; property int progress = 0xc60; -property CommandServer *command_server = 0xcc0; -property Screen *screen = 0xc10; -property Gui gui = 0x198; -property Mob *pov = 0x150; property PerfRenderer *perf_renderer = 0xcbc; +property CommandServer *command_server = 0xcc0; // Smooth Lighting static-property bool useAmbientOcclusion = 0x136b90; diff --git a/symbols/src/level/Level.def b/symbols/src/level/Level.def index 202af9cbaf..852ad54fb6 100644 --- a/symbols/src/level/Level.def +++ b/symbols/src/level/Level.def @@ -4,10 +4,12 @@ vtable 0x108de0; method void saveLevelData() = 0xa2e94; method void setTileAndData(int x, int y, int z, int id, int data) = 0xa38b4; +method void setTileAndDataNoUpdate(int x, int y, int z, int id, int data) = 0xa33d0; method HitResult clip(uchar *param_1, uchar *param_2, bool clip_liquids, bool param_3) = 0xa3db0; method void addParticle(std::string *particle, float x, float y, float z, float deltaX, float deltaY, float deltaZ, int count) = 0xa449c; method Entity *getEntity(int id) = 0xa45a4; method bool addEntity(Entity *entity) = 0xa7cbc; +method int getBrightness2(LightLayer *layer, int x, int y, int z) = 0xa3c70; virtual-method void tick() = 0x28; virtual-method void updateSleepingPlayerList() = 0x2c; diff --git a/symbols/src/level/LightLayer.def b/symbols/src/level/LightLayer.def new file mode 100644 index 0000000000..0368ab1c0c --- /dev/null +++ b/symbols/src/level/LightLayer.def @@ -0,0 +1,2 @@ +static-property LightLayer *block = 0x17be94; +static-property LightLayer *sky = 0x17be90; diff --git a/symbols/src/misc/Tesselator.def b/symbols/src/misc/Tesselator.def index af9c4f1184..b8f8c3abea 100644 --- a/symbols/src/misc/Tesselator.def +++ b/symbols/src/misc/Tesselator.def @@ -2,3 +2,5 @@ method void begin(int mode) = 0x529d4; method void colorABGR(int color) = 0x52b54; method void color(int r, int g, int b, int a) = 0x52a48; method void vertexUV(float x, float y, float z, float u, float v) = 0x52d40; + +static-property Tesselator *instance = 0x137538;