| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #pragma once
- #include "BlockComponent.h"
- #include "CraftingStorage.h"
- #include "TypeRegistry.h"
- class ItemFilter;
- class FireBasedProcessingBlockComponent : public BlockComponent,
- public CraftingStorage
- {
- private:
- Block* zBlock;
- ItemFilter* fireStartingItemFilter;
- ItemFilter* fuelItemFilter;
- Framework::Text recipieGroup;
- Framework::Text fuelInventorySlotName;
- Framework::Text fireStartingInventorySlotName;
- Framework::Text inputInventorySlotName;
- Framework::Text outputInventorySlotName;
- int ticksNeeded;
- Recipie* currentRecipie;
- int fuelBuffer;
- bool burning;
- public:
- FireBasedProcessingBlockComponent();
- virtual ~FireBasedProcessingBlockComponent();
- protected:
- void findRecipie();
- void consumeFuel();
- public:
- virtual void initialize(Block* zBlock) override;
- virtual bool tick(int numTicks) override;
- virtual Framework::XML::Element* getUIML() const override;
- virtual bool isAllAvailable(
- Framework::RCArray<RecipieInput>& inputs) override;
- virtual bool hasFreeSpace(const Item* zItem, int amount) override;
- virtual void consume(Framework::RCArray<RecipieInput>& inputs) override;
- virtual void addCraftingResult(ItemStack* zStack) override;
- virtual Framework::Vec3<float> getStorageLocation() const override;
- virtual int getStorageDimensionId() const override;
- virtual void loadComponent(Framework::StreamReader* zReader) override;
- virtual void saveComponent(Framework::StreamWriter* zWriter) const override;
- friend class FireBasedProcessingBlockComponentFactory;
- };
- class FireBasedProcessingBlockComponentFactory
- : public SubTypeFactory<BlockComponent, FireBasedProcessingBlockComponent>
- {
- public:
- FireBasedProcessingBlockComponentFactory();
- FireBasedProcessingBlockComponent* fromJson(
- Framework::JSON::JSONObject* zJson) const override;
- Framework::JSON::JSONObject* toJsonObject(
- FireBasedProcessingBlockComponent* zObject) const override;
- JSONObjectValidationBuilder* addToValidator(
- JSONObjectValidationBuilder* builder) const override;
- const char* getTypeToken() const override;
- };
|