19 std::vector<FluffPlayback::Published> result;
26 if (!
state.boxActive || !
state.fluffOpen)
return result;
31 state.fluffWindowX +
state.fluffWindowWidth - 22,
37 state.fluffWindowX +
state.fluffWindowWidth - 143 +
39 state.fluffWindowY + 2});
46 state.fluffWindowX +
state.fluffWindowWidth - 18,
47 state.fluffWindowY + 18});
49 state.fluffWindowX +
state.fluffWindowWidth - 18,
50 state.fluffWindowY +
state.fluffWindowHeight - 35});
62 if (
desired == current_)
return {};
65 std::vector<Published>
added;
66 for (
const auto&
object : current_)
69 for (
const auto&
object :
desired)
70 if (std::find(current_.begin(), current_.end(),
object) == current_.end())
71 added.push_back(
object);
73 std::vector<std::shared_ptr<const sequence::SequenceProgram>>
programs;
75 for (
const auto&
object :
added)
80 return std::unexpected(
81 "UDChat fluff resource failed: " +
loaded.error().detail);
88 return std::unexpected(
89 "sequence command queue cannot fit UDChat fluff transition");
91 for (
const auto&
object :
removed)
94 return std::unexpected(
"validated UDChat fluff stop rejected");
100 programs[index], object.priority, {},
102 return std::unexpected(
"validated UDChat fluff start rejected");
std::expected< void, std::string > sync(const State &state, engine::SequencePlayback &playback, bool bodyControlsInBackground=false)
static constexpr std::size_t Capacity
static std::expected< std::shared_ptr< const SequenceProgram >, RuntimeError > load(const data::DataSource &source, data::DataId id, std::size_t offset=0, DescriptionLimits limits={})
constexpr data::DataTag ChatFluffCloseTag
constexpr data::DataTag ChatFluffButtonTag
constexpr data::DataTag ChatFluffDownTag
constexpr std::uint16_t ChatFluffWindowPriority
constexpr std::uint16_t ChatFluffButtonPriority
constexpr data::DataTag ChatFluffUpTag
constexpr std::array< data::DataTag, 6 > ChatFluffCategoryTags
constexpr data::DataTag ChatFluffShadeTag
constexpr DataId packDataId(std::uint16_t group, DataTag tag) noexcept
SequenceTransform moveXYTransform(std::int32_t x, std::int32_t y) noexcept