Compare commits
5 Commits
28486c00ff
...
6e60c3413a
Author | SHA1 | Date | |
---|---|---|---|
6e60c3413a | |||
b1dfdfdcff | |||
5a6cdcee4c | |||
584a2d3501 | |||
186bcd214a |
@@ -96,88 +96,88 @@ else
|
||||
LuaUserData.RegisterType("Barotrauma.Items.Components.Repairable")
|
||||
LuaUserData.RegisterType("Barotrauma.VisualSlot")
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QUICKSTACK_KEYS) then return end
|
||||
quickstack.quickStackItems(instance)
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.STACK_TO_CURSOR) then return end
|
||||
if not PlayerInput.IsShiftDown() then
|
||||
quickstack.stackToCursor()
|
||||
else
|
||||
quickstack.stackAllToCursor()
|
||||
end
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FABRICATOR_KEY) then return end
|
||||
fabricatorstack.tryStackFabricator(instance)
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FIX) then return end
|
||||
hotkeyrepair.tryRepair()
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.MAX_BUY) then return end
|
||||
quickbuy.tryBuy()
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
local throttle = 0.1
|
||||
local throttleTimer = 0
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if PlayerInput.Mouse4ButtonClicked() then
|
||||
cursormacroer.setTargetInventory()
|
||||
end
|
||||
if not PlayerInput.IsAltDown() then return end
|
||||
if Timer.GetTime() < throttleTimer then return end
|
||||
throttleTimer = Timer.GetTime() + throttle
|
||||
-- We can not use shift because holding shift means we're moving half a stack
|
||||
-- Fuck me sideways
|
||||
-- if not PlayerInput.IsShiftDown() then return end
|
||||
-- if not PlayerInput.PrimaryMouseButtonClicked() then return end
|
||||
cursormacroer.tryStackCursorItem()
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.UNLOAD) then return end
|
||||
quickunload.tryUnloadCursorItem()
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end
|
||||
quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown())
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end
|
||||
-- quickloot.tryLoot()
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QUICKSTACK_KEYS) then return end
|
||||
-- quickstack.quickStackItems(instance)
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.SONAR) then return end
|
||||
sonarpinger.tryPing()
|
||||
end, Hook.HookMethodType.After)
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.STACK_TO_CURSOR) then return end
|
||||
-- if not PlayerInput.IsShiftDown() then
|
||||
-- quickstack.stackToCursor()
|
||||
-- else
|
||||
-- quickstack.stackAllToCursor()
|
||||
-- end
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.AOEPICKUP) then return end
|
||||
aoepickup.tryAoePickup()
|
||||
end, Hook.HookMethodType.After)
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FABRICATOR_KEY) then return end
|
||||
-- fabricatorstack.tryStackFabricator(instance)
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_FABRICATOR) then return end
|
||||
quickaccess.tryAccessFabricator(PlayerInput.IsShiftDown())
|
||||
end, Hook.HookMethodType.After)
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FIX) then return end
|
||||
-- hotkeyrepair.tryRepair()
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_DECONSTRUCTOR) then return end
|
||||
quickaccess.tryAccessDeconstructor(PlayerInput.IsShiftDown())
|
||||
end, Hook.HookMethodType.After)
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.MAX_BUY) then return end
|
||||
-- quickbuy.tryBuy()
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_MEDICAL_FABRICATOR) then return end
|
||||
quickaccess.tryAccessMedicalFabricator(PlayerInput.IsShiftDown())
|
||||
end, Hook.HookMethodType.After)
|
||||
-- local throttle = 0.1
|
||||
-- local throttleTimer = 0
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if PlayerInput.Mouse4ButtonClicked() then
|
||||
-- cursormacroer.setTargetInventory()
|
||||
-- end
|
||||
-- if not PlayerInput.IsAltDown() then return end
|
||||
-- if Timer.GetTime() < throttleTimer then return end
|
||||
-- throttleTimer = Timer.GetTime() + throttle
|
||||
-- -- We can not use shift because holding shift means we're moving half a stack
|
||||
-- -- Fuck me sideways
|
||||
-- -- if not PlayerInput.IsShiftDown() then return end
|
||||
-- -- if not PlayerInput.PrimaryMouseButtonClicked() then return end
|
||||
-- cursormacroer.tryStackCursorItem()
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.UNLOAD) then return end
|
||||
-- quickunload.tryUnloadCursorItem()
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end
|
||||
-- quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown())
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- -- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- -- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end
|
||||
-- -- quickloot.tryLoot()
|
||||
-- -- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.SONAR) then return end
|
||||
-- sonarpinger.tryPing()
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.AOEPICKUP) then return end
|
||||
-- aoepickup.tryAoePickup()
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_FABRICATOR) then return end
|
||||
-- quickaccess.tryAccessFabricator(PlayerInput.IsShiftDown())
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_DECONSTRUCTOR) then return end
|
||||
-- quickaccess.tryAccessDeconstructor(PlayerInput.IsShiftDown())
|
||||
-- end, Hook.HookMethodType.After)
|
||||
|
||||
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_MEDICAL_FABRICATOR) then return end
|
||||
-- quickaccess.tryAccessMedicalFabricator(PlayerInput.IsShiftDown())
|
||||
-- end, Hook.HookMethodType.After)
|
||||
end
|
||||
|
@@ -33,32 +33,32 @@ local function getNearbyItems(source, distanceThreshold)
|
||||
-- log[#log + 1] = string.format("Item %s is in an inventory", tostring(item))
|
||||
goto continue
|
||||
end
|
||||
tags = tostring(item.Tags)
|
||||
if not string.find(tags, "item") then
|
||||
-- log[#log + 1] = string.format("Item %s is not an item (but a structure) - %s", tostring(item), tags)
|
||||
goto continue
|
||||
end
|
||||
for component in item.Components do
|
||||
-- For some God forsaken reason this does not work
|
||||
-- Not that it classifies the incorrect items
|
||||
-- But it just literally does not work
|
||||
-- The code does not execute
|
||||
-- Some of the items vanish into thin air, as if they never existed
|
||||
-- I have no idea why
|
||||
-- So we'll do this in 2 steps...
|
||||
-- if string.find(blacklistedComponents, component.Name) then
|
||||
-- log[#log + 1] = string.format("Item %s has blacklisted component %s - %s", tostring(item), component.Name, component.Name)
|
||||
-- goto continue
|
||||
-- end
|
||||
if string.find(whitelistedComponents, component.Name) then
|
||||
hasAnyOfComponent = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not hasAnyOfComponent then
|
||||
-- log[#log + 1] = string.format("Item %s is not %s", tostring(item), whitelistedComponents)
|
||||
goto continue
|
||||
end
|
||||
-- tags = tostring(item.Tags)
|
||||
-- if not string.find(tags, "item") then
|
||||
-- -- log[#log + 1] = string.format("Item %s is not an item (but a structure) - %s", tostring(item), tags)
|
||||
-- goto continue
|
||||
-- end
|
||||
-- for component in item.Components do
|
||||
-- -- For some God forsaken reason this does not work
|
||||
-- -- Not that it classifies the incorrect items
|
||||
-- -- But it just literally does not work
|
||||
-- -- The code does not execute
|
||||
-- -- Some of the items vanish into thin air, as if they never existed
|
||||
-- -- I have no idea why
|
||||
-- -- So we'll do this in 2 steps...
|
||||
-- -- if string.find(blacklistedComponents, component.Name) then
|
||||
-- -- log[#log + 1] = string.format("Item %s has blacklisted component %s - %s", tostring(item), component.Name, component.Name)
|
||||
-- -- goto continue
|
||||
-- -- end
|
||||
-- if string.find(whitelistedComponents, component.Name) then
|
||||
-- hasAnyOfComponent = true
|
||||
-- break
|
||||
-- end
|
||||
-- end
|
||||
-- if not hasAnyOfComponent then
|
||||
-- -- log[#log + 1] = string.format("Item %s is not %s", tostring(item), whitelistedComponents)
|
||||
-- goto continue
|
||||
-- end
|
||||
|
||||
distance = getDistanceQuick(item.WorldPosition, source)
|
||||
if distance > distanceThreshold then
|
||||
@@ -74,8 +74,19 @@ local function getNearbyItems(source, distanceThreshold)
|
||||
-- print(table.concat(log, "\n"))
|
||||
|
||||
table.sort(items, function(a, b)
|
||||
return a.distance < b.distance
|
||||
return a.distance > b.distance
|
||||
end)
|
||||
local log = ""
|
||||
for _, item in pairs(items) do
|
||||
local components = ""
|
||||
for component in item.item.Components do
|
||||
components = components .. component.Name .. ", "
|
||||
end
|
||||
log = log ..
|
||||
string.format("%s d:%d t:%s c:%s\n", tostring(item.item.Prefab.Identifier.Value), item.distance, tostring(item.item.Tags),
|
||||
components)
|
||||
end
|
||||
print(log)
|
||||
|
||||
-- local str = ""
|
||||
-- for _, item in pairs(items) do
|
||||
@@ -89,17 +100,17 @@ local function getNearbyItems(source, distanceThreshold)
|
||||
-- end
|
||||
-- print(str)
|
||||
|
||||
local filteredItems = {}
|
||||
for _, item in pairs(items) do
|
||||
for component in item.item.Components do
|
||||
if string.find(blacklistedComponents, component.Name) then
|
||||
goto continue
|
||||
end
|
||||
end
|
||||
filteredItems[#filteredItems + 1] = item.item
|
||||
::continue::
|
||||
end
|
||||
dump(filteredItems)
|
||||
-- local filteredItems = {}
|
||||
-- for _, item in pairs(items) do
|
||||
-- for component in item.item.Components do
|
||||
-- if string.find(blacklistedComponents, component.Name) then
|
||||
-- goto continue
|
||||
-- end
|
||||
-- end
|
||||
-- filteredItems[#filteredItems + 1] = item.item
|
||||
-- ::continue::
|
||||
-- end
|
||||
-- dump(filteredItems)
|
||||
|
||||
-- str = ""
|
||||
-- for _, item in pairs(filteredItems) do
|
||||
@@ -130,14 +141,14 @@ local function tryAoePickup()
|
||||
return
|
||||
end
|
||||
|
||||
local distanceThreshold = 2000
|
||||
local distanceThreshold = 500
|
||||
local characterPos = character.WorldPosition
|
||||
local nearbyItems = getNearbyItems(characterPos, distanceThreshold)
|
||||
|
||||
local errors = quickstack.tryMoveItems(nearbyItems, itemTree, true)
|
||||
for _, error in pairs(errors) do
|
||||
MyModGlobal.debugPrint(string.format("Error moving items: %s", error))
|
||||
end
|
||||
-- local errors = quickstack.tryMoveItems(nearbyItems, itemTree, true)
|
||||
-- for _, error in pairs(errors) do
|
||||
-- MyModGlobal.debugPrint(string.format("Error moving items: %s", error))
|
||||
-- end
|
||||
end
|
||||
|
||||
return {
|
||||
|
@@ -3,6 +3,8 @@ if not CLIENT then return end
|
||||
local utils = require "Cyka.utils"
|
||||
local dump = require "Cyka.dump"
|
||||
|
||||
-- TODO: Also cook terminal
|
||||
-- terminal d:28 t:logic,smallitem c:Terminal, Holdable, ConnectionPanel,
|
||||
local machines = "fabricator,deconstructor,medicalfabricator"
|
||||
Hook.Patch("Cyka", "Barotrauma.Character", "CanInteractWith",
|
||||
{ "Barotrauma.Item", "System.Single&", "System.Boolean" },
|
||||
|
@@ -1,7 +1,7 @@
|
||||
-- luacheck: globals Character Timer Hook SERVER CLIENT
|
||||
if not SERVER then return end
|
||||
local amountExperience = 6000
|
||||
local passiveExperienceDelay = 2
|
||||
local passiveExperienceDelay = 60
|
||||
local passiveExperienceTimer = 0
|
||||
|
||||
Hook.Add("think", "examples.passiveExperience", function()
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<QuickInteractionsUI Absolute="[2,-457,,]" Anchor="[0,1]" BackgroundColor="255,255,255,255" BackgroundSprite="{ Path: CUI.png, SourceRect: [128,32,32,32] }" FitContent="[True,True]" IgnoreEvents="true" OutlineColor="0,0,0,0" Relative="[-0.5,0,,]" ResizibleLeft="false" ResizibleRight="false" Visible="false">
|
||||
<CUIVerticalList AKA="layout" BottomGap="0" BreakSerialization="true" FitContent="[True,True]" IgnoreEvents="true" Relative="[0,0,1,1]" Scrollable="true" Visible="false" />
|
||||
<QuickInteractionsUI Absolute="[2,-457,,]" Anchor="[0,1]" BackgroundColor="255,255,255,255" BackgroundSprite="{ Path: CUI.png, SourceRect: [128,32,32,32] }" FitContent="[True,True]" OutlineColor="0,0,0,0" Relative="[-0.5,0,,]" ResizibleLeft="false" ResizibleRight="false">
|
||||
<CUIVerticalList AKA="layout" BottomGap="0" BreakSerialization="true" FitContent="[True,True]" Relative="[0,0,1,1]" Scrollable="true" />
|
||||
</QuickInteractionsUI>
|
21
Wifi Camera/Afflictions.xml
Normal file
21
Wifi Camera/Afflictions.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Afflictions>
|
||||
<Affliction name="Camera HUD" identifier="camhud" description="" type="None" limbspecific="false" indicatorlimb="Torso" showiconthreshold="1000" showicontoothersthreshold="1000" showinhealthscannerthreshold="1000" treatmentthreshold="1000" maxstrength="1" affectmachines="false" healableinmedicalclinic="false">
|
||||
<Effect minstrength="0" maxstrength="1" minscreenblur="0.2" maxscreenblur="0.2" minradialdistort="0.5" maxradialdistort="0.5" mingrainstrength="0.5" maxgrainstrength="0.5" minchromaticaberration="3.0" maxchromaticaberration="3.0" strengthchange="-4" MinAfflictionOverlayAlphaMultiplier="1.0" MaxAfflictionOverlayAlphaMultiplier="1.0" />
|
||||
<PeriodicEffect interval="2.0">
|
||||
<StatusEffect target="Character" multiplyafflictionsbymaxvitality="true">
|
||||
<Affliction identifier="camhudrec" strength="1" />
|
||||
</StatusEffect>
|
||||
</PeriodicEffect>
|
||||
<AfflictionOverlay texture="%ModDir:3020618603%/UI/CamOverlay.png" />
|
||||
</Affliction>
|
||||
<Affliction name="Camera REC" identifier="camhudrec" description="" type="None" limbspecific="false" indicatorlimb="Torso" showiconthreshold="1000" showicontoothersthreshold="1000" showinhealthscannerthreshold="1000" treatmentthreshold="1000" maxstrength="1" affectmachines="false" healableinmedicalclinic="false">
|
||||
<Effect minstrength="0" maxstrength="1" strengthchange="-1" MinAfflictionOverlayAlphaMultiplier="1.0" MaxAfflictionOverlayAlphaMultiplier="1.0" />
|
||||
<PeriodicEffect interval="2.0">
|
||||
<StatusEffect target="Character">
|
||||
<Affliction identifier="camhudrec" strength="2" />
|
||||
</StatusEffect>
|
||||
</PeriodicEffect>
|
||||
<AfflictionOverlay texture="%ModDir:3020618603%/UI/RecOverlay.png" />
|
||||
</Affliction>
|
||||
</Afflictions>
|
285
Wifi Camera/Camera Monitor.xml
Normal file
285
Wifi Camera/Camera Monitor.xml
Normal file
@@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ItemAssembly name="Camera Monitor" description="" hideinmenus="false">
|
||||
<Item name="" identifier="bluewire" ID="1079" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="51,121,173,255" InventoryIconColor="51,121,173,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" nodes="-266;-9.5;-232;0;-208;0;-200;-8" />
|
||||
</Item>
|
||||
<Item name="" identifier="bluewire" ID="1071" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="51,121,173,255" InventoryIconColor="51,121,173,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="wificomponent" ID="1063" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="signal,circuitboxcomponent,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<WifiComponent Range="20000" Channel="0" AllowCrossTeamCommunication="False" LinkToChat="False" MinChatMessageInterval="1" DiscardDuplicateChatMessages="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" channelmemory="0,1,2,3,4,5,6,7,8,9" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in" />
|
||||
<output name="signal_out" />
|
||||
<input name="set_channel">
|
||||
<link w="1071" i="1" />
|
||||
</input>
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="concatcomponent" ID="1059" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="circuitboxcomponent,smallitem,logic" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<ConcatComponent MaxOutputLength="256" Separator=" " TimeFrame="0" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in1">
|
||||
<link w="1070" i="1" />
|
||||
</input>
|
||||
<input name="signal_in2">
|
||||
<link w="1069" i="1" />
|
||||
</input>
|
||||
<output name="signal_out" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="orangewire" ID="1070" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,140,13,255" InventoryIconColor="255,140,13,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="orangewire" ID="1069" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,140,13,255" InventoryIconColor="255,140,13,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="redwire" ID="1078" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="254,23,17,255" InventoryIconColor="254,23,17,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" nodes="-266;-9.5;-232;-8;-200;-8" />
|
||||
</Item>
|
||||
<Item name="" identifier="redwire" ID="1065" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="254,23,17,255" InventoryIconColor="254,23,17,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="redwire" ID="1064" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="254,23,17,255" InventoryIconColor="254,23,17,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="blackwire" ID="1077" rect="-50629,-16072,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="50,50,50,255" InventoryIconColor="50,50,50,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" nodes="-200;-8;-208;-16;-232;-16;-266;-9.5" />
|
||||
</Item>
|
||||
<Item name="" identifier="delaycomponent" ID="1057" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="circuitboxcomponent,smallitem,logic" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<DelayComponent Delay="0.1" ResetWhenSignalReceived="True" ResetWhenDifferentSignalReceived="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in" />
|
||||
<output name="signal_out">
|
||||
<link w="1066" i="0" />
|
||||
</output>
|
||||
<input name="set_delay" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="addercomponent" ID="1058" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="circuitboxcomponent,smallitem,logic" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<AdderComponent ClampMax="999999" ClampMin="-999999" TimeFrame="0" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in1">
|
||||
<link w="1066" i="1" />
|
||||
</input>
|
||||
<input name="signal_in2">
|
||||
<link w="1068" i="1" />
|
||||
</input>
|
||||
<output name="signal_out">
|
||||
<link w="1064" i="0" />
|
||||
</output>
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="memorycomponent" ID="1062" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="circuitboxcomponent,smallitem,logic" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<MemoryComponent MaxValueLength="200" Value="CH:" Writeable="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in" />
|
||||
<input name="lock_state" />
|
||||
<output name="signal_out">
|
||||
<link w="1070" i="0" />
|
||||
</output>
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="memorycomponent" ID="1061" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="circuitboxcomponent,smallitem,logic" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<MemoryComponent MaxValueLength="4" Value="1" Writeable="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in">
|
||||
<link w="1064" i="1" />
|
||||
<link w="1065" i="1" />
|
||||
</input>
|
||||
<input name="lock_state" />
|
||||
<output name="signal_out">
|
||||
<link w="1067" i="0" />
|
||||
<link w="1068" i="0" />
|
||||
<link w="1069" i="0" />
|
||||
<link w="1071" i="0" />
|
||||
</output>
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="signalcheckcomponent" ID="1060" rect="-50616,-16072,16,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="circuitboxcomponent,smallitem,logic" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<SignalCheckComponent MaxOutputLength="4" Output="1" FalseOutput="" TargetSignal="7" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in">
|
||||
<link w="1067" i="1" />
|
||||
</input>
|
||||
<input name="set_output" />
|
||||
<input name="set_targetsignal" />
|
||||
<output name="signal_out">
|
||||
<link w="1065" i="0" />
|
||||
</output>
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="" identifier="circuitbox" ID="1056" rect="-216,8,32,32" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100">
|
||||
<Holdable Attached="True" SpriteDepthWhenDropped="0.55" PickingTime="5" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="signal_in1">
|
||||
<link w="1079" i="1" />
|
||||
</input>
|
||||
<input name="signal_in2">
|
||||
<link w="1078" i="1" />
|
||||
</input>
|
||||
<input name="signal_in3" />
|
||||
<input name="signal_in4" />
|
||||
<input name="signal_in5" />
|
||||
<input name="signal_in6" />
|
||||
<input name="signal_in7" />
|
||||
<input name="signal_in8" />
|
||||
<output name="signal_out1">
|
||||
<link w="1077" i="0" />
|
||||
</output>
|
||||
<output name="signal_out2" />
|
||||
<output name="signal_out3" />
|
||||
<output name="signal_out4" />
|
||||
<output name="signal_out5" />
|
||||
<output name="signal_out6" />
|
||||
<output name="signal_out7" />
|
||||
<output name="signal_out8" />
|
||||
</ConnectionPanel>
|
||||
<ItemContainer QuickUseMovesItemsInside="False" ContainableRestrictions="" AutoFill="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" contained="1057,1058,1059,1060,1061,1062,1063,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,," ExtraStackSize="0" />
|
||||
<ItemContainer QuickUseMovesItemsInside="False" ContainableRestrictions="" AutoFill="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" contained="1064;1065,1066;1067;1068,1069;1070,1071,,,,,," ExtraStackSize="0" />
|
||||
<CircuitBox PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgInteractSelect">
|
||||
<InputNode pos="-805.3133,47.29297" />
|
||||
<OutputNode pos="1120.5836,47.41577" />
|
||||
<Component id="0" position="-496.56104,-109.7872" backingitemid="0,0" usedresource="fpgacircuit" />
|
||||
<Component id="1" position="150.38062,-115.77286" backingitemid="1,0" usedresource="fpgacircuit" />
|
||||
<Component id="2" position="662.0154,269.75433" backingitemid="2,0" usedresource="fpgacircuit" />
|
||||
<Component id="3" position="176.8888,-641.6171" backingitemid="3,0" usedresource="fpgacircuit" />
|
||||
<Component id="4" position="154.21436,-368.83014" backingitemid="4,0" usedresource="fpgacircuit" />
|
||||
<Component id="5" position="150.5741,399.9847" backingitemid="5,0" usedresource="fpgacircuit" />
|
||||
<Component id="6" position="799.1293,16.431671" backingitemid="6,0" usedresource="fpgacircuit" />
|
||||
<Wire id="2" backingitemid="" prefab="redwire">
|
||||
<From name="signal_out" target="2" />
|
||||
<To name="signal_out1" target="" />
|
||||
</Wire>
|
||||
<Wire id="8" backingitemid="3,0" prefab="bluewire">
|
||||
<From name="signal_out" target="4" />
|
||||
<To name="set_channel" target="6" />
|
||||
</Wire>
|
||||
<Wire id="5" backingitemid="1,0" prefab="greenwire">
|
||||
<From name="signal_out" target="0" />
|
||||
<To name="signal_in1" target="1" />
|
||||
</Wire>
|
||||
<Wire id="7" backingitemid="0,0" prefab="redwire">
|
||||
<From name="signal_out" target="1" />
|
||||
<To name="signal_in" target="4" />
|
||||
</Wire>
|
||||
<Wire id="4" backingitemid="0,1" prefab="redwire">
|
||||
<From name="signal_out" target="3" />
|
||||
<To name="signal_in" target="4" />
|
||||
</Wire>
|
||||
<Wire id="3" backingitemid="1,1" prefab="greenwire">
|
||||
<From name="signal_out" target="4" />
|
||||
<To name="signal_in" target="3" />
|
||||
</Wire>
|
||||
<Wire id="1" backingitemid="2,0" prefab="orangewire">
|
||||
<From name="signal_out" target="4" />
|
||||
<To name="signal_in2" target="2" />
|
||||
</Wire>
|
||||
<Wire id="0" backingitemid="2,1" prefab="orangewire">
|
||||
<From name="signal_out" target="5" />
|
||||
<To name="signal_in1" target="2" />
|
||||
</Wire>
|
||||
<Wire id="10" backingitemid="1,2" prefab="greenwire">
|
||||
<From name="signal_out" target="4" />
|
||||
<To name="signal_in2" target="1" />
|
||||
</Wire>
|
||||
<Wire id="6" backingitemid="" prefab="redwire">
|
||||
<From name="signal_in2" target="" />
|
||||
<To name="signal_in" target="0" />
|
||||
</Wire>
|
||||
<Wire id="11" backingitemid="" prefab="bluewire">
|
||||
<From name="signal_in1" target="" />
|
||||
<To name="signal_in" target="6" />
|
||||
</Wire>
|
||||
</CircuitBox>
|
||||
<itemstats />
|
||||
</Item>
|
||||
<Item name="" identifier="greenwire" ID="1068" rect="-829,-1080,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="56,143,111,255" InventoryIconColor="56,143,111,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="greenwire" ID="1067" rect="-829,-1080,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="56,143,111,255" InventoryIconColor="56,143,111,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="greenwire" ID="1066" rect="-829,-1080,42,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="56,143,111,255" InventoryIconColor="56,143,111,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="wire,smallitem" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.8" HiddenInGame="False" conditionpercentage="100" hideinassemblypreview="true">
|
||||
<Holdable SpriteDepthWhenDropped="0.55" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPickUpSelect" />
|
||||
<Wire NoAutoLock="False" UseSpriteDepth="False" DropOnConnect="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="label" ID="1075" rect="-176,0,368,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="1" SpriteColor="255,255,255,0" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.001" HiddenInGame="True" conditionpercentage="100">
|
||||
<ItemLabel Padding="0,0,0,0" Text="Max. Channel = Channel number +1 as Target signal of Signal Component" IgnoreLocalization="False" TextColor="255,255,255,255" TextScale="1" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="label" ID="1074" rect="-176,16,320,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="1" SpriteColor="255,255,255,0" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.001" HiddenInGame="True" conditionpercentage="100">
|
||||
<ItemLabel Padding="0,0,0,0" Text="Min. Channel = Channel number as Output of Signal Component" IgnoreLocalization="False" TextColor="255,255,255,255" TextScale="1" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="label" ID="1073" rect="-176,48,384,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="1" SpriteColor="255,255,255,0" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.001" HiddenInGame="True" conditionpercentage="100">
|
||||
<ItemLabel Padding="0,0,0,0" Text="You can change the min. and max channel the camera monitor can switch to:" IgnoreLocalization="False" TextColor="255,255,255,255" TextScale="1" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="" identifier="label" ID="1072" rect="-176,-32,496,16" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="1" SpriteColor="255,255,255,0" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.001" HiddenInGame="True" conditionpercentage="100">
|
||||
<ItemLabel Padding="0,0,0,0" Text="Make sure to set the value inside the Memory component (middle one) to your min. channel value!" IgnoreLocalization="False" TextColor="255,255,255,255" TextScale="1" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
</Item>
|
||||
<Item name="Camera Monitor" identifier="cammonitor" ID="1076" rect="-312,24,92,67" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="periscope,light" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.7" HiddenInGame="False" conditionpercentage="100">
|
||||
<LightComponent Range="70" CastShadows="False" DrawBehindSubs="False" IsOn="True" Flicker="0" FlickerSpeed="1" PulseFrequency="0" PulseAmount="0" BlinkFrequency="0" LightColor="255,255,255,100" IsActive="True" MinVoltage="0" PowerConsumption="0" Voltage="1" VulnerableToEMP="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="False" Msg="" />
|
||||
<Holdable Attached="True" SpriteDepthWhenDropped="0.55" PickingTime="3" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
|
||||
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
</Holdable>
|
||||
<Controller IsToggle="False" Output="1" FalseOutput="0" State="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="False" Msg="ItemMsgInteractSelect">
|
||||
<limbposition limb="LeftHand" position="87,-105" allowusinglimb="false" />
|
||||
<limbposition limb="RightHand" position="87,-105" allowusinglimb="false" />
|
||||
</Controller>
|
||||
<ItemLabel Padding="48,39,10,12" Text="CH: 1" IgnoreLocalization="False" TextColor="255,255,255,255" TextScale="0.7" Scrollable="True" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="" />
|
||||
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
|
||||
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
|
||||
<input name="set_text">
|
||||
<link w="1077" i="1" />
|
||||
</input>
|
||||
<input name="set_color" />
|
||||
<input name="set_text_color" />
|
||||
<output name="position_out">
|
||||
<link w="1079" i="0" />
|
||||
</output>
|
||||
<output name="trigger_out">
|
||||
<link w="1078" i="0" />
|
||||
</output>
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
</ItemAssembly>
|
BIN
Wifi Camera/Items/SurveillanceCam.png
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/Items/SurveillanceCam.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Wifi Camera/Items/WifiCam.png
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/Items/WifiCam.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Wifi Camera/Items/WifiMonitor.png
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/Items/WifiMonitor.png
(Stored with Git LFS)
Normal file
Binary file not shown.
997
Wifi Camera/Items/wificam.xml
Normal file
997
Wifi Camera/Items/wificam.xml
Normal file
@@ -0,0 +1,997 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Items>
|
||||
<!-- Periscope override to add the visual effects - Disabled -->
|
||||
<!--
|
||||
<Override>
|
||||
<Item name="" description="" identifier="periscope" tags="periscope" category="Machine,Weapon" type="Controller" disableitemusagewhenselected="true" scale="0.5" isshootable="true" requireaimtouse="false" requireaimtosecondaryuse="false">
|
||||
<SwappableItem canbebought="false" origin="67,0"/>
|
||||
<Sprite texture="Content/Items/Weapons/TurretsAndDepthCharges.png" depth="0.1" sourcerect="2,210,134,203" origin="0.5,0.5" />
|
||||
<Controller UserPos="-35.0, -50.0" direction="Right" canbeselected="true" AllowSelectingWhenSelectedByBot="true" AllowSelectingWhenSelectedByOther="false" msg="ItemMsgInteractSelect">
|
||||
<limbposition limb="Head" position="-10,-135" />
|
||||
<limbposition limb="Torso" position="-10,-200" />
|
||||
<limbposition limb="LeftHand" position="67,-170" />
|
||||
<limbposition limb="RightHand" position="67,-170" />
|
||||
<StatusEffect type="OnActive" target="Character" interval="0.1" setvalue="true" multiplyafflictionsbymaxvitality="true">
|
||||
<Affliction identifier="camhud" amount="1" />
|
||||
</StatusEffect>
|
||||
</Controller>
|
||||
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<output name="position_out" displayname="connection.turretaimingout" fallbackdisplayname="inputtype.aim" />
|
||||
<output name="trigger_out" displayname="connection.turrettriggerout" fallbackdisplayname="inputtype.shoot" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
</Override>
|
||||
-->
|
||||
<Item name="Camera Monitor Wiring Diagram" identifier="monitorwiringdiagram" category="Electrical" Tags="smallitem,logic" description="Displays the intended wiring setup for the camera monitor when equipped." cargocontaineridentifier="metalcrate" scale="0.25" impactsoundtag="impact_metal_light" isshootable="true">
|
||||
<Upgrade gameversion="0.9.9000.0" scale="0.25" />
|
||||
<PreferredContainer primary="reactorcab" secondary="engcab" />
|
||||
<Deconstruct time="5" />
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="5">
|
||||
<RequiredSkill identifier="mechanical" level="5" />
|
||||
<RequiredItem identifier="plastic" />
|
||||
</Fabricate>
|
||||
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="323,193,60,61" origin="0.5,0.5" />
|
||||
<Sprite texture="Content/Items/Electricity/signalcomp.png" sourcerect="149,371,69,93" depth="0.8" origin="0.5,0.5" />
|
||||
<Body width="60" height="90" density="15" />
|
||||
<Holdable slots="Any,RightHand,LeftHand" holdangle="30" handle1="-10,0" msg="ItemMsgPickUpSelect" />
|
||||
<Terminal canbeselected="true" msg="ItemMsgInteractSelect" AllowInGameEditing="false" AutoHideScrollbar="true" readonly="true" autoscrolltobottom="false" linestartsymbol="" marginmultiplier="1.5" drawhudwhenequipped="true">
|
||||
<GuiFrame relativesize="1.0,1.0" anchor="Center" style="MonitorWiringDiagram" hidedragicons="true" />
|
||||
</Terminal>
|
||||
</Item>
|
||||
<Item name="Wifi Surveillance Camera" identifier="wifisurveillancecamera" category="Equipment" Tags="smallitem,signal,camera" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Broadcasts the view to the configured wifi channel when wired to a power source. Can be attached anywhere on the inside and on fins and beams on the outside of your submarine." scale="0.325" impactsoundtag="impact_metal_light" isshootable="true">
|
||||
<PreferredContainer primary="divingcab,crewcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="copper" />
|
||||
<Item identifier="plastic" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredSkill identifier="mechanical" level="30" />
|
||||
<RequiredItem identifier="fpgacircuit" />
|
||||
<RequiredItem identifier="plastic" />
|
||||
</Fabricate>
|
||||
<InventoryIcon texture="%ModDir:3020618603%/Items/SurveillanceCam.png" sourcerect="0,0,68,68" origin="0.5,0.5" />
|
||||
<Sprite texture="%ModDir:3020618603%/Items/SurveillanceCam.png" depth="0.699" sourcerect="0,0,68,68" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="255.0,0.0,0.0,200.0" range="3" alphablend="true" blinkfrequency="0.5" castshadows="false" powerconsumption="10" allowingameediting="false" IsOn="true">
|
||||
<LightTexture texture="Content/Lights/visioncircle.png" origin="0.5,0.5" size="0.1,0.1" />
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if no power is supplied or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface selectkey="Select" canbeselected="true" drawhudwhenequipped="false" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="64" height="64" density="12" />
|
||||
<Holdable selectkey="Select" pickkey="Use" slots="RightHand,LeftHand,Any" msg="ItemMsgDetachWrench" PickingTime="2.0" aimpos="65,-10" holdpos="10,-40" handle1="1,1" handle2="0,0" attachable="true" aimable="true" attachedbydefault="false" allowingameediting="false" canflipx="false">
|
||||
<RequiredItem items="wrench" type="Equipped" />
|
||||
</Holdable>
|
||||
<!-- ConnectionPanel which needs all the pins for the item to work, despite only the power_in should actually be used ingame. Sadly no way to lock/hide the other pins -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="true" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="power_in" displayname="connection.powerin" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Camera Monitor" description="A monitor to watch the wifi camera broadcasts. Needs to be connected to a wifi component." identifier="cammonitor" tags="periscope" category="Machine,Weapon" type="Controller" disableitemusagewhenselected="true" scale="0.5" isshootable="true" requireaimtouse="false" requireaimtosecondaryuse="false" canflipx="false">
|
||||
<Sprite texture="%ModDir:3020618603%/Items/WifiMonitor.png" sourcerect="0,0,184,135" depth="0.7" origin="0.5,0.5" canflipx="false" />
|
||||
<!--DecorativeSprite texture="%ModDir:3020618603%/Items/WifiMonitor.png" depth="0.699" sourcerect="0,135,184,135" usewhenattached="true" HideWhenNotVisible="true" origin="0.5,0.5" canflipx="false">
|
||||
<IsActiveConditional attached="true" targetitemcomponent="Holdable" />
|
||||
</DecorativeSprite-->
|
||||
<LightComponent range="70.0" lightcolor="255,255,255,10" powerconsumption="0" IsOn="true" alphablend="false" castshadows="false" allowingameediting="false">
|
||||
<IsActive attached="true" targetitemcomponent="Holdable" />
|
||||
<sprite texture="%ModDir:3020618603%/Items/WifiMonitor.png" depth="0.699" sourcerect="0,135,184,135" alpha="1.0" origin="0.5,0.5" canflipx="false" />
|
||||
</LightComponent>
|
||||
<Body width="160" height="128" density="15" />
|
||||
<Deconstruct time="20">
|
||||
<Item identifier="fpgacircuit" />
|
||||
<Item identifier="plastic" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredSkill identifier="mechanical" level="30" />
|
||||
<RequiredItem identifier="fpgacircuit" />
|
||||
<RequiredItem identifier="fpgacircuit" />
|
||||
<RequiredItem identifier="plastic" />
|
||||
<RequiredItem identifier="plastic" />
|
||||
</Fabricate>
|
||||
<Holdable selectkey="Select" pickkey="Use" slots="RightHand+LeftHand" msg="ItemMsgDetachWrench" PickingTime="3.0" aimpos="65,-10" holdpos="10,-40" handle1="1,1" handle2="0,0" attachable="true" aimable="true" attachedbydefault="false" allowingameediting="false" canflipx="false">
|
||||
<RequiredItem items="wrench" type="Equipped" />
|
||||
</Holdable>
|
||||
<Controller canbeselected="true" AllowSelectingWhenSelectedByBot="true" AllowSelectingWhenSelectedByOther="true" msg="ItemMsgInteractSelect" allowingameediting="false">
|
||||
<Conditional attached="true" />
|
||||
<limbposition limb="LeftHand" position="87,-105" />
|
||||
<limbposition limb="RightHand" position="87,-105" />
|
||||
<!-- Add a camera HUD and visual effects to the player using the monitor by applying an invisible affliction -->
|
||||
<StatusEffect type="OnActive" target="Character" interval="0.1" setvalue="true" multiplyafflictionsbymaxvitality="true">
|
||||
<Affliction identifier="camhud" amount="1" />
|
||||
</StatusEffect>
|
||||
</Controller>
|
||||
<ItemLabel scrollable="true" padding="48,39,10,12" textcolor="1,1,1,1" textscale="0.7" canbeselected="false">
|
||||
<Upgrade gameversion="1.0.21.0" padding="48,39,10,12" />
|
||||
</ItemLabel>
|
||||
<ConnectionPanel selectkey="Use" canbeselected="true" drawhudwhenequipped="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="set_text" displayname="connection.set_text" fallbackdisplayname="connection.setoutput" />
|
||||
<input name="set_color" displayname="connection.setcolor" />
|
||||
<input name="set_text_color" displayname="connection.settextcolor" />
|
||||
<output name="position_out" displayname="connection.turretaimingout" fallbackdisplayname="inputtype.aim" />
|
||||
<output name="trigger_out" displayname="connection.turrettriggerout" fallbackdisplayname="inputtype.shoot" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Wifi Camera" identifier="wificam" category="Equipment" Tags="smallitem,signal,camera" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_light" isshootable="true">
|
||||
<PreferredContainer primary="divingcab,crewcab" />
|
||||
<PreferredContainer secondary="wreckengcab,abandonedengcab,outpostengcab,beaconengcab" amount="1" spawnprobability="0.05" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="copper" />
|
||||
<Item identifier="plastic" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredSkill identifier="mechanical" level="30" />
|
||||
<RequiredItem identifier="fpgacircuit" />
|
||||
<RequiredItem identifier="plastic" />
|
||||
</Fabricate>
|
||||
<Sprite name="Wifi Camera" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="0,0,52,23" depth="0.6" origin="0.5,0.5" />
|
||||
<ContainedSprite texture="%ModDir:3020618603%/Items/WifiCam.png" usewhenattached="true" decorativespritebehavior="HideWhenNotVisible" depth="0.55" sourcerect="52,0,33,78" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="28" height="26" density="11.5" />
|
||||
<Holdable pickkey="Select" slots="LeftHand,RightHand,Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" msg="ItemMsgPickUpSelect">
|
||||
<sprite name="Wifi Camera Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" sourcerect="0,0,52,23" origin="0.7,0.8" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<!-- HELMETS -->
|
||||
<Item name="Separatist Camera Helmet" identifier="wificampiratehelmet" category="Equipment" Tags="smallitem,signal,camera,clothing" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Protects your head and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="armcab" secondary="secarmcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="piratehelmet" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="piratehelmet" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Separatist Camera Helmet 1" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="424,206,88,95" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body radius="30" density="30" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" armorvalue="20.0" msg="ItemMsgPickUpSelect">
|
||||
<damagemodifier afflictionidentifiers="lacerations,gunshotwound" armorsector="0.0,360.0" damagemultiplier="0.2" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="bitewounds, blunttrauma" armorsector="0.0,360.0" damagemultiplier="0.3" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictiontypes="bleeding" armorsector="0.0,360.0" damagemultiplier="0.1" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="concussion" armorsector="0.0,360.0" damagemultiplier="0.0" damagesound="" deflectprojectiles="true" />
|
||||
<SkillModifier skillidentifier="weapons" skillvalue="5" />
|
||||
<sprite name="Separatist Camera Helmet 1 Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.7" hidewearablesoftype="Hair" sourcerect="424,206,88,95" origin="0.6,0.5" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Ballistic Camera Helmet" identifier="wificamballistichelmet1" category="Equipment" Tags="smallitem,signal,camera,clothing" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Protects your head and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="armcab" secondary="secarmcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="ballistichelmet1" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="ballistichelmet1" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Ballistic Camera Helmet 1" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="7,215,85,68" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body radius="30" density="25" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" armorvalue="20.0" msg="ItemMsgPickUpSelect">
|
||||
<damagemodifier afflictionidentifiers="lacerations,gunshotwound" armorsector="0.0,360.0" damagemultiplier="0.2" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="bitewounds, blunttrauma" armorsector="0.0,360.0" damagemultiplier="0.3" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictiontypes="bleeding" armorsector="0.0,360.0" damagemultiplier="0.1" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="concussion" armorsector="0.0,360.0" damagemultiplier="0.0" damagesound="" deflectprojectiles="true" />
|
||||
<sprite name="Ballistic Camera Helmet 1 Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidewearablesoftype="Hair" sourcerect="7,215,85,68" origin="0.5,0.7" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Gunner's Camera Helmet" identifier="wificamballistichelmet2" category="Equipment" Tags="smallitem,signal,camera,clothing" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Protects your head and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="armcab" secondary="secarmcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="ballistichelmet2" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="ballistichelmet2" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Ballistic Camera Helmet 2" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="112,213,82,94" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body radius="30" density="25" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" armorvalue="20.0" msg="ItemMsgPickUpSelect">
|
||||
<damagemodifier afflictionidentifiers="blunttrauma,lacerations,gunshotwound" armorsector="0.0,360.0" damagemultiplier="0.4" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="bitewounds" armorsector="0.0,360.0" damagemultiplier="0.5" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictiontypes="bleeding" armorsector="0.0,360.0" damagemultiplier="0.3" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="concussion" armorsector="0.0,360.0" damagemultiplier="0.0" damagesound="" deflectprojectiles="true" />
|
||||
<SkillModifier skillidentifier="weapons" skillvalue="10" />
|
||||
<sprite name="Ballistic Helmet 2 Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" hidewearablesoftype="Hair" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" sourcerect="112,213,82,94" origin="0.625,0.5" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Riot Camera Helmet" identifier="wificamballistichelmet3" category="Equipment" Tags="smallitem,signal,camera,clothing" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Protects your head and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="armcab" secondary="secarmcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="ballistichelmet3" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="ballistichelmet3" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Ballistic Camera Helmet 3" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="207,201,104,101" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body radius="30" density="25" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" armorvalue="20.0" msg="ItemMsgPickUpSelect">
|
||||
<damagemodifier afflictionidentifiers="blunttrauma,lacerations" armorsector="0.0,360.0" damagemultiplier="0.2" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="bitewounds, gunshotwound" armorsector="0.0,360.0" damagemultiplier="0.3" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictiontypes="bleeding" armorsector="0.0,360.0" damagemultiplier="0.1" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="concussion" armorsector="0.0,360.0" damagemultiplier="0.0" damagesound="" deflectprojectiles="true" />
|
||||
<sprite name="Ballistic Helmet 3 Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" hidewearablesoftype="Hair" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" sourcerect="207,201,104,101" origin="0.575,0.55" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Chitin Camera Helmet" identifier="wificamchitinhelmet" category="Equipment" Tags="smallitem,signal,camera,clothing" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Protects your head and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="armcab" secondary="secarmcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="chitinhelmet" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="chitinhelmet" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Chitin Camera Helmet" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="207,8,100,95" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body radius="30" density="20" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" armorvalue="20.0" msg="ItemMsgPickUpSelect">
|
||||
<damagemodifier afflictionidentifiers="blunttrauma,lacerations,gunshotwound" armorsector="0.0,360.0" damagemultiplier="0.4" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictionidentifiers="bitewounds" armorsector="0.0,360.0" damagemultiplier="0.6" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictiontypes="bleeding" armorsector="0.0,360.0" damagemultiplier="0.2" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<sprite texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidewearablesoftype="Hair" sourcerect="207,8,100,95" origin="0.55,0.5" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Iron Camera Helmet" identifier="wificamironhelmet" category="Equipment" Tags="smallitem,signal,camera,clothing" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Protects your head and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="armcab" secondary="secarmcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="ironhelmet" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="ironhelmet" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Iron Camera Helmet" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="249,529,90,102" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="70" height="80" density="30" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" armorvalue="20.0" msg="ItemMsgPickUpSelect">
|
||||
<StatusEffect type="OnWearing" target="Character" HideFace="true" ObstructVision="true" SpeedMultiplier="0.9" setvalue="true" disabledeltatime="true" />
|
||||
<damagemodifier afflictionidentifiers="lacerations, bitewounds" armorsector="0.0,360.0" damagemultiplier="0.15" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<damagemodifier afflictiontypes="bleeding" armorsector="0.0,360.0" damagemultiplier="0.2" damagesound="LimbArmor" deflectprojectiles="true" />
|
||||
<sprite name="Iron Helmet" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidewearablesoftype="Hair" sourcerect="249,529,90,102" origin="0.5,0.5" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<!-- MASKS -->
|
||||
<Item name="Clown Camera Mask" identifier="wificamclownmask" category="Equipment" Tags="smallitem,signal,camera,clothing,clownmask" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Be a clown and broadcast your performance to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="crewcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="clownmask" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="clownmask" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Clown Camera Mask" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="414,318,89,71" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="40" radius="30" density="15" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" msg="ItemMsgPickUpSelect">
|
||||
<sprite name="Clown Camera Mask Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.75" sourcerect="414,318,89,71" origin="0.5,0.6" />
|
||||
<StatusEffect tags="clown" type="OnWearing" target="Character" HideFace="true" duration="0.1" stackable="false" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Mother's Countenance with Camera" identifier="wificamclownmaskunique" category="Equipment" Tags="smallitem,signal,camera,clothing,clownmask" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Broadcast the actions of Honkmother to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="crewcab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="clownmaskunique" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="clownmaskunique" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Clown Camera Mask Unique" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="414,417,89,71" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="40" radius="30" density="15" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" msg="ItemMsgPickUpSelect">
|
||||
<sprite name="Clown Camera Mask Unique Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" sourcerect="414,417,89,71" origin="0.5,0.6" />
|
||||
<StatusEffect tags="clown" type="OnWearing" target="Character" HideFace="true" duration="0.1" stackable="false" />
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Clown Camera Diving Mask" identifier="wificamclowndivingmask" category="Equipment,Diving" Tags="smallitem,signal,camera,clownmask,diving,lightdiving" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Be a clown and broadcast your underwater performance to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="divingcab" secondary="supplycab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="clowndivingmask" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="clowndivingmask" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Clown Camera Diving Mask" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="421,529,80,70" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" targetslot="1" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery" autoinject="true">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="64,448,64,64" origin="0.5,0.5" />
|
||||
<SlotIcon slotindex="1" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="oxygensource,weldingtoolfuel" excludeditems="oxygenitetank" />
|
||||
<Containable items="oxygenitetank">
|
||||
<StatusEffect type="OnWearing" target="Character" SpeedMultiplier="1.2" setvalue="true" targetslot="0">
|
||||
<Conditional IsDead="false" />
|
||||
</StatusEffect>
|
||||
</Containable>
|
||||
<SubContainer capacity="1" maxstacksize="1">
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</SubContainer>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="5" radius="25" density="15" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" msg="ItemMsgPickUpSelect" displaycontainedstatus="true">
|
||||
<sprite name="Clown Diving Mask Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" sourcerect="421,529,80,70" origin="0.45,0.4" />
|
||||
<StatusEffect tags="clown" type="OnWearing" target="Character" HideFace="true" duration="0.1" stackable="false" />
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" targetslot="0" OxygenAvailable="1000.0" Condition="-0.5" comparison="Or">
|
||||
<Conditional IsDead="false" />
|
||||
<RequiredItem items="oxygensource" type="Contained" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" targetslot="0" OxygenAvailable="-100.0" Oxygen="-5.0" Condition="-5.0">
|
||||
<Conditional IsDead="false" />
|
||||
<RequiredItem items="weldingfueltank" type="Contained" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" targetslot="0" targetlimbs="Torso" OxygenAvailable="-100.0" Oxygen="-7.0" Condition="-5.0">
|
||||
<RequiredItem items="incendiumfueltank" type="Contained" />
|
||||
<Affliction identifier="burn" amount="3.0" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" SpeedMultiplier="1.2" setvalue="true" comparison="Or">
|
||||
<Conditional IsDead="false" />
|
||||
<RequiredItem items="oxygenitetank" type="Contained" />
|
||||
</StatusEffect>
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
<Item name="Camera Diving Mask" identifier="wificamdivingmask" category="Equipment,Diving" Tags="smallitem,signal,camera,diving,lightdiving" focusonselected="true" offsetonselected="500" maxstacksize="1" cargocontaineridentifier="metalcrate" description="Prevents you from drowning and broadcasts your view to the configured wifi channel. Requires a battery." scale="0.325" impactsoundtag="impact_metal_heavy" isshootable="false">
|
||||
<PreferredContainer primary="divingcab" secondary="supplycab" />
|
||||
<Deconstruct time="5">
|
||||
<Item identifier="divingmask" />
|
||||
<Item identifier="wificam" />
|
||||
</Deconstruct>
|
||||
<Fabricate suitablefabricators="fabricator" requiredtime="10">
|
||||
<RequiredItem identifier="divingmask" />
|
||||
<RequiredItem identifier="wificam" />
|
||||
</Fabricate>
|
||||
<Sprite name="Camera Diving Mask" texture="%ModDir:3020618603%/Items/WifiCam.png" sourcerect="226,326,69,68" depth="0.6" origin="0.5,0.5" />
|
||||
<!-- WifiComponent to transmit the signal to another wifi component with the same channel configured -->
|
||||
<WifiComponent canbeselected="false" MinChatMessageInterval="0.0" range="35000.0" DiscardDuplicateChatMessages="true" linktochat="false" channel="1" drawhudwhenequipped="false" allowingameediting="false" />
|
||||
<!-- LightComponent that doesn't provide any light. Used to activate/deactivate the camera -->
|
||||
<LightComponent LightColor="0.0,0.0,0.0,0.0" range="0" alphablend="true" powerconsumption="1" allowingameediting="false" IsOn="false">
|
||||
<!-- Drain batteries by decreasing their condition by 0.05 each second. ~33 min duration with regular battery cell -->
|
||||
<StatusEffect type="OnActive" targettype="Contained" targetslot="1" Condition="-0.05" interval="1" disabledeltatime="true">
|
||||
<RequiredItem items="mobilebattery" type="Contained" />
|
||||
</StatusEffect>
|
||||
<!-- Activate the camera by setting linktochat="true" if it receives power from a battery and the LightComponent is on. linktochat="true" is what allows the camera to transmit the view -->
|
||||
<StatusEffect type="OnActive" target="This" linktochat="true" setvalue="true" comparison="and" interval="0.5">
|
||||
<Conditional IsOn="true" />
|
||||
<Conditional voltage="gte 0.5" />
|
||||
</StatusEffect>
|
||||
<!-- Deactivate the camera by setting linktochat="false" if the battery doesn't provide power or the LightComponent is off -->
|
||||
<StatusEffect type="Always" target="This" linktochat="false" setvalue="true" comparison="or" interval="0.5">
|
||||
<Conditional IsOn="false" />
|
||||
<Conditional voltage="lt 0.5" />
|
||||
</StatusEffect>
|
||||
</LightComponent>
|
||||
<ItemContainer capacity="1" maxstacksize="1" hideitems="true" containedstateindicatorstyle="battery" autoinject="true">
|
||||
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="64,448,64,64" origin="0.5,0.5" />
|
||||
<SlotIcon slotindex="1" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
|
||||
<Containable items="oxygensource,weldingtoolfuel" excludeditems="oxygenitetank" />
|
||||
<Containable items="oxygenitetank">
|
||||
<StatusEffect type="OnWearing" target="Character" SpeedMultiplier="1.2" setvalue="true" targetslot="0">
|
||||
<Conditional IsDead="false" />
|
||||
</StatusEffect>
|
||||
</Containable>
|
||||
<SubContainer capacity="1" maxstacksize="1">
|
||||
<Containable items="mobilebattery">
|
||||
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
|
||||
</Containable>
|
||||
</SubContainer>
|
||||
</ItemContainer>
|
||||
<!-- Tickbox interface to toggle the camera on and off -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="-50,0" anchor="BottomCenter" relativesize="0.07,0.08" />
|
||||
<TickBox text="ON/OFF">
|
||||
<StatusEffect type="OnUse" target="This" IsOn="true" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="false" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraBeep.ogg" range="200" loop="false" volume="3" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnSecondaryUse" target="This" IsOn="false" duration="1" targetitemcomponent="LightComponent" setvalue="true" comparison="And">
|
||||
<Conditional IsOn="true" targetitemcomponent="LightComponent" />
|
||||
<Conditional voltage="gt 0.5" />
|
||||
<Sound file="%ModDir:3020618603%/Sounds/CameraTurnOff.ogg" range="200" loop="true" volume="3" />
|
||||
</StatusEffect>
|
||||
</TickBox>
|
||||
</CustomInterface>
|
||||
<!-- Textbox interface to type and set the desired channel to broadcast in -->
|
||||
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="false">
|
||||
<GuiFrame style="ItemUI" absoluteoffset="50,0" anchor="BottomCenter" relativesize="0.12,0.08" />
|
||||
<TextBox text="Set Channel" propertyname="channel" maxtextlength="4" />
|
||||
</CustomInterface>
|
||||
<Body width="40" height="35" density="15" />
|
||||
<Holdable pickkey="Select" slots="Any" attachable="true" canbepicked="true" />
|
||||
<Wearable limbtype="Head" slots="Head" msg="ItemMsgPickUpSelect" displaycontainedstatus="true">
|
||||
<sprite name="Camera Diving Mask Wearable" texture="%ModDir:3020618603%/Items/WifiCam.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.7" hidelimb="false" hideotherwearables="false" sourcerect="226,326,69,68" origin="0.4,0.3" hidewearablesoftype="moustache,beard" />
|
||||
<StatusEffect type="OnWearing" target="Character" HideFace="true" SpeedMultiplier="0.9" setvalue="true" disabledeltatime="true" />
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" targetslot="0" OxygenAvailable="1000.0" Condition="-0.5" comparison="Or">
|
||||
<Conditional IsDead="false" />
|
||||
<RequiredItem items="oxygensource" type="Contained" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" targetslot="0" OxygenAvailable="-100.0" Oxygen="-5.0" Condition="-5.0">
|
||||
<Conditional IsDead="false" />
|
||||
<RequiredItem items="weldingfueltank" type="Contained" />
|
||||
</StatusEffect>
|
||||
<StatusEffect type="OnWearing" target="Contained,Character" targetslot="0" targetlimbs="Torso" OxygenAvailable="-100.0" Oxygen="-7.0" Condition="-5.0">
|
||||
<RequiredItem items="incendiumfueltank" type="Contained" />
|
||||
<Affliction identifier="burn" amount="3.0" />
|
||||
</StatusEffect>
|
||||
</Wearable>
|
||||
<!-- ConnectionPanel which is required to exist inside the item for the WifiComponent to function, but is set to be inaccessable since it's not supposed to be used by the player -->
|
||||
<ConnectionPanel selectkey="Action" canbeselected="false" allowingameediting="false" msg="ItemMsgRewireScrewdriver" hudpriority="10">
|
||||
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
|
||||
<RequiredItem items="screwdriver" type="Equipped" />
|
||||
<input name="signal_in" displayname="connection.signalin" />
|
||||
<output name="signal_out" displayname="connection.signalout" />
|
||||
<input name="set_channel" displayname="connection.setchannel" />
|
||||
</ConnectionPanel>
|
||||
</Item>
|
||||
</Items>
|
BIN
Wifi Camera/Sounds/CameraBeep.ogg
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/Sounds/CameraBeep.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Wifi Camera/Sounds/CameraTurnOff.ogg
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/Sounds/CameraTurnOff.ogg
(Stored with Git LFS)
Normal file
Binary file not shown.
36
Wifi Camera/Texts/English.xml
Normal file
36
Wifi Camera/Texts/English.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<infotexts language="English" nowhitespace="false" translatedname="English">
|
||||
<entityname.cammonitor>Camera Monitor</entityname.cammonitor>
|
||||
<entityname.wificam>Wifi Camera</entityname.wificam>
|
||||
<entityname.wificampiratehelmet>Separatist Camera Helmet</entityname.wificampiratehelmet>
|
||||
<entityname.wificamballistichelmet1>Ballistic Camera Helmet</entityname.wificamballistichelmet1>
|
||||
<entityname.wificamballistichelmet2>Gunner's Camera Helmet</entityname.wificamballistichelmet2>
|
||||
<entityname.wificamballistichelmet3>Riot Camera Helmet</entityname.wificamballistichelmet3>
|
||||
<entityname.wificamchitinhelmet>Chitin Camera Helmet</entityname.wificamchitinhelmet>
|
||||
<entityname.wificamironhelmet>Iron Camera Helmet</entityname.wificamironhelmet>
|
||||
<entityname.wificamclownmask>Clown Camera Mask</entityname.wificamclownmask>
|
||||
<entityname.wificamclownmaskunique>Mother's Countenance with Camera</entityname.wificamclownmaskunique>
|
||||
<entityname.wificamclowndivingmask>Clown Camera Diving Mask</entityname.wificamclowndivingmask>
|
||||
<entityname.wificamdivingmask>Camera Diving Mask</entityname.wificamdivingmask>
|
||||
<entityname.monitorwiringdiagram>Camera Monitor Wiring Diagram</entityname.monitorwiringdiagram>
|
||||
<entityname.surveillancecamera>Wifi Surveillance Camera</entityname.surveillancecamera>
|
||||
<entitydescription.cammonitor>A monitor to watch the wifi camera broadcasts. Needs to be connected to a wifi component.</entitydescription.cammonitor>
|
||||
<entitydescription.wificam>Broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificam>
|
||||
<entitydescription.wificampiratehelmet>Protects your head and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificampiratehelmet>
|
||||
<entitydescription.wificamballistichelmet1>Protects your head and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamballistichelmet1>
|
||||
<entitydescription.wificamballistichelmet2>Protects your head and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamballistichelmet2>
|
||||
<entitydescription.wificamballistichelmet3>Protects your head and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamballistichelmet3>
|
||||
<entitydescription.wificamchitinhelmet>Protects your head and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamchitinhelmet>
|
||||
<entitydescription.wificamironhelmet>Protects your head and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamironhelmet>
|
||||
<entitydescription.wificamclownmask>Be a clown and broadcast your performance to the configured wifi channel. Requires a battery.</entitydescription.wificamclownmask>
|
||||
<entitydescription.wificamclownmaskunique>Broadcast the actions of Honkmother to the configured wifi channel. Requires a battery.</entitydescription.wificamclownmaskunique>
|
||||
<entitydescription.wificamclowndivingmask>Be a clown and broadcast your underwater performance to the configured wifi channel. Requires a battery.</entitydescription.wificamclowndivingmask>
|
||||
<entitydescription.wificamdivingmask>Prevents you from drowning and broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamdivingmask>
|
||||
<entitydescription.monitorwiringdiagram>Displays the intended wiring setup for the camera monitor when equipped.</entitydescription.monitorwiringdiagram>
|
||||
<entitydescription.surveillancecamera>Broadcasts the view to the configured wifi channel when wired to a power source. Can be attached anywhere on the inside and on fins and beams on the outside of your submarine.</entitydescription.surveillancecamera>
|
||||
<!-- UNUSED ASSETS -->
|
||||
<entityname.wificamheadset>Wifi Camera-Headset</entityname.wificamheadset>
|
||||
<entityname.wificaminjectorheadset>Wifi Auto-Injector Camera-Headset</entityname.wificaminjectorheadset>
|
||||
<entitydescription.wificamheadset>A heaset with a built-on camera. Broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificamheadset>
|
||||
<entitydescription.wificaminjectorheadset>A heaset with a built-on camera. Broadcasts your view to the configured wifi channel. Requires a battery.</entitydescription.wificaminjectorheadset>
|
||||
</infotexts>
|
33
Wifi Camera/Texts/Russian.xml
Normal file
33
Wifi Camera/Texts/Russian.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Translated by Kato Yuki (Plasma) -->
|
||||
<infotexts language="Russian" nowhitespace="false" translatedname="Русский">
|
||||
<entityname.cammonitor>Монитор для Видеонаблюдения</entityname.cammonitor>
|
||||
<entityname.wificam>Wi-Fi камера</entityname.wificam>
|
||||
<entityname.wificampiratehelmet>Шлем сепаратиста с камерой</entityname.wificampiratehelmet>
|
||||
<entityname.wificamballistichelmet1>Баллистический шлем с камерой</entityname.wificamballistichelmet1>
|
||||
<entityname.wificamballistichelmet2>Шлем стрелка с камерой</entityname.wificamballistichelmet2>
|
||||
<entityname.wificamballistichelmet3>Полицейский шлем с камерой</entityname.wificamballistichelmet3>
|
||||
<entityname.wificamchitinhelmet>Хитиновый шлем с камерой</entityname.wificamchitinhelmet>
|
||||
<entityname.wificamironhelmet>Железный шлем с камерой</entityname.wificamironhelmet>
|
||||
<entityname.wificamclownmask>Маска клоуна с камерой</entityname.wificamclownmask>
|
||||
<entityname.wificamclownmaskunique>Материнский взгляд, теперь через Wi-Fi!</entityname.wificamclownmaskunique>
|
||||
<entityname.wificamclowndivingmask>Подводная маска клоуна с камерой</entityname.wificamclowndivingmask>
|
||||
<entityname.wificamdivingmask>Подводная маска с камерой</entityname.wificamdivingmask>
|
||||
<entitydescription.cammonitor>Монитор видеонаблюдения для просмотра изображений со всех Wi-Fi камер. требуется подключение к Wi-Fi компоненту</entitydescription.cammonitor>
|
||||
<entitydescription.wificam>Wi-Fi камера. Оденьте её или повесьте на стену, и вы сможете дистанционно просматривать изображение с камер через монитор видеонаблюдения! Для работы требуеться аккумулятор.</entitydescription.wificam>
|
||||
<entitydescription.wificampiratehelmet>"Пусть всё смотрят как Коалиция сгинет!"</entitydescription.wificampiratehelmet>
|
||||
<entitydescription.wificamballistichelmet1>Камера тоже пуленепробиваймая!</entitydescription.wificamballistichelmet1>
|
||||
<entitydescription.wificamballistichelmet2>Увы, но перескоп через камеру не видно.</entitydescription.wificamballistichelmet2>
|
||||
<entitydescription.wificamballistichelmet3>"Давай, попробуй нарушить закон, пусть всё сморят!"</entitydescription.wificamballistichelmet3>
|
||||
<entitydescription.wificamchitinhelmet>Сила технологий и природы</entitydescription.wificamchitinhelmet>
|
||||
<entitydescription.wificamironhelmet>"Тише, мы проводим реконструкцию боя Руди и раптора."</entitydescription.wificamironhelmet>
|
||||
<entitydescription.wificamclownmask>Материнский взгляд у вас над ухом.</entitydescription.wificamclownmask>
|
||||
<entitydescription.wificamclownmaskunique>Маме тоже нужен присмотр.</entitydescription.wificamclownmaskunique>
|
||||
<entitydescription.wificamclowndivingmask>Материнский взгляд даже под водой</entitydescription.wificamclowndivingmask>
|
||||
<entitydescription.wificamdivingmask>Полезай в балласт, а мы посмотрим.</entitydescription.wificamdivingmask>
|
||||
<!-- UNUSED ASSETS -->
|
||||
<entityname.wificamheadset>Наушники с камерой</entityname.wificamheadset>
|
||||
<entityname.wificaminjectorheadset>Гарнитура с инжектором и камерой</entityname.wificaminjectorheadset>
|
||||
<entitydescription.wificamheadset>Для связи и наблюдения. Два по цене одного!</entitydescription.wificamheadset>
|
||||
<entitydescription.wificaminjectorheadset>Для связи, наблюдения, и лечения. Три по цене одного!</entitydescription.wificaminjectorheadset>
|
||||
</infotexts>
|
BIN
Wifi Camera/UI/CamOverlay.png
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/UI/CamOverlay.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Wifi Camera/UI/CameraMonitorDiagram.png
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/UI/CameraMonitorDiagram.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Wifi Camera/UI/RecOverlay.png
(Stored with Git LFS)
Normal file
BIN
Wifi Camera/UI/RecOverlay.png
(Stored with Git LFS)
Normal file
Binary file not shown.
9
Wifi Camera/filelist.xml
Normal file
9
Wifi Camera/filelist.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<contentpackage name="Wifi Camera" modversion="1.0.10" corepackage="False" steamworkshopid="3020618603" gameversion="1.6.17.0" expectedhash="4CF948BD22563AB4D8D9E1665D55744F">
|
||||
<Afflictions file="%ModDir%/Afflictions.xml" />
|
||||
<Item file="%ModDir%/Items/wificam.xml" />
|
||||
<ItemAssembly file="%ModDir%/Camera Monitor.xml" />
|
||||
<Text file="%ModDir%/Texts/English.xml" />
|
||||
<Text file="%ModDir%/Texts/Russian.xml" />
|
||||
<UIStyle file="%ModDir%/style.xml" />
|
||||
</contentpackage>
|
6
Wifi Camera/style.xml
Normal file
6
Wifi Camera/style.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<style>
|
||||
<MonitorWiringDiagram color="255,255,255,242" textcolor="0,0,0,255">
|
||||
<Sprite name="MonitorWiringDiagram" texture="%ModDir%/UI/CameraMonitorDiagram.png" size="0.0, 0.0" sourcerect="0,0,1256,772" slice="0,0,1256,772" origin="0.5,0.5" compress="false" />
|
||||
</MonitorWiringDiagram>
|
||||
</style>
|
Reference in New Issue
Block a user