| 47 | } |
| 48 | |
| 49 | void WireProcessor::populateWorking(WireEntity* wireEntity) { |
| 50 | auto p = m_workingWireEntities.insert(wireEntity->tilePosition(), WireEntityState{nullptr, {}, false}); |
| 51 | if (!p.second) { |
| 52 | if (p.first->second.wireEntity != wireEntity) |
| 53 | Logger::debug("Multiple wire entities share tile position: {}", wireEntity->position()); |
| 54 | return; |
| 55 | } |
| 56 | auto& wes = p.first->second; |
| 57 | wes.wireEntity = wireEntity; |
| 58 | size_t outputNodeCount = wes.wireEntity->nodeCount(WireDirection::Output); |
| 59 | wes.outputStates.resize(outputNodeCount); |
| 60 | for (size_t i = 0; i < outputNodeCount; ++i) |
| 61 | wes.outputStates[i] = wes.wireEntity->nodeState({WireDirection::Output, i}); |
| 62 | } |
| 63 | |
| 64 | void WireProcessor::loadNetwork(Vec2I tilePosition) { |
| 65 | HashSet<WorldStorage::Sector> networkSectors; |