diff --git a/addons/wirecutters/Assets/Data/Tang_C.edds b/addons/wirecutters/Assets/Data/Tang_C.edds new file mode 100644 index 00000000..63078ab9 Binary files /dev/null and b/addons/wirecutters/Assets/Data/Tang_C.edds differ diff --git a/addons/wirecutters/Assets/Data/Tang_C.edds.meta b/addons/wirecutters/Assets/Data/Tang_C.edds.meta new file mode 100644 index 00000000..084b7989 --- /dev/null +++ b/addons/wirecutters/Assets/Data/Tang_C.edds.meta @@ -0,0 +1,23 @@ +MetaFileClass { + Name "{80D82704DF6633A4}Assets/Tang_C.edds" + Configurations { + JPGResourceClass PC : "{DC555BD399D92412}Configs/System/ResourceTypes/PC/TextureUnspecified.conf" { + ColorSpace ToSRGB + } + JPGResourceClass XBOX_ONE : "{8F13AE697AE60784}Configs/System/ResourceTypes/XBOX_ONE/TextureUnspecified.conf" { + ColorSpace ToSRGB + } + JPGResourceClass XBOX_SERIES : "{D28E01700D90F52C}Configs/System/ResourceTypes/XBOX_SERIES/TextureUnspecified.conf" { + ColorSpace ToSRGB + } + JPGResourceClass PS4 : "{C6CD3D8752652D2A}Configs/System/ResourceTypes/PS4/TextureUnspecified.conf" { + ColorSpace ToSRGB + } + JPGResourceClass PS5 : "{6248F71B9D7C1E93}configs/ResourceTypes/PS5/TextureUnspecified.conf" { + ColorSpace ToSRGB + } + JPGResourceClass HEADLESS : "{699C82A6807668A7}Configs/System/ResourceTypes/HEADLESS/TextureUnspecified.conf" { + ColorSpace ToSRGB + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Assets/Data/Tang_n.edds b/addons/wirecutters/Assets/Data/Tang_n.edds new file mode 100644 index 00000000..8ee0bf40 Binary files /dev/null and b/addons/wirecutters/Assets/Data/Tang_n.edds differ diff --git a/addons/wirecutters/Assets/Data/Tang_n.edds.meta b/addons/wirecutters/Assets/Data/Tang_n.edds.meta new file mode 100644 index 00000000..0b48b2b7 --- /dev/null +++ b/addons/wirecutters/Assets/Data/Tang_n.edds.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{4D8024798567557F}Assets/Tang_n.edds" + Configurations { + JPGResourceClass PC : "{CEA87F769FD618D2}Configs/System/ResourceTypes/PC/TextureNormalMap.conf" { + } + JPGResourceClass XBOX_ONE : "{5B84FAB5D39FB8AA}Configs/System/ResourceTypes/XBOX_ONE/TextureNormalMap.conf" { + } + JPGResourceClass XBOX_SERIES : "{1B409AA3788B720F}Configs/System/ResourceTypes/XBOX_SERIES/TextureNormalMap.conf" { + } + JPGResourceClass PS4 : "{9533DFD9EDDCEDD2}Configs/System/ResourceTypes/PS4/TextureNormalMap.conf" { + } + JPGResourceClass PS5 : "{5CEA2418C9F889F8}configs/ResourceTypes/PS5/TextureTerrainNormal.conf" { + } + JPGResourceClass HEADLESS : "{FC84ABE4B37D0DA0}Configs/System/ResourceTypes/HEADLESS/TextureNormalMap.conf" { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Assets/Data/Wirecutter.emat b/addons/wirecutters/Assets/Data/Wirecutter.emat new file mode 100644 index 00000000..5ccd210d --- /dev/null +++ b/addons/wirecutters/Assets/Data/Wirecutter.emat @@ -0,0 +1,5 @@ +MatPBRBasic { + BCRMap "{80D82704DF6633A4}Assets/Tang_C.edds" + NormalPower 1.667 + NMOMap "{4D8024798567557F}Assets/Tang_n.edds" +} \ No newline at end of file diff --git a/addons/wirecutters/Assets/Data/Wirecutter.emat.meta b/addons/wirecutters/Assets/Data/Wirecutter.emat.meta new file mode 100644 index 00000000..d5110b2e --- /dev/null +++ b/addons/wirecutters/Assets/Data/Wirecutter.emat.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{214B721DCDBFB106}Assets/Wirecutter.emat" + Configurations { + EMATResourceClass PC { + } + EMATResourceClass XBOX_ONE : PC { + } + EMATResourceClass XBOX_SERIES : PC { + } + EMATResourceClass PS4 : PC { + } + EMATResourceClass PS5 : PC { + } + EMATResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Assets/Data/wirecuttermodel2.xob b/addons/wirecutters/Assets/Data/wirecuttermodel2.xob new file mode 100644 index 00000000..3b5f0c09 Binary files /dev/null and b/addons/wirecutters/Assets/Data/wirecuttermodel2.xob differ diff --git a/addons/wirecutters/Assets/Data/wirecuttermodel2.xob.meta b/addons/wirecutters/Assets/Data/wirecuttermodel2.xob.meta new file mode 100644 index 00000000..31f71b47 --- /dev/null +++ b/addons/wirecutters/Assets/Data/wirecuttermodel2.xob.meta @@ -0,0 +1,49 @@ +MetaFileClass { + Name "{2DF3BF7B29A93115}Assets/wirecuttermodel2.xob" + Configurations { + FBXResourceClass PC { + ExportSkinning 1 + ExportMorphs 1 + MaterialAssigns { + MaterialAssignClass "{62F7634662163561}" { + SourceMaterial "DefaultGeneratedMaterial" + AssignedMaterial "{24C74A9E7CFC388D}Assets/Data/DefaultGeneratedMaterial.emat" + } + MaterialAssignClass "{62F7634662163573}" { + SourceMaterial "Material" + AssignedMaterial "{214B721DCDBFB106}Assets/Wirecutter.emat" + } + } + MeshParams { + MeshParam Cube { + } + MeshParam wirecutterL { + } + MeshParam wirecutterR { + } + } + Common TXOCommonClass "{62F76346676A1D5C}" : "{0877E7C4BB2B2C9A}Configs/System/ResourceTypes/PC/MeshObjectCommon.conf" { + } + } + FBXResourceClass XBOX_ONE : PC { + Common TXOCommonClass "{62F76346676A0EBC}" : "{9D5B6207F7628CE2}Configs/System/ResourceTypes/XBOX_ONE/MeshObjectCommon.conf" { + } + } + FBXResourceClass XBOX_SERIES : PC { + Common TXOCommonClass "{62F76346676A0994}" : "{DD9F02115C764647}Configs/System/ResourceTypes/XBOX_SERIES/MeshObjectCommon.conf" { + } + } + FBXResourceClass PS4 : PC { + Common TXOCommonClass "{62F76346676A085B}" : "{53EC476BC921D99A}Configs/System/ResourceTypes/PS4/MeshObjectCommon.conf" { + } + } + FBXResourceClass PS5 : PC { + Common TXOCommonClass "{62F76346676A08D8}" : "{F62AA8E7B8EA9D26}configs/ResourceTypes/PS5/MeshObjectCommon.conf" { + } + } + FBXResourceClass HEADLESS : PC { + Common TXOCommonClass "{62F76346676A0B11}" : "{3A5B3356978039E8}Configs/System/ResourceTypes/HEADLESS/MeshObjectCommon.conf" { + } + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/wirecutters/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf new file mode 100644 index 00000000..31cc4dbc --- /dev/null +++ b/addons/wirecutters/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf @@ -0,0 +1,17 @@ +SCR_EntityCatalogMultiList { + m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{62F370D85F07C5CC}" { + m_sEntityPrefab "{8554ED3F088BADA6}Prefabs/Items/Core/wirecutters.et" + m_aEntityDataList { + SCR_ArsenalItem "{5C62F7D838B75E1B}" { + m_eItemType EQUIPMENT + m_iSupplyCost 15 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/wirecutters/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta new file mode 100644 index 00000000..185e41b2 --- /dev/null +++ b/addons/wirecutters/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/wirecutters/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf new file mode 100644 index 00000000..846c302d --- /dev/null +++ b/addons/wirecutters/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -0,0 +1,17 @@ +SCR_EntityCatalogMultiList { + m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{62F4067E72A80B2F}" { + m_sEntityPrefab "{8554ED3F088BADA6}Prefabs/Items/Core/wirecutters.et" + m_aEntityDataList { + SCR_ArsenalItem "{5C62F7D838B75E1B}" { + m_eItemType EQUIPMENT + m_iSupplyCost 15 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta b/addons/wirecutters/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta new file mode 100644 index 00000000..44514319 --- /dev/null +++ b/addons/wirecutters/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Items/Core/Wirecutters/wirecutters.et b/addons/wirecutters/Prefabs/Items/Core/Wirecutters/wirecutters.et new file mode 100644 index 00000000..50f3720c --- /dev/null +++ b/addons/wirecutters/Prefabs/Items/Core/Wirecutters/wirecutters.et @@ -0,0 +1,92 @@ +GenericEntity { + ID "62F35B4168194668" + components { + InventoryItemComponent "{62F35B416819467A}" { + Attributes SCR_ItemAttributeCollection "{62F35B4168194675}" { + ItemDisplayName UIInfo "{62F35B4168194649}" { + Name "Wirecutters" + } + ItemPhysAttributes ItemPhysicalAttributes "{62F35B4168194640}" { + Weight 0.01 + SizeSetupStrategy Manual + ItemVolume 10 + RestingAdditiveRotationLS 0 0 0 + RestingAdditiveOffsetLS 0 0 0 + } + ItemAnimationAttributes ItemAnimationAttributes "{62F35B4119C1B546}" { + AnimationAttachments { + AnimationAttachmentInfo "{62F35B4107169A7E}" { + AnimGraph "{82906ACD75DF8523}Assets/Items/Equipment/workspaces/Flashlight_MX991.agr" + AnimInstance "{903E4A0B96B34B8F}Assets/Items/Equipment/workspaces/MX991_player.asi" + BindingName "Gadget" + } + } + HandAdditiveRotation 270 16 98.1 + HandAdditiveTranslation -0.005 0.12 0 + } + CustomAttributes { + PreviewRenderAttributes "{62F35B41089C2A0A}" { + CameraPreset Top + CameraDistanceToItem 0.34 + } + CharacterModifierAttributes "{62F35B41347CC711}" { + Supress1hShooting 0 + } + } + m_Size SLOT_1x1 + m_SlotType SLOT_LOADOUT_STORAGE + } + } + MeshObject "{62F35B411275726A}" { + Object "{2DF3BF7B29A93115}Assets/wirecuttermodel2.xob" + } + SCR_GadgetManagerComponent "{62F35B4086F40A25}" { + } + SCR_SoundDataComponent "{62F35B4168194646}" { + m_aAudioSourceConfiguration { + SCR_AudioSourceConfiguration "{62F35B416819465A}" { + m_sSoundProject "{12A94705DF2BFD25}Sounds/Items/_SharedData/PickUp/Items_PickUp_Generic.acp" + m_sSoundEventName "SOUND_PICK_UP" + } + SCR_AudioSourceConfiguration "{62F35B416819465F}" { + m_sSoundProject "{12A94705DF2BFD25}Sounds/Items/_SharedData/PickUp/Items_PickUp_Generic.acp" + m_sSoundEventName "SOUND_EQUIP" + m_eFlags 0 + } + SCR_AudioSourceConfiguration "{62F35B4168194651}" { + m_sSoundProject "{CC0E5A1324E761C1}Sounds/Items/_SharedData/Drop/Items_Drop_Generic.acp" + m_sSoundEventName "SOUND_DROP" + } + } + } + SCR_WirecutterComponent "{62F370D8F0288483}" { + m_eAnimVariable ADRIANOV + m_eUseMask 7 + } + ActionsManagerComponent "{62F35B4168194654}" { + ActionContexts { + UserActionContext "{62F35B4168194656}" { + ContextName "default" + Position PointInfo "{62F35B4168194657}" { + } + } + } + additionalActions { + SCR_PickUpItemAction "{62F35B41681946AA}" { + ParentContextList { + "default" + } + UIInfo UIInfo "{62F35B41681946AB}" { + Name "#AR-Inventory_PickUp" + } + } + } + } + RplComponent "{62F35B41681946A7}" { + "Rpl State Override" Runtime + "Parent Node From Parent Entity" 0 + } + Hierarchy "{62F35B41681946B9}" { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Items/Core/Wirecutters/wirecutters.et.meta b/addons/wirecutters/Prefabs/Items/Core/Wirecutters/wirecutters.et.meta new file mode 100644 index 00000000..f506a196 --- /dev/null +++ b/addons/wirecutters/Prefabs/Items/Core/Wirecutters/wirecutters.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{8554ED3F088BADA6}Prefabs/Items/Core/wirecutters.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et new file mode 100644 index 00000000..3c13085f --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et @@ -0,0 +1,25 @@ +StaticModelEntity : "{C289F5D866F0E46E}Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et" { + ID "51E2F0F0E96F07CE" + components { + ActionsManagerComponent "{62F7138ECD3B128A}" { + ActionContexts { + UserActionContext "{62F7138ECAC5B7DB}" { + UIInfo UIInfo "{62F3757643FDA885}" { + } + Position PointInfo "{62F3757673BBD7DA}" { + Offset 0.0711 0.5883 0 + } + } + } + additionalActions { + Wirecutter_UserAction "{62F7138E9A63AA3F}" { + UIInfo SCR_ActionUIInfo "{62F3757618B40C7E}" { + } + VisibilityRange 2 + m_AudioSourceConfiguration SCR_AudioSourceConfiguration "{62F7042158164306}" { + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et.meta b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et.meta new file mode 100644 index 00000000..00e0e90a --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{CAE1588B6265A2AB}Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_Short_noStake.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et new file mode 100644 index 00000000..b7abf71e --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et @@ -0,0 +1,41 @@ +StaticModelEntity : "{CD7A3D7E7A549B63}Prefabs/Structures/Core/Wall_Base.et" { + ID "51E2F0F0E96F07CE" + components { + ActionsManagerComponent "{62F7138ECD3B128A}" { + ActionContexts { + UserActionContext "{62F7138ECAC5B7DB}" { + UIInfo SCR_ActionUIInfo "{62F3757643FDA885}" { + Name "Wirecutter_UserAction" + } + ContextName "Wirecutter_UserAction" + Position PointInfo "{62F3757673BBD7DA}" { + Offset 0.0649 0.818 0 + } + Radius 1.5 + Height 0 + FilterActionsUsingCache 0 + } + } + additionalActions { + Wirecutter_UserAction "{62F7138E9A63AA3F}" { + ParentContextList { + "Wirecutter_UserAction" + } + UIInfo SCR_ActionUIInfo "{62F3757618B40C7E}" { + Name "Cut" + m_sIconName "barrel" + } + ActionTitle "Wirecutter_UserAction" + VisibilityRange 2 + Duration 10 + m_AudioSourceConfiguration SCR_AudioSourceConfiguration "{62F7042158164306}" { + m_sSoundProject "{9CA570A42444F06A}Sounds/fence_rattle.acp" + m_sSoundEventName "SOUND_FENCE_RATTLE" + m_eFlags 5 + } + m_vSoundOffset 2.7 0 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et.meta b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et.meta new file mode 100644 index 00000000..81d2814e --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{C289F5D866F0E46E}Prefabs/Structures/Walls/BarbedWire/BarbedTape_01/BarbedTape_01_base.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et new file mode 100644 index 00000000..d7338bb0 --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et @@ -0,0 +1,42 @@ +SCR_DestructibleEntity : "{ABE1EFC16D47A8C2}Prefabs/Structures/Core/Wall_MultiPhase_Base.et" { + ID "51E2F0F09703F07B" + components { + ActionsManagerComponent "{62F364B31867605C}" { + ActionContexts { + UserActionContext "{62F3757645E60669}" { + UIInfo UIInfo "{62F3757643FDA885}" { + Name "Wirecutter_UserAction" + } + ContextName "Wirecutter_UserAction" + Position PointInfo "{62F3757673BBD7DA}" { + Offset 1.013 0.4836 0 + } + Radius 1.5 + FilterActionsUsingCache 0 + } + } + additionalActions { + Wirecutter_UserAction "{62F375766E2356EA}" { + ParentContextList { + "Wirecutter_UserAction" + } + UIInfo SCR_ActionUIInfo "{62F3757618B40C7E}" { + Name "Cut" + m_sIconName "barrel" + } + ActionTitle "Wirecutter_UserAction" + VisibilityRange 1.5 + Duration 5 + m_AudioSourceConfiguration SCR_AudioSourceConfiguration "{62F7042158164306}" { + m_sSoundProject "{9CA570A42444F06A}Sounds/fence_rattle.acp" + m_sSoundEventName "SOUND_FENCE_RATTLE" + m_eFlags 5 + } + m_vSoundOffset 2.7 0 0 + } + } + } + RplComponent "{62F364B31C817416}" { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et.meta b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et.meta new file mode 100644 index 00000000..e8bc56fc --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{8E065B1C87FAF088}Prefabs/Structures/Walls/Net/NetFence_02/NetFence_02_base.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et new file mode 100644 index 00000000..724b8564 --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et @@ -0,0 +1,43 @@ +SCR_DestructibleEntity : "{ABE1EFC16D47A8C2}Prefabs/Structures/Core/Wall_MultiPhase_Base.et" { + ID "51E2F0F0E96F07CE" + components { + ActionsManagerComponent "{62F366C43F52CED0}" { + ActionContexts { + UserActionContext "{62F366C43C4664C3}" { + UIInfo UIInfo "{62F366C438592A52}" { + Name "Wirecutter_UserAction" + } + ContextName "Wirecutter_UserAction" + Position PointInfo "{62F366C4C75CBA9F}" { + Offset 1.013 0.4338 0 + } + Radius 1.5 + Height 0 + FilterActionsUsingCache 0 + } + } + additionalActions { + Wirecutter_UserAction "{62F366C4ED51B68F}" { + ParentContextList { + "Wirecutter_UserAction" + } + UIInfo SCR_ActionUIInfo "{62F3661749E2854F}" { + Name "Cut" + m_sIconName "barrel" + } + ActionTitle "Wirecutter_UserAction" + VisibilityRange 1.5 + Duration 7 + m_AudioSourceConfiguration SCR_AudioSourceConfiguration "{62F7042158164306}" { + m_sSoundProject "{9CA570A42444F06A}Sounds/fence_rattle.acp" + m_sSoundEventName "SOUND_FENCE_RATTLE" + m_eFlags 5 + } + m_vSoundOffset 2 0 0 + } + } + } + RplComponent "{62F3658A58EF35E2}" { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et.meta b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et.meta new file mode 100644 index 00000000..714b7064 --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{8BF398DB6CA80A3E}Prefabs/Structures/Walls/Net/NetFence_03/NetFence_03_base.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et new file mode 100644 index 00000000..202b25ca --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et @@ -0,0 +1,43 @@ +SCR_DestructibleEntity : "{ABE1EFC16D47A8C2}Prefabs/Structures/Core/Wall_MultiPhase_Base.et" { + ID "51E2F0F09703F07B" + components { + ActionsManagerComponent "{62F366C4C8AAF615}" { + ActionContexts { + UserActionContext "{62F366C4C876CE35}" { + UIInfo UIInfo "{62F366C4F61ED3E8}" { + Name "Wirecutter_UserAction" + } + ContextName "Wirecutter_UserAction" + Position PointInfo "{62F366C4F2B0E454}" { + Offset 1.013 0.4147 0 + } + Radius 1.5 + Height 0 + FilterActionsUsingCache 0 + } + } + additionalActions { + Wirecutter_UserAction "{62F366C4927C2E2E}" { + ParentContextList { + "Wirecutter_UserAction" + } + UIInfo SCR_ActionUIInfo "{62F3661749E2854F}" { + Name "Cut" + m_sIconName "barrel" + } + ActionTitle "Wirecutter_UserAction" + VisibilityRange 1.5 + Duration 6 + m_AudioSourceConfiguration SCR_AudioSourceConfiguration "{62F7042158164306}" { + m_sSoundProject "{9CA570A42444F06A}Sounds/fence_rattle.acp" + m_sSoundEventName "SOUND_FENCE_RATTLE" + m_eFlags 5 + } + m_vSoundOffset 2 0 0 + } + } + } + RplComponent "{62F3658A44A4BD3A}" { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et.meta b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et.meta new file mode 100644 index 00000000..ccf4967b --- /dev/null +++ b/addons/wirecutters/Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{923AD38CFC14EF3C}Prefabs/Structures/Walls/Net/NetFence_04/NetFence_04_base.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Sounds/fence_rattle.acp b/addons/wirecutters/Sounds/fence_rattle.acp new file mode 100644 index 00000000..12991e10 --- /dev/null +++ b/addons/wirecutters/Sounds/fence_rattle.acp @@ -0,0 +1,157 @@ +AudioClass { + sounds { + SoundClass { + id 7177 + name "SOUND_FENCE_RATTLE" + version 5 + tl -109 -311.333 + ins { + ConnectionsClass connections { + id 64 + links { + ConnectionClass connection { + id 5138 + port 65 + } + } + } + } + outState 8203 + outStatePort 79879 + } + } + mixers { + MixerClass { + id 8203 + name "OutputState 8" + version 4 + tl 100 -75 + res "{B764D803219C775E}Sounds/FinalMix.afm" + ins { + ConnectionsClass connections { + id 79879 + links { + ConnectionClass connection { + id 7177 + port 65 + } + } + } + } + pi { + 16384 0 + } + path "{B764D803219C775E}Sounds/FinalMix.afm" + inputs { + "WPN_Handling" "WPN_Shots" "WPN_Explosions" "WNP_BulletHits" "CHAR" "ENV_AMB_2D" "VEH_Animations" "Impacts" "Dialogue" "Music" "ENV_Doors" "VEH_Engine" "VEH_Tires" "VON" "SFX" "SFX_Reverb" "VON_Reverb" "Dialogue_Reverb" "Impacts_EXT" "ENV_AMB_3D" "WPN_SonicCracks" "CHAR_Gear" "PA" "SFX_Reverb_Exterior" "UI" "ENV_AMB_3D_Reverb_Exterior" "SFX_Direct" "SFX_Reverb_Small" "SFX_Reverb_Medium" "SFX_Reverb_Large" + } + } + } + shaders { + ShaderClass { + id 5138 + name "Shader 5" + version 5 + tl -312 -312.333 + ins { + ConnectionsClass connections { + id 0 + links { + ConnectionClass connection { + id 6172 + port 65 + } + } + } + ConnectionsClass connections { + id 1 + links { + ConnectionClass connection { + id 3091 + port 65 + } + } + } + ConnectionsClass connections { + id 2 + links { + ConnectionClass connection { + id 4117 + port 65 + } + } + } + ConnectionsClass connections { + id 4 + } + ConnectionsClass connections { + id 64 + links { + ConnectionClass connection { + id 1028 + port 65 + } + } + } + } + pi { + 23 0 + } + } + } + amplitudes { + AmplitudeClass { + id 3091 + name "Amplitude 3" + version 5 + tl -559 -477.333 + curve Linear + outerRange 14 + EnableDirectivity 1 + DirectivityCurve { + CurvePoint "1" { + X 0.01402 + Y 0.01159 + } + CurvePoint "2" { + X 0.2952 + Y 1.0398 + } + } + } + } + frequency { + FrequencyClass { + id 4117 + name "Frequency 4" + version 5 + tl -558 -400.333 + enableDirectivity 1 + directivityFactor 0.55 + } + } + banks_local { + BankLocalClass { + id 1028 + name "Bank 1" + version 7 + tl -744 -330.333 + "Pitch variance" 1 + Samples { + AudioBankSampleClass Sample { + Filename "{123CAC4F752ACA69}Sounds/wirecutting_03.wav" + } + } + } + } + spatialities { + SpatialityClass { + id 6172 + name "Spatiality 6" + version 5 + tl -556 -547.333 + spatialFactor 1 + } + } + version 1 +} \ No newline at end of file diff --git a/addons/wirecutters/Sounds/fence_rattle.acp.meta b/addons/wirecutters/Sounds/fence_rattle.acp.meta new file mode 100644 index 00000000..b74e888c --- /dev/null +++ b/addons/wirecutters/Sounds/fence_rattle.acp.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{9CA570A42444F06A}Sounds/fence_rattle.acp" + Configurations { + AudioProjectResourceClass PC { + } + AudioProjectResourceClass XBOX_ONE : PC { + } + AudioProjectResourceClass XBOX_SERIES : PC { + } + AudioProjectResourceClass PS4 : PC { + } + AudioProjectResourceClass PS5 : PC { + } + AudioProjectResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/Sounds/wirecutting_03.wav b/addons/wirecutters/Sounds/wirecutting_03.wav new file mode 100644 index 00000000..ed601e48 Binary files /dev/null and b/addons/wirecutters/Sounds/wirecutting_03.wav differ diff --git a/addons/wirecutters/Sounds/wirecutting_03.wav.meta b/addons/wirecutters/Sounds/wirecutting_03.wav.meta new file mode 100644 index 00000000..c492cfc7 --- /dev/null +++ b/addons/wirecutters/Sounds/wirecutting_03.wav.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{123CAC4F752ACA69}Sounds/wirecutting_03.wav" + Configurations { + WAVResourceClass PC : "{F72B05D02F3F135E}Configs/System/ResourceTypes/PC/Sound.conf" { + } + WAVResourceClass XBOX_ONE : "{A0776163143143AC}Configs/System/ResourceTypes/XBOX_ONE/Sound.conf" { + } + WAVResourceClass XBOX_SERIES : "{382981CA1FC1C8DB}Configs/System/ResourceTypes/XBOX_SERIES/Sound.conf" { + } + WAVResourceClass PS4 : "{89EB939911B4C093}Configs/System/ResourceTypes/PS4/Sound.conf" { + } + WAVResourceClass PS5 : "{A584A3B556D4A981}configs/ResourceTypes/PS5/Sound.conf" { + } + WAVResourceClass HEADLESS : "{D63592CA950AF3A8}Configs/System/ResourceTypes/HEADLESS/Sound.conf" { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/_Layers/default.layer b/addons/wirecutters/_Layers/default.layer new file mode 100644 index 00000000..b141a960 --- /dev/null +++ b/addons/wirecutters/_Layers/default.layer @@ -0,0 +1,15 @@ +GenericEntity : "{0C923757B8B8306B}Prefabs/Compositions/Misc/FreeRoamBuilding/BarbedTapeTriple_S_USSR_01.et" { + coords 3242.808 11.878 2777.427 +} +GenericEntity : "{5519B339E041781E}Prefabs/Compositions/Misc/SubCompositions/Fortifications/Sandbag_Wall_BarbedWire_US_01.et" { + coords 3245.414 11.582 2779.767 +} +GenericEntity : "{8554ED3F088BADA6}Prefabs/Items/Core/wirecutters.et" { + coords 3238.572 11.424 2780.488 +} +GenericEntity : "{9721D32C8E5CDE9C}Prefabs/Compositions/Misc/FreeRoamBuilding/Layouts/FRB_BarbedTapeKnifeRest.et" { + coords 3242.928 12.668 2771.769 +} +GenericEntity : "{A0A4E4587FEABF83}Prefabs/Compositions/Misc/FreeRoamBuilding/BarbedTapeKnifeRest_S_US_01.et" { + coords 3242.537 11.103 2783.71 +} \ No newline at end of file diff --git a/addons/wirecutters/addon.gproj b/addons/wirecutters/addon.gproj new file mode 100644 index 00000000..b7a8b762 --- /dev/null +++ b/addons/wirecutters/addon.gproj @@ -0,0 +1,22 @@ +GameProject { + ID "Wirecutters2" + GUID "62F364B35E9B51B0" + TITLE "Wirecutters2" + Dependencies { + "58D0FB3206B6F859" + } + Configurations { + GameProjectConfig PC { + } + GameProjectConfig XBOX_ONE { + } + GameProjectConfig XBOX_SERIES { + } + GameProjectConfig PS4 { + } + GameProjectConfig PS5 { + } + GameProjectConfig HEADLESS { + } + } +} \ No newline at end of file diff --git a/addons/wirecutters/scripts/Game/Components/Gadgets/SCR_WirecutterComponent.c b/addons/wirecutters/scripts/Game/Components/Gadgets/SCR_WirecutterComponent.c new file mode 100644 index 00000000..d345d6ce --- /dev/null +++ b/addons/wirecutters/scripts/Game/Components/Gadgets/SCR_WirecutterComponent.c @@ -0,0 +1,7 @@ +class SCR_WirecutterComponentClass : SCR_GadgetComponentClass +{ +} + +class SCR_WirecutterComponent : SCR_GadgetComponent +{ +} \ No newline at end of file diff --git a/addons/wirecutters/scripts/Game/UserActions/Wirecutter_UserAction.c b/addons/wirecutters/scripts/Game/UserActions/Wirecutter_UserAction.c new file mode 100644 index 00000000..697c6aed --- /dev/null +++ b/addons/wirecutters/scripts/Game/UserActions/Wirecutter_UserAction.c @@ -0,0 +1,119 @@ +class Wirecutter_UserAction : ScriptedUserAction +{ + [Attribute("", UIWidgets.Auto)] + protected ref SCR_AudioSourceConfiguration m_AudioSourceConfiguration; + + [Attribute("0", UIWidgets.ComboBox, "Instrument type", "", ParamEnumArray.FromEnum(SCR_EInstrumentType) )] + protected SCR_EInstrumentType m_eInstrumentType; + + [Attribute("", UIWidgets.Coords)] + private vector m_vSoundOffset; + + + protected SCR_GadgetManagerComponent m_GadgetManager; + protected IEntity m_pUser; + protected AudioHandle m_AudioHandle = AudioHandle.Invalid; + protected static ref ScriptInvokerInt2 s_onFenceCut; + + override void OnActionStart(IEntity pUserEntity) + { + if (s_onFenceCut) + s_onFenceCut.Invoke(GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(pUserEntity), m_eInstrumentType); + + SCR_SoundManagerEntity soundManagerEntity = GetGame().GetSoundManagerEntity(); + if (!soundManagerEntity) + return; + + if (!m_AudioSourceConfiguration || !m_AudioSourceConfiguration.IsValid()) + return; + + SCR_AudioSource audioSource = soundManagerEntity.CreateAudioSource(GetOwner(), m_AudioSourceConfiguration); + if (!audioSource) + return; + + vector mat[4]; + IEntity owner = GetOwner(); + owner.GetTransform(mat); + mat[3] = owner.CoordToParent(m_vSoundOffset); + + AudioSystem.TerminateSound(m_AudioHandle); + soundManagerEntity.PlayAudioSource(audioSource); + m_AudioHandle = audioSource.m_AudioHandle; + } + + override void OnActionCanceled(IEntity pOwnerEntity, IEntity pUserEntity) + { + AudioSystem.TerminateSound(m_AudioHandle); + + SCR_SoundManagerEntity soundManagerEntity = GetGame().GetSoundManagerEntity(); + if (!soundManagerEntity) + return; + + if (!m_AudioSourceConfiguration || m_AudioSourceConfiguration.m_sSoundProject == string.Empty) + return; + + SCR_AudioSourceConfiguration audioSourceConfiguration = new SCR_AudioSourceConfiguration; + audioSourceConfiguration.m_sSoundProject = m_AudioSourceConfiguration.m_sSoundProject; + audioSourceConfiguration.m_eFlags = m_AudioSourceConfiguration.m_eFlags; + audioSourceConfiguration.m_sSoundEventName = SCR_SoundEvent.SOUND_STOP_PLAYING; + + SCR_AudioSource audioSource = soundManagerEntity.CreateAudioSource(pOwnerEntity, audioSourceConfiguration); + if (!audioSource) + return; + + vector mat[4]; + pOwnerEntity.GetTransform(mat); + mat[3] = pOwnerEntity.CoordToParent(m_vSoundOffset); + + soundManagerEntity.PlayAudioSource(audioSource, mat); + m_AudioHandle = audioSource.m_AudioHandle; + } + + IEntity GetWirecutter(notnull IEntity ent) + { + SCR_GadgetManagerComponent gadgetManager = SCR_GadgetManagerComponent.GetGadgetManager(ent); + if (!gadgetManager) + return null; + + return gadgetManager.GetHeldGadget(); + } + + + void SetNewGadgetManager(IEntity from, IEntity to) + { + m_GadgetManager = SCR_GadgetManagerComponent.GetGadgetManager(to); + } + + + override bool CanBeShownScript(IEntity user) + { + if (!m_GadgetManager) + { + m_GadgetManager = SCR_GadgetManagerComponent.GetGadgetManager(user); + + SCR_PlayerController playerController = SCR_PlayerController.Cast(GetGame().GetPlayerController()); + if (playerController) + playerController.m_OnControlledEntityChanged.Insert(SetNewGadgetManager); + + return true; + }; + + if (!SCR_WirecutterComponent.Cast(m_GadgetManager.GetHeldGadgetComponent())) + return false; + + return true; + } + + override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity) + { + if (!Replication.IsServer()) + return; + + SCR_EntityHelper.DeleteEntityAndChildren(pOwnerEntity); + } + +void ~Wirecutter_UserAction() + { + AudioSystem.TerminateSound(m_AudioHandle); + } +}; \ No newline at end of file