Fix things

This commit is contained in:
Bigjango13 2024-01-28 19:31:18 -05:00
parent 3b59606151
commit c93350a44c
5 changed files with 17 additions and 9 deletions

View File

@ -0,0 +1 @@
bool buckets_enabled();

View File

@ -133,13 +133,14 @@ static int BucketItem_getUseDuration(__attribute__((unused)) FoodItem *item, Ite
return 0; return 0;
} }
static void BucketItem_useTimeDepleted(FoodItem *item, uchar *param_1, ItemInstance *item_instance, Level *level, Player *player) { static ItemInstance BucketItem_useTimeDepleted(FoodItem *item, ItemInstance *item_instance, Level *level, Player *player) {
if (item_instance->auxiliary == 1) { if (item_instance->auxiliary == 1) {
(*FoodItem_useTimeDepleted_vtable_addr)(item, param_1, item_instance, level, player); *item_instance = FoodItem_useTimeDepleted_non_virtual(item, item_instance, level, player);
// Set it to a empty bucket // Set it to a empty bucket
item_instance->auxiliary = 0; item_instance->auxiliary = 0;
item_instance->count = 1; item_instance->count = 1;
} }
return *item_instance;
} }
static int BucketItem_getUseAnimation(__attribute__((unused)) FoodItem *item) { static int BucketItem_getUseAnimation(__attribute__((unused)) FoodItem *item) {
@ -349,9 +350,14 @@ static void Language_injection(__attribute__((unused)) void *null) {
} }
// Init // Init
bool buckets_enabled() {
static bool ret = feature_has("Add Buckets", server_enabled);
return ret;
}
void init_bucket() { void init_bucket() {
// Add Buckets // Add Buckets
if (feature_has("Add Buckets", server_enabled)) { if (buckets_enabled()) {
// Add Items // Add Items
misc_run_on_items_setup(Item_initItems_injection); misc_run_on_items_setup(Item_initItems_injection);
// Change Max Stack Size Based On Auxiliary // Change Max Stack Size Based On Auxiliary

View File

@ -4,8 +4,9 @@
#include <mods/feature/feature.h> #include <mods/feature/feature.h>
#include <mods/init/init.h> #include <mods/init/init.h>
#include <mods/misc/misc.h> #include <mods/misc/misc.h>
#include <mods/bucket/bucket.h>
Tile *cake = NULL; static Tile *cake = NULL;
#define CAKE_LEN 0.0625F #define CAKE_LEN 0.0625F
@ -166,7 +167,7 @@ static void Inventory_setupDefault_FillingContainer_addItem_call_injection(Filli
cake_instance->count = 255; cake_instance->count = 255;
cake_instance->auxiliary = 0; cake_instance->auxiliary = 0;
cake_instance->id = 92; cake_instance->id = 92;
(*FillingContainer_addItem)(filling_container, cake_instance); FillingContainer_addItem(filling_container, cake_instance);
} }
// Recipe (only when buckets are enabled) // Recipe (only when buckets are enabled)
@ -234,7 +235,7 @@ void init_cake() {
if (feature_has("Add Cake", server_enabled)) { if (feature_has("Add Cake", server_enabled)) {
misc_run_on_tiles_setup(Tile_initTiles_injection); misc_run_on_tiles_setup(Tile_initTiles_injection);
misc_run_on_creative_inventory_setup(Inventory_setupDefault_FillingContainer_addItem_call_injection); misc_run_on_creative_inventory_setup(Inventory_setupDefault_FillingContainer_addItem_call_injection);
if (feature_has("Add Buckets", server_enabled)) { if (buckets_enabled()) {
// The recipe needs milk buckets // The recipe needs milk buckets
misc_run_on_recipes_setup(Recipes_injection); misc_run_on_recipes_setup(Recipes_injection);
} }

View File

@ -1,5 +1,6 @@
extends Screen;
method void craftSelectedItem() = 0x2e0e4; method void craftSelectedItem() = 0x2e0e4;
method void recheckRecipes() = 0x2dc98; method void recheckRecipes() = 0x2dc98;
property Minecraft *minecraft = 0x14;
property CItem *item = 0x74; property CItem *item = 0x74;

View File

@ -11,8 +11,7 @@ virtual-method void setIcon(int texture_x, int texture_y) = 0x18;
virtual-method int useOn(ItemInstance *item_instance, Player *player, Level *level, int x, int y, int z, int hit_side, float hit_x, float hit_y, float hit_z) = 0x20; virtual-method int useOn(ItemInstance *item_instance, Player *player, Level *level, int x, int y, int z, int hit_side, float hit_x, float hit_y, float hit_z) = 0x20;
// Normally returns 0 // Normally returns 0
virtual-method int getUseDuration(ItemInstance *item_instance) = 0x24; virtual-method int getUseDuration(ItemInstance *item_instance) = 0x24;
// I don't know much about param_1, it might be some partially initialized ItemInstance* virtual-method ItemInstance useTimeDepleted(ItemInstance *item_instance, Level *level, Player *player) = 0x28;
virtual-method void useTimeDepleted(uchar *param_1, ItemInstance *item_instance, Level *level, Player *player) = 0x28;
virtual-method int getDestorySpeed(ItemInstance *item_instance, Tile *tile) = 0x2c; virtual-method int getDestorySpeed(ItemInstance *item_instance, Tile *tile) = 0x2c;
virtual-method ItemInstance *use(ItemInstance *item_instance, Level *level, Player *player) = 0x30; virtual-method ItemInstance *use(ItemInstance *item_instance, Level *level, Player *player) = 0x30;
virtual-method bool mineBlock(ItemInstance *instance, int tile_id, int x, int y, int z) = 0x48; virtual-method bool mineBlock(ItemInstance *instance, int tile_id, int x, int y, int z) = 0x48;