| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #pragma once
- #include <Array.h>
- #include <Vec3.h>
- #include "Inventory.h"
- #include "ItemFilter.h"
- #include "ItemSlot.h"
- #include "ItemStack.h"
- #include "Recipie.h"
- class CraftingStorage
- {
- public:
- virtual bool isAllAvailable(Framework::RCArray<RecipieInput>& inputs) = 0;
- virtual bool hasFreeSpace(const Item* zItem, int amount) = 0;
- virtual void consume(Framework::RCArray<RecipieInput>& inputs) = 0;
- virtual void addCraftingResult(ItemStack* zStack) = 0;
- virtual Framework::Vec3<float> getStorageLocation() const = 0;
- virtual int getStorageDimensionId() const = 0;
- };
- class ShapedCraftingStorage : public CraftingStorage
- {
- public:
- virtual bool isAllAvailable(
- Framework::RCArray<RecipieInput>& inputs, int width, int height)
- = 0;
- virtual bool consume(
- Framework::RCArray<RecipieInput>& inputs, int width, int height)
- = 0;
- };
- class BasicShapedCrafter : public ShapedCraftingStorage
- {
- private:
- Framework::Array<ItemSlot*> craftingInput;
- Inventory* zInventory;
- Recipie* currentRecipie;
- Framework::Text recipieList;
- int width;
- int height;
- void getOutputPreview(NetworkMessage* zMsg);
- public:
- BasicShapedCrafter(int width,
- int height,
- Inventory* zInventory,
- Framework::Text recipieList);
- virtual bool isAllAvailable(Framework::RCArray<RecipieInput>& inputs,
- int width,
- int height) override;
- virtual bool isAllAvailable(
- Framework::RCArray<RecipieInput>& inputs) override;
- virtual bool hasFreeSpace(const Item* zItem, int amount) override;
- virtual bool consume(Framework::RCArray<RecipieInput>& inputs,
- int width,
- int height) override;
- virtual void consume(Framework::RCArray<RecipieInput>& inputs) override;
- virtual void addCraftingResult(ItemStack* zStack) override;
- void applyCurrentRecipie();
- void calculateOutputPreview();
- virtual Framework::Vec3<float> getStorageLocation() const override;
- virtual int getStorageDimensionId() const override;
- };
|