2021-07-04 23:02:45 +00:00
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include <libreborn/libreborn.h>
|
2021-09-12 03:18:12 +00:00
|
|
|
#include <symbols/minecraft.h>
|
2022-03-07 01:07:49 +00:00
|
|
|
#include <media-layer/core.h>
|
2021-07-04 23:02:45 +00:00
|
|
|
|
2022-06-25 21:30:08 +00:00
|
|
|
#include <mods/feature/feature.h>
|
|
|
|
#include <mods/init/init.h>
|
|
|
|
#include "input-internal.h"
|
|
|
|
#include <mods/input/input.h>
|
2021-07-04 23:02:45 +00:00
|
|
|
|
|
|
|
// Run Functions On Input Tick
|
|
|
|
static std::vector<input_tick_function_t> &get_input_tick_functions() {
|
|
|
|
static std::vector<input_tick_function_t> functions;
|
|
|
|
return functions;
|
|
|
|
}
|
|
|
|
void input_run_on_tick(input_tick_function_t function) {
|
|
|
|
get_input_tick_functions().push_back(function);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Handle Input Fixes
|
2024-01-06 11:30:23 +00:00
|
|
|
static void Minecraft_tickInput_injection(Minecraft *minecraft) {
|
2021-07-04 23:02:45 +00:00
|
|
|
// Call Original Method
|
|
|
|
(*Minecraft_tickInput)(minecraft);
|
|
|
|
|
|
|
|
// Run Input Tick Functions
|
|
|
|
for (input_tick_function_t function : get_input_tick_functions()) {
|
|
|
|
(*function)(minecraft);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Init
|
|
|
|
void init_input() {
|
|
|
|
// Miscellaneous
|
|
|
|
_init_misc();
|
|
|
|
|
|
|
|
// Toggleable Options
|
|
|
|
_init_toggle();
|
|
|
|
|
|
|
|
// Item Dropping
|
|
|
|
_init_drop();
|
|
|
|
|
|
|
|
// Enable Bow & Arrow Fix
|
|
|
|
_init_bow();
|
|
|
|
|
|
|
|
// Loop
|
|
|
|
overwrite_calls((void *) Minecraft_tickInput, (void *) Minecraft_tickInput_injection);
|
|
|
|
|
|
|
|
// Allow Attacking Mobs
|
|
|
|
_init_attack();
|
2022-03-07 01:07:49 +00:00
|
|
|
|
2022-10-07 04:06:50 +00:00
|
|
|
// Allow Opening Crafting With Controller
|
|
|
|
_init_crafting();
|
|
|
|
|
2022-03-07 01:07:49 +00:00
|
|
|
// Disable Raw Mouse Motion
|
2022-04-10 00:01:16 +00:00
|
|
|
if (feature_has("Disable Raw Mouse Motion (Not Recommended)", server_disabled)) {
|
2022-03-07 01:07:49 +00:00
|
|
|
media_set_raw_mouse_motion_enabled(0);
|
|
|
|
}
|
2021-07-04 23:02:45 +00:00
|
|
|
}
|