MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / setItems

Method setItems

source/game/StarToolUser.cpp:551–585  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

549}
550
551void ToolUser::setItems(ItemPtr newPrimaryHandItem, ItemPtr newAltHandItem) {
552 if (itemSafeTwoHanded(newPrimaryHandItem))
553 newAltHandItem = {};
554
555 if (m_suppress.get()) {
556 newPrimaryHandItem = {};
557 newAltHandItem = {};
558 }
559
560 // Only skip if BOTH items match, to easily handle the edge cases where the
561 // primary and alt hands are swapped or share a pointer, to make sure both
562 // items end up initialized at the end.
563 if (newPrimaryHandItem == m_primaryHandItem.get() && newAltHandItem == m_altHandItem.get())
564 return;
565
566 uninitItem(m_primaryHandItem.get());
567 uninitItem(m_altHandItem.get());
568
569 // Cancel held fire if we switch primary / alt hand items, to prevent
570 // accidentally triggering a switched item without a new edge trigger.
571
572 if (m_primaryHandItem.get() != newPrimaryHandItem) {
573 m_fireMain = false;
574 m_fireAlt = false;
575 }
576
577 if (m_altHandItem.get() != newAltHandItem)
578 m_fireAlt = false;
579
580 m_primaryHandItem.set(std::move(newPrimaryHandItem));
581 m_altHandItem.set(std::move(newAltHandItem));
582
583 initPrimaryHandItem();
584 initAltHandItem();
585}
586
587void ToolUser::suppressItems(bool suppress) {
588 m_suppress.set(suppress);

Callers 2

refreshItemsMethod · 0.80
setItemSlotMethod · 0.80

Calls 3

itemSafeTwoHandedFunction · 0.85
getMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected