diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-08-19 20:47:58 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-08-19 20:47:58 +1000 |
commit | d65bc3cc8d3bb9793e5d4f8d7aa223abbc001886 (patch) | |
tree | bb24fb2bbfb5e89e12dcfe455e44dd360c4503de /source/game/StarToolUser.cpp | |
parent | ec4f70340e0f9a3a867aef7d39df19457bec1d3e (diff) |
Add collision cycling to Material items
Diffstat (limited to 'source/game/StarToolUser.cpp')
-rw-r--r-- | source/game/StarToolUser.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/source/game/StarToolUser.cpp b/source/game/StarToolUser.cpp index e0e32a8..7208c6e 100644 --- a/source/game/StarToolUser.cpp +++ b/source/game/StarToolUser.cpp @@ -535,21 +535,16 @@ void ToolUser::render(RenderCallback* renderCallback, bool inToolRange, bool shi return; } - // FIXME: Why isn't material item a PreviewTileTool, why is inToolRange - // passed in again, what is the difference here between the owner's tool - // range, can't MaterialItem figure this out? - if (inToolRange) { - if (auto materialItem = as<MaterialItem>(m_primaryHandItem.get())) - renderCallback->addTilePreviews(materialItem->preview(shifting)); - else if (auto liquidItem = as<LiquidItem>(m_primaryHandItem.get())) - renderCallback->addTilePreviews(liquidItem->preview(shifting)); - } - if (auto pri = as<PreviewTileTool>(m_primaryHandItem.get())) renderCallback->addTilePreviews(pri->preview(shifting)); else if (auto alt = as<PreviewTileTool>(m_altHandItem.get())) renderCallback->addTilePreviews(alt->preview(shifting)); + if (auto ren = as<RenderableItem>(m_primaryHandItem.get())) + ren->render(renderCallback, renderLayer); + if (auto ren = as<RenderableItem>(m_altHandItem.get())) + ren->render(renderCallback, renderLayer); + for (auto item : {m_primaryHandItem.get(), m_altHandItem.get()}) { if (auto activeItem = as<ActiveItem>(item)) { for (auto drawablePair : activeItem->entityDrawables()) |