1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-11-21 00:45:23 +01:00
Files
luanti/src/itemstackmetadata.h
cx384 f205f6f539 Fix meta tool capabilities regression (#16563)
This also adds a unittest to avoid issues in the future.
2025-10-11 19:38:21 +02:00

49 lines
1.0 KiB
C++

// Luanti
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (C) 2017-8 rubenwardy <rw@rubenwardy.com>
#pragma once
#include "metadata.h"
#include "tool.h"
#include <optional>
class ItemStackMetadata : public SimpleMetadata
{
public:
ItemStackMetadata()
{}
// Overrides
void clear() override;
bool setString(const std::string &name, std::string_view var) override;
void serialize(std::ostream &os) const;
void deSerialize(std::istream &is);
const std::optional<ToolCapabilities> &getToolCapabilitiesOverride() const
{
return toolcaps_override;
}
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;
};