1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00
luanti/src/itemstackmetadata.h

52 lines
1.1 KiB
C
Raw Normal View History

// Luanti
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (C) 2017-8 rubenwardy <rw@rubenwardy.com>
2017-01-31 19:49:01 +00:00
#pragma once
2017-01-31 19:49:01 +00:00
#include "metadata.h"
#include "tool.h"
2017-01-31 19:49:01 +00:00
#include <optional>
2017-01-31 19:49:01 +00:00
class Inventory;
class IItemDefManager;
class ItemStackMetadata : public SimpleMetadata
2017-01-31 19:49:01 +00:00
{
public:
ItemStackMetadata()
{}
// Overrides
void clear() override;
bool setString(const std::string &name, std::string_view var) override;
2017-01-31 19:49:01 +00:00
void serialize(std::ostream &os) const;
void deSerialize(std::istream &is);
const ToolCapabilities &getToolCapabilities(
const ToolCapabilities &default_caps) const
{
return toolcaps_override.has_value() ? *toolcaps_override : default_caps;
}
void setToolCapabilities(const ToolCapabilities &caps);
void clearToolCapabilities();
const std::optional<WearBarParams> &getWearBarParamOverride() const
{
return wear_bar_override;
}
void setWearBarParams(const WearBarParams &params);
void clearWearBarParams();
private:
void updateToolCapabilities();
void updateWearBarParams();
std::optional<ToolCapabilities> toolcaps_override;
std::optional<WearBarParams> wear_bar_override;
2017-01-31 19:49:01 +00:00
};