public override void simulate(uint simulation, bool inputSteady) { if (this.isUsing && this.isUseable) { base.player.equipment.isBusy = false; if (Provider.isServer) { if (this.boundsUse && Physics.OverlapBoxNonAlloc(this.point + this.boundsRotation * this.boundsCenter, this.boundsOverlap, UseableStructure.checkColliders, this.boundsRotation, RayMasks.BLOCK_CHAR_BUILDABLE_OVERLAP, 2) > 0) { base.player.equipment.dequip(); } else { ItemStructureAsset itemStructureAsset = (ItemStructureAsset)base.player.equipment.asset; if (itemStructureAsset != null) { base.player.sendStat(EPlayerStat.FOUND_BUILDABLES); StructureManager.dropStructure(new Structure(base.player.equipment.itemID), this.point, 0f, this.angle + (float)(this.rotate * 90), 0f, base.channel.owner.playerID.steamID.m_SteamID, base.player.quests.groupID.m_SteamID); } base.player.equipment.use(); } } } }