diff --git a/SQF/dayz_code/Configs/CfgExtra/HelperVectors.hpp b/SQF/dayz_code/Configs/CfgExtra/HelperVectors.hpp index 793ca631e..20f8fa2c0 100644 --- a/SQF/dayz_code/Configs/CfgExtra/HelperVectors.hpp +++ b/SQF/dayz_code/Configs/CfgExtra/HelperVectors.hpp @@ -5,160 +5,196 @@ // Author: Victor the Cleaner // Date: August 2021 // -// Helper array vectors for "Remove" and "Deconstruct" of modular objects. +// Helper array vectors for Remove and Deconstruct of modular objects. // Similar to snappoints.hpp, but customized to specific objects for improved visual appeal. // +// Pivot or Bottom entry should always be listed first in the array. +// +// Any object with an animating door should have its helper listed last in the array. +// fn_displayHelpers.sqf will check this to prevent the helper from floating in mid air. +// /////////////////////////////////////////////////////////////////////////////////////////////////// -// Known Values -#define mX1 5.28 // metal floor, width (x,y) -#define mZ1 0.3 // metal floor, height (z) -#define pZ1 3.05 // metal pillar, height (z) -#define cZ1 3.37 // cinder wall full, height (z) -#define cH1 1.5 // cinder wall half, height (z) -#define gZ1 6.8 // cinder gate frame, height (z) - -// Metal -#define mX2 2.64 // metal floor, half width -#define mX4 1.32 // metal floor, quarter width -#define mZ2 0.15 // metal floor, half height -#define pZ2 1.525 // metal pillar, half height (z) - -// Cinder -#define cX1 mX1 // cinder wall full, width (x) -#define cX2 2.64 // cinder wall full, half width -#define cZ2 1.685 // cinder wall full, half height -#define cH2 0.75 // cinder wall half, half height -#define gUP 5.055 // cinder gate frame, upper left/right (3/4 z) - -/* -// Metal (derived) -#define mX2 mX1 / 2 // metal floor, half width -#define mX4 mX1 / 4 // metal floor, quarter width -#define mZ2 mZ1 / 2 // metal floor, half height -#define pZ2 pZ1 / 2 // metal pillar, half height (z) - -// Cinder (derived) -#define cX1 mX1 // cinder wall full, width (x) -#define cX2 cX1 / 2 // cinder wall full, half width -#define cZ2 cZ1 / 2 // cinder wall full, half height -#define cH2 cH1 / 2 // cinder wall half, half height -#define gUP cZ2 * 3 // cinder gate frame, upper left/right (3/4 z) -*/ class Helpers; class HelperVectors: Helpers { class vector { size = 3; - radius = 8; }; /////////////////////////////////////////////////////////////////////////////////////////// // - // Metal Objects + // Modular Metal // /////////////////////////////////////////////////////////////////////////////////////////// - class MetalFloor_DZ: vector { - points[] = { - { 0, 0, mZ2 }, // Pivot - { 0, -mX2, mZ2 }, // Back - { 0, mX2, mZ2 }, // Front - { -mX2, 0, mZ2 }, // Left - { mX2, 0, mZ2 } // Right - }; - }; - class Land_wreck_metal_floor: vector { - points[] = { - { 0, -mX2, mZ2 }, // Back - { 0, mX2, mZ2 }, // Front - { -mX2, 0, mZ2 }, // Left - { mX2, 0, mZ2 } // Right - }; - }; - class MetalFloor_Half_DZ: vector { - points[] = { - // { 0, 0, mZ2 }, // Pivot (removed) - { 0, -mX2, mZ2 }, // Back - { 0, mX2, mZ2 }, // Front - { -mX4, 0, mZ2 }, // Left - { mX4, 0, mZ2 } // Right - }; - }; - class MetalFloor_Quarter_DZ: vector { - points[] = { - // { 0, 0, mZ2 }, // Pivot (removed) - { 0, -mX4, mZ2 }, // Back - { 0, mX4, mZ2 }, // Front - { -mX4, 0, mZ2 }, // Left - { mX4, 0, mZ2 } // Right - }; - radius = 4; - }; class MetalFloor4x_DZ: vector { points[] = { - { 0, 0, mZ2 }, // Pivot - { 0, -mX1, mZ2 }, // Back - { 0, mX1, mZ2 }, // Front - { -mX1, 0, mZ2 }, // Left - { mX1, 0, mZ2 } // Right + { 0, 0, 0.141 }, // Pivot + { 0, -5.27, 0.141 }, // Back + { 0, 5.27, 0.141 }, // Front + { -5.27, 0, 0.141 }, // Left + { 5.27, 0, 0.141 } // Right }; - radius = 15; }; class Land_metal_floor_2x2_wreck: MetalFloor4x_DZ {}; + class MetalFloor_DZ: vector { + points[] = { + { 0, -0.003, 0.141 }, // Pivot + { 0, -2.638, 0.141 }, // Back + { 0, 2.632, 0.141 }, // Front + { -2.635, -0.003, 0.141 }, // Left + { 2.635, -0.003, 0.141 } // Right + }; + }; + + class Land_wreck_metal_floor: vector { + points[] = { + { 0, -2.638, 0.141 }, // Back + { 0, 2.632, 0.141 }, // Front + { -2.635, -0.003, 0.141 }, // Left + { 2.635, -0.003, 0.141 } // Right + }; + }; + + class MetalFloor_Half_DZ: vector { + points[] = { + { -0.006, -2.623, 0.132 }, // Back + { -0.006, 2.647, 0.132 }, // Front + { -1.3235, 0.012, 0.132 }, // Left + { 1.3115, 0.012, 0.132 } // Right + }; + }; + + class MetalFloor_Quarter_DZ: vector { + points[] = { + { -0.006, -1.2055, 0.132 }, // Back + { -0.006, 1.4295, 0.132 }, // Front + { -1.3235, 0.112, 0.132 }, // Left + { 1.3115, 0.112, 0.132 } // Right + }; + }; + class MetalPillar_DZ: vector { points[] = { - {0, 0, 0 }, // Pivot - {0, 0, pZ1 }, // Top - {0, 0, pZ2 } // Center (replaces L/R) + {0, 0, 0.004 }, // Pivot + {0, 0, 1.510 }, // Center + {0, 0, 3.024 } // Top }; - radius = 4; }; + + class MetalContainer1A_DZ { + points[] = { + { 0, 0, -1.26788 }, // Pivot + { 0, -3.05, 0 }, // Back + { 0, 3.05, 0 }, // Front + { -1.2, 0, 0 }, // Left + { 1.2, 0, 0 }, // Right + { 0, 0, 1.26788 } // Top + }; + }; + class MetalContainer1B_DZ: MetalContainer1A_DZ {}; + class MetalContainer1G_DZ: MetalContainer1A_DZ {}; + + class MetalContainer2D_DZ { + points[] = { + { 0, 0, -2.54288 }, // Pivot + { 0, -3.05, 0 }, // Back + { 0, 3.05, 0 }, // Front + { -1.2, 0, 0 }, // Left + { 1.2, 0, 0 }, // Right + { 0, 0, 2.54288 } // Top + }; + }; + class Metal_Drawbridge_DZ: vector { points[] = { - { 0, 0, 0 }, // Bottom - { -2.40, 0, 3 }, // Left (adjusted) - { 2.46, 0, 3 }, // Right (adjusted) - { 0, 0, 6.05 }, // Top - { 0, 0, 3 } // center (added) + { 0.0245, 0.008, 0 }, // Bottom + { -2.40, 0.008, 3.025 }, // Left (adjusted) + { 2.46, 0.008, 3.025 }, // Right (adjusted) + { 0.0245, 0.008, 6.05 }, // Top + { 0.0245, -0.242, 3.025 } // Center (added) }; }; class Metal_DrawbridgeLocked_DZ: Metal_Drawbridge_DZ {}; class Door_DZ: vector { points[] = { - { 0, 0, 0 }, // Pivot - { -1, 0, 1.34 }, // Left - { 1, 0, 1.34 }, // Right - { 0, 0, 2.67 } // Top + { 0.01, 0, -0.008 }, // Pivot + { -0.995, 0, 1.327 }, // Left + { 1.015, 0, 1.327 }, // Right + { 0.01, 0, 2.662 } // Top }; - radius = 4; }; class DoorFrame_DZ: Door_DZ {}; /////////////////////////////////////////////////////////////////////////////////////////// // - // Glass Objects + // Modular Glass // /////////////////////////////////////////////////////////////////////////////////////////// - class GlassFloor_DZ: MetalFloor_DZ {}; - class GlassFloor_Half_DZ: MetalFloor_Half_DZ {}; - class GlassFloor_Quarter_DZ: MetalFloor_Quarter_DZ {}; + class GlassFloor_DZ: vector { + points[] = { + { 0, -0.002, 0.141 }, // Pivot + { 0, -2.627, 0.141 }, // Back + { 0, 2.623, 0.141 }, // Front + { -2.625, -0.002, 0.141 }, // Left + { 2.625, -0.002, 0.141 } // Right + }; + }; + + class GlassFloor_Half_DZ: vector { + points[] = { + { -0.032, -2.628, 0.141 }, // Back + { -0.032, 2.622, 0.141 }, // Front + { -1.3445, -0.003, 0.141 }, // Left + { 1.2805, -0.003, 0.141 } // Right + }; + }; + + class GlassFloor_Quarter_DZ: vector { + points[] = { + { 0.005, -1.3295, 0.141 }, // Back + { 0.005, 1.2955, 0.141 }, // Front + { -1.3075, -0.017, 0.141 }, // Left + { 1.3175, -0.017, 0.141 } // Right + }; + }; /////////////////////////////////////////////////////////////////////////////////////////// // - // Cinder Objects + // Modular Cinder // /////////////////////////////////////////////////////////////////////////////////////////// + class CinderWall_DZ: vector { + points[] = { + { 0, 0, 0 }, // Bottom + { -2.625, 0, 1.7 }, // Left + { 2.625, 0, 1.7 }, // Right + { 0, 0, 3.4 }, // Top + { 0, 0, 1.7 } // Center (added) + }; + }; + class CinderWallDoorSmall_DZ: CinderWall_DZ {}; // door + class CinderWallDoorSmallLocked_DZ: CinderWall_DZ {}; // door + class CinderWallWindow_DZ: CinderWall_DZ {}; // window + class CinderWallWindowLocked_DZ: CinderWall_DZ {}; // window + class CinderDoorHatch_DZ: CinderWall_DZ {}; // door hatch + class CinderDoorHatchLocked_DZ: CinderWall_DZ {}; // door hatch + class CinderWallDoor_DZ: CinderWall_DZ {}; // garage door + class CinderWallDoorLocked_DZ: CinderWall_DZ {}; // garage door + class CinderGarageOpenTop_DZ: CinderWall_DZ {}; // open top garage doors + class CinderGarageOpenTopLocked_DZ: CinderWall_DZ {}; // open top garage doors + class CinderWallHalf_DZ: vector { points[] = { - { 0, 0, 0 }, // Bottom - { -cX2, 0, cH2 }, // Left (replacement) - { cX2, 0, cH2 }, // Right (replacement) - { 0, 0, cH1 } // Top + { 0, 0, 0 }, // Bottom + { -2.625, 0, 0.75 }, // Left (replacement) + { 2.625, 0, 0.75 }, // Right (replacement) + { 0, 0, 1.5 } // Top }; }; class CinderWallHalf_Gap_DZ: CinderWallHalf_DZ {}; @@ -169,477 +205,257 @@ class HelperVectors: Helpers { { 1.64, 0, 0.25 } // Right (replacement) }; }; - class CinderWall_DZ { - points[] = { - { 0, 0, 0 }, // Bottom - { -cX2, 0, cZ2 }, // Left - { cX2, 0, cZ2 }, // Right - { 0, 0, cZ1 }, // Top - { 0, 0, cZ2 } // Center (added) - }; - }; - class CinderWallDoorSmall_DZ: CinderWall_DZ {}; - class CinderWallDoorSmallLocked_DZ: CinderWall_DZ {}; - class CinderWallWindow_DZ: CinderWall_DZ {}; - class CinderWallWindowLocked_DZ: CinderWall_DZ {}; - class CinderDoorHatch_DZ: CinderWall_DZ {}; - class CinderDoorHatchLocked_DZ: CinderWall_DZ {}; - class CinderWallDoor_DZ: CinderWall_DZ {}; // garage door - class CinderWallDoorLocked_DZ: CinderWall_DZ {}; // garage door - class CinderGarageOpenTop_DZ: CinderWall_DZ {}; - class CinderGarageOpenTopLocked_DZ: CinderWall_DZ {}; class CinderGateFrame_DZ: vector { points[] = { - { 0, 0, 0 }, // Bottom - { -mX2, 0, cZ2 }, // Lower Left - { mX2, 0, cZ2 }, // Lower Right - { -mX2, 0, gUP }, // Upper Left (added) - { mX2, 0, gUP }, // Upper Right (added) - { 0, 0, gZ1 } // Top + { 0, 0, 0 }, // Bottom + { -2.625, 0, 1.7 }, // Lower Left + { 2.625, 0, 1.7 }, // Lower Right + { -2.625, 0, 5.1 }, // Upper Left (added) + { 2.625, 0, 5.1 }, // Upper Right (added) + { 0, 0, 6.8 } // Top }; - radius = 10; }; + class CinderGate_DZ: vector { points[] = { - { 0, 0, 0 }, // Bottom - { -mX2, 0, cZ2 }, // Lower Left - { mX2, 0, cZ2 }, // Lower Right - { -mX2, 0, gUP }, // Upper Left (added) - { mX2, 0, gUP }, // Upper Right (added) - { 0, 0, gZ1 }, // Top - { 0, 0, cZ1 } // Center (added) + { 0, 0, 0 }, // Bottom + { -2.625, 0, 1.7 }, // Lower Left + { 2.625, 0, 1.7 }, // Lower Right + { -2.625, 0, 5.1 }, // Upper Left (added) + { 2.625, 0, 5.1 }, // Upper Right (added) + { 0, 0, 6.8 }, // Top + { 0, 0, 3.4 } // Center (added) }; - radius = 10; }; class CinderGateLocked_DZ: CinderGate_DZ {}; - class Concrete_Bunker_DZ: vector { - points[] = { - { 0, 2.1, 2.8 }, // Front (added) - { 0, -2.1, 2.8 }, // Back (adjusted) - { -2.34, 0, 2.8 }, // Left (adjusted) - { 2.34, 0, 2.8 }, // Right (adjusted) - { 0, 0, 3.4 } // Top - }; - radius = 7; - }; - class Concrete_Bunker_Locked_DZ: Concrete_Bunker_DZ {}; - /////////////////////////////////////////////////////////////////////////////////////////// // - // Wood Objects + // Modular Wood // /////////////////////////////////////////////////////////////////////////////////////////// class WoodFloor4x_DZ: vector { points[] = { - { 0, 0, 0.130 }, // Pivot (adjusted) - { 0, -4.64, 0.130 }, // Back - { 0, 4.64, 0.130 }, // Front - { -4.96, 0, 0.130 }, // Left - { 4.95, 0, 0.130 } // Right + { -0.012, 0, 0.139 }, // Pivot + { -0.012, -4.65, 0.139 }, // Back + { -0.012, 4.65, 0.139 }, // Front + { -4.912, 0, 0.139 }, // Left + { 4.888, 0, 0.139 } // Right }; - radius = 15; }; class Land_wood_floor_2x2_wreck: WoodFloor4x_DZ {}; class WoodFloor_DZ: vector { points[] = { - { 0, 0, 0.130 }, // Pivot (adjusted) - { 0, -2.32, 0.130 }, // Back - { 0, 2.32, 0.130 }, // Front - { -2.494, 0, 0.130 }, // Left - { 2.450, 0, 0.130 } // Right + { -0.029, -0.013, 0.139 }, // Pivot + { -0.029, -2.338, 0.139 }, // Back + { -0.029, 2.312, 0.139 }, // Front + { -2.479, -0.013, 0.139 }, // Left + { 2.421, -0.013, 0.139 } // Right }; - radius = 8; }; + class Land_wood_wreck_floor: vector { points[] = { - { 0, -2.32, 0.130 }, // Back - { 0, 2.32, 0.130 }, // Front - { -2.494, 0, 0.130 }, // Left - { 2.450, 0, 0.130 } // Right + { -0.029, -2.338, 0.139 }, // Back + { -0.029, 2.312, 0.139 }, // Front + { -2.479, -0.013, 0.139 }, // Left + { 2.421, -0.013, 0.139 } // Right }; - radius = 8; - }; - class WoodFloorStairs_DZ: vector { - points[] = { - { -2.3, 1.4, 0.3 }, // Pivot/bottom step (adjusted) - { 0, -2.32, 3.114 }, // Back - { 0, 2.32, 3.114 }, // Front - { -2.52, 0, 3.114 }, // Left - { 2.46, 0, 3.114 } // Right - }; - radius = 8; }; + class WoodFloorHalf_DZ: vector { points[] = { - // { 0, 0, 0 }, // Pivot (removed) - { 0, -2.33, 0.107 }, // Back - { 0, 2.33, 0.107 }, // Front - { -1.18, 0, 0.107 }, // Left - { 1.32, 0, 0.107 } // Right + { 0.081, -2.320, 0.116 }, // Back + { 0.081, 2.330, 0.116 }, // Front + { -1.144, 0.005, 0.116 }, // Left + { 1.306, 0.005, 0.116 } // Right }; }; class Land_wood_wreck_half: WoodFloorHalf_DZ {}; class WoodFloorQuarter_DZ: vector { points[] = { - // { 0, 0, 0 }, // Pivot (removed) - { 0, -1.2, 0.107 }, // Back - { 0, 1.11, 0.107 }, // Front - { -1.2, 0, 0.107 }, // Left - { 1.3, 0, 0.107 } // Right + { 0.047, -1.2045, 0.114 }, // Back + { 0.047, 1.1205, 0.114 }, // Front + { -1.178, -0.042, 0.114 }, // Left + { 1.272, -0.042, 0.114 } // Right }; - radius = 4; }; class Land_wood_wreck_quarter: WoodFloorQuarter_DZ {}; + class WoodFloorStairs_DZ: vector { + points[] = { + { -2.3, 1.4, 0.3 }, // Bottom step (added) + { -0.0275, -2.3375, 3.125 }, // Back + { -0.0275, 2.3125, 3.125 }, // Front + { -2.4775, -0.0125, 3.125 }, // Left + { 2.4225, -0.0125, 3.125 } // Right + }; + }; + class WoodTriangleFloor_DZ: vector { points[] = { - // { 0, 0, 0 }, // Pivot (removed) - { 0, -1.3, 0.092 }, // Back - { 0, 1.3, 0.092 }, // Front - { -1.258, 0.027, 0.092 }, // Left - { 1.258, 0.027, 0.092 } // Right - }; - radius = 4; - }; - class WoodSmallWallThird_DZ: vector { - points[] = { - { 0, 0, 0 }, // Pivot - { -2.445, 0, 0.585 }, // Left (lowered) - { 2.445, 0, 0.585 }, // Right (lowered) - { 0, 0, 1.17 } // Top - }; - }; - class Land_wood_wreck_third: vector { - points[] = { - { 0, 0, 0 }, // Pivot (bottom) - { -2.445, 0, 0.585 }, // Left (lowered) - { 2.445, 0, 0.585 } // Right (lowered) + { 0, -1.3, 0.1 }, // Back + { 0, 1.288, 0.1 }, // Front + { -1.258, 0.027, 0.1 }, // Left + { 1.258, 0.027, 0.1 } // Right }; }; -// class WoodTriangleWall_DZ: vector { - -// Small wood walls -// class WoodSmallWallDoor_DZ: vector { // doorway -// class WoodSmallWallWin_DZ: vector { // window - - class WoodSmallWall_DZ: vector { + class WoodSmallWall_DZ: vector { // Small wood walls points[] = { - { 0, 0, 0 }, // Pivot (bottom) - { -2.285, 0, 1.5 }, // Left - { 2.285, 0, 1.5 }, // Right - { 0, 0, 3 }, // Top - { 0, 0, 1.5 } // Center (added) + { -0.039, 0.016, 0.027 }, // Pivot (bottom) + { -2.324, 0.016, 1.527 }, // Left + { 2.246, 0.016, 1.527 }, // Right + { -0.039, 0.016, 3.027 }, // Top + { -0.039, 0.016, 1.527 } // Center (added) }; }; class Land_DZE_WoodDoor: WoodSmallWall_DZ {}; class Land_DZE_WoodDoorLocked: WoodSmallWall_DZ {}; - class Land_DZE_WoodOpenTopGarageDoor: WoodSmallWall_DZ {}; - class Land_DZE_WoodOpenTopGarageLocked: WoodSmallWall_DZ {}; + + class Land_DZE_WoodOpenTopGarageDoor: vector { + points[] = { + { -0.023, 0.016, 0.019 }, // Pivot + { -2.308, 0.016, 1.519 }, // Left + { 2.262, 0.016, 1.519 }, // Right + { -0.023, 0.016, 3.019 } // Top + }; + }; + class Land_DZE_WoodOpenTopGarageLocked: Land_DZE_WoodOpenTopGarageDoor {}; class Land_wood_wreck_frame: vector { points[] = { - { 0, 0, 0 }, // Pivot (bottom) - { -2.285, 0, 1.5 }, // Left - { 2.285, 0, 1.5 }, // Right - { 0, 0, 3 } // Top + { -0.023, 0.016, 0.019 }, // Pivot (bottom) + { -2.308, 0.016, 1.519 }, // Left + { 2.262, 0.016, 1.519 }, // Right + { -0.023, 0.016, 3.019 } // Top }; }; -// Large wood walls -// class WoodLargeWallDoor_DZ // doorway -// class WoodLargeWallWin_DZ: vector { // window - - class WoodLargeWall_DZ: vector { + class WoodLargeWall_DZ: vector { // Large wood walls points[] = { - { 0, 0, 0 }, // Pivot - { -2.45, 0, 1.5 }, // Left - { 2.45, 0, 1.5 }, // Right - { 0, 0, 3 }, // Top - { 0, 0, 1.5 } // Center (added) + { -0.024, 0.018, 0.038 }, // Pivot + { -2.464, 0.018, 1.538 }, // Left + { 2.416, 0.018, 1.538 }, // Right + { -0.024, 0.018, 3.038 }, // Top + { -0.024, 0.018, 1.538 } // Center (added) + }; + }; + + class Land_DZE_LargeWoodDoor: vector { // door + points[] = { + { -0.041, 0.018, 0.03 }, // Pivot + { -2.481, 0.018, 1.53 }, // Left + { 2.399, 0.018, 1.53 }, // Right + { -0.041, 0.018, 3.03 }, // Top + { -0.041, 0.018, 1.53 } // Center (added) + }; + }; + class Land_DZE_LargeWoodDoorLocked: Land_DZE_LargeWoodDoor {}; + + class Land_DZE_GarageWoodDoor: vector { // garage door + points[] = { + { -0.023, 0.022, 0.018 }, // Pivot + { -2.463, 0.022, 1.518 }, // Left + { 2.417, 0.022, 1.518 }, // Right + { -0.023, 0.022, 3.018 }, // Top + { -0.023, 0.022, 1.518 } // Center (added) + }; + }; + class Land_DZE_GarageWoodDoorLocked: Land_DZE_GarageWoodDoor {}; + + class WoodSmallWallThird_DZ: vector { + points[] = { + { -0.023, -0.018, 0.002 }, // Pivot + { -2.463, -0.018, 0.5845 }, // Left (lowered) + { 2.417, -0.018, 0.5845 }, // Right (lowered) + { -0.023, -0.018, 1.167 } // Top + }; + }; + + class Land_wood_wreck_third: vector { + points[] = { + { -0.023, -0.018, 0.002 }, // Pivot + { -2.463, -0.018, 0.5845 }, // Left (lowered) + { 2.417, -0.018, 0.5845 } // Right (lowered) }; }; - class Land_DZE_LargeWoodDoor: WoodLargeWall_DZ {}; - class Land_DZE_LargeWoodDoorLocked: WoodLargeWall_DZ {}; - class Land_DZE_GarageWoodDoor: WoodLargeWall_DZ {}; - class Land_DZE_GarageWoodDoorLocked: WoodLargeWall_DZ {}; class WoodGateFrame_DZ: vector { points[] = { - { 0, 0, 0 }, // Bottom - { -2.43, 0, 1.5 }, // Lower Left - { 2.45, 0, 1.5 }, // Lower Right - { -2.43, 0, 4.5 }, // Upper Left (added) - { 2.45, 0, 4.5 }, // Upper Right (added) - { 0, 0, 6.05 } // Top + { 0.022, 0.02, 0.025 }, // Bottom + { -2.418, 0.02, 1.525 }, // Lower Left + { 2.462, 0.02, 1.525 }, // Lower Right + { -2.418, 0.02, 4.525 }, // Upper Left (added) + { 2.462, 0.02, 4.525 }, // Upper Right (added) + { 0.022, 0.02, 6.025 } // Top }; - radius = 9; }; + class Land_DZE_WoodGate: vector { points[] = { - { 0, 0, 0 }, // Bottom - { -2.43, 0, 1.5 }, // Lower Left - { 2.45, 0, 1.5 }, // Lower Right - { -2.43, 0, 4.5 }, // Upper Left (added) - { 2.45, 0, 4.5 }, // Upper Right (added) - { 0, 0, 6.05 }, // Top - { 0, 0, 3 } // Center (added) + { 0.022, 0.02, 0.025 }, // Bottom + { -2.418, 0.02, 1.525 }, // Lower Left + { 2.462, 0.02, 1.525 }, // Lower Right + { -2.418, 0.02, 4.525 }, // Upper Left (added) + { 2.462, 0.02, 4.525 }, // Upper Right (added) + { 0.022, 0.02, 6.025 }, // Top + { 0.022, 0.02, 3.025 } // Center (added) }; - radius = 9; }; class Land_DZE_WoodGateLocked: Land_DZE_WoodGate {}; - class WoodRamp_DZ: vector { + class WoodPillar_DZ: vector { points[] = { - { 0, 0, 0 }, // Pivot - { -1.5, 3.14, 1.2 }, // Left - { 1.7, 3.14, 1.2 }, // Right - { 0.115, 5.78, 2.82 } // Top + { 0, 0, 0.016 }, // Pivot + { 0, 0, 1.516 }, // Front + { 0, 0, 3.016 } // Top }; - radius = 15; }; + class WoodStairs_DZ: vector { points[] = { - { 0, 0, 0 }, // Pivot (Bottom Step) - { 0, 3.65, 3 }, // Front (Top Step) - // { 0, 1.8, 0 }, // Bottom (removed) - { -0.81, 1.8, 1.5 }, // Left - { 0.78, 1.8, 1.5 } // Right + { -0.02, 0.012, -0.02 }, // Pivot (Bottom Step) + { -0.02, 3.662, 2.98 }, // Front (Top Step) + { -0.81, 1.812, 1.48 }, // Left + { 0.77, 1.812, 1.48 } // Right }; - radius = 5; }; class WoodStairsSans_DZ: WoodStairs_DZ {}; class WoodStairsRails_DZ: WoodStairs_DZ {}; + class WoodRamp_DZ: vector { + points[] = { + { 0.065, 0, -0.18 }, // Pivot + { -1.585, 3.15, 0.95 }, // Left + { 1.715, 3.15, 0.95 }, // Right + { 0.065, 6.30, 2.82 } // Top + }; + }; + class WoodLadder_DZ: vector { points[] = { { 0, 0, 0 }, // Pivot { -0.4, 0, 1.725 }, // Left { 0.4, 0, 1.725 }, // Right - { 0, 0, 3.45 } // Top (added) + { 0, 0, 3.450 } // Top (added) }; size = 2; - radius = 4; }; + class WoodHandrail_DZ: vector { points[] = { - { 0, 0, 0}, // Pivot - { -1.16, 0, 0.5}, // Left - { 1.2, 0, 0.5}, // Right - { 0, 0, 1 } // Top - }; - size = 2; - radius = 3; - }; - - class WoodPillar_DZ: MetalPillar_DZ {}; - - /////////////////////////////////////////////////////////////////////////////////////////// - // - // Storage - // - /////////////////////////////////////////////////////////////////////////////////////////// - - class GunRack_DZ: vector { - points[] = { - { -0, -0.1, -0.2 } // Center - }; - size = 2; - radius = 2; - }; - class GunRack2_DZ: GunRack_DZ {}; - - class WoodCrate_DZ: vector { - points[] = { - { 0, 0, -0.47 }, // Bottom - { 0, -0.47, 0 }, // Back - { 0, 0.47, 0 }, // Front - { -0.47, 0, 0 }, // Left - { 0.47, 0, 0 }, // Right - { 0, 0, 0.47 } // Top - }; - size = 2; - radius = 2; - }; - class WoodCrate2_DZ: WoodCrate_DZ {}; - - class StorageCrate_DZ: vector { - points[] = { - { 0, 0, 0.08 } // Top - }; - size = 2; - radius = 2; - }; - class CamoStorageCrate_DZ: vector { - points[] = { - { 0, 0, 0.45 } // Top - }; - size = 2; - radius = 2; - }; - class OutHouse_DZ: vector { - points[] = { - { -0.59, 0, 0 }, // Left - { 0.59, 0, 0 }, // Right - { 0, 0.75, 0 }, // Front - { 0, -0.55, 0 } // Back - }; - size = 2; - radius = 2; - }; - class StorageShed_DZ: vector { - points[] = { - { -1.9, 0, 1.5 }, // Left - { 1.47, 0, 1.5 }, // Right - { 0, 0, 2.8 }, // Top - { 0, 1.1, 1.5 }, // Front - { 0, -1.25, 1.5 } // Back - }; - radius = 5; - }; - class StorageShed2_DZ: StorageShed_DZ {}; - - class Wooden_shed_DZ: vector { - points[] = { - { 0.6, -1.5, 0 }, // Back - { 0.6, 1.5, 0 }, // Front - { 3, 0, 0 }, // Right - { 0.6, 0, 1.5 }, // Top - { -1.6, 0, 0 } // Left (cull on open door) - }; - radius = 7; - }; - class Wooden_shed2_DZ: Wooden_shed_DZ {}; - - class WoodShack_DZ: vector{ - points[] = { - { 0, 2.4, 0 }, // Front - { -1.18, 0.6, 0 }, // Left - { 1.18, 0.6, 0 }, // Right - { 0, -1.1, 1.1 } // Top - }; - }; - class WoodShack2_DZ: WoodShack_DZ {}; - - class StashSmall: vector { - points[] = { - { 0, 0, 0.3 } // Top + { 0.016, 0.001, 0.002 }, // Pivot + { -1.164, 0.001, 0.491 }, // Left + { 1.196, 0.001, 0.491 }, // Right + { 0.016, 0.001, 0.98 } // Top }; size = 2; }; - class StashSmall1: StashSmall {}; - class StashSmall2: StashSmall {}; - class StashSmall3: StashSmall {}; - class StashSmall4: StashSmall {}; - - class StashMedium: vector { - points[] = { - { 0, 0, 0.8 } // Top - }; - size = 2; - }; - class StashMedium1: StashMedium {}; - class StashMedium2: StashMedium {}; - class StashMedium3: StashMedium {}; - class StashMedium4: StashMedium {}; - - class TentStorage: vector { - points[] = { - { 0, 0, 0.55 } // Top - }; - size = 2; - radius = 5; - }; - class TentStorage0: TentStorage {}; - class TentStorage1: TentStorage {}; - class TentStorage2: TentStorage {}; - class TentStorage3: TentStorage {}; - class TentStorage4: TentStorage {}; - class TentStorageWinter: TentStorage {}; - class TentStorageWinter0: TentStorage {}; - class TentStorageWinter1: TentStorage {}; - class TentStorageWinter2: TentStorage {}; - class TentStorageWinter3: TentStorage {}; - class TentStorageWinter4: TentStorage {}; - class IC_Tent: TentStorage {}; - - class DomeTentStorage: vector { - points[] = { - { 0.25, 0, 0.7 } // Top - }; - size = 2; - radius = 5; - }; - class DomeTentStorage0: DomeTentStorage {}; - class DomeTentStorage1: DomeTentStorage {}; - class DomeTentStorage2: DomeTentStorage {}; - class DomeTentStorage3: DomeTentStorage {}; - class DomeTentStorage4: DomeTentStorage {}; - class DesertTentStorage: DomeTentStorage {}; - class DesertTentStorage0: DomeTentStorage {}; - class DesertTentStorage1: DomeTentStorage {}; - class DesertTentStorage2: DomeTentStorage {}; - class DesertTentStorage3: DomeTentStorage {}; - class DesertTentStorage4: DomeTentStorage {}; - class WinterDomeTentStorage: DomeTentStorage {}; - class WinterDomeTentStorage0: DomeTentStorage {}; - class WinterDomeTentStorage1: DomeTentStorage {}; - class WinterDomeTentStorage2: DomeTentStorage {}; - class WinterDomeTentStorage3: DomeTentStorage {}; - class WinterDomeTentStorage4: DomeTentStorage {}; - class IC_DomeTent: DomeTentStorage {}; - - class LockboxStorage: vector { - points[] = { - { 0, 0, 0.25 } // Top - }; - size = 2; - }; - class LockboxStorageLocked: LockboxStorage {}; - class LockboxStorage2: LockboxStorage {}; - class LockboxStorage2Locked: LockboxStorage {}; - class LockboxStorageWinter: LockboxStorage {}; - class LockboxStorageWinterLocked: LockboxStorage {}; - class LockboxStorageWinter2: LockboxStorage {}; - class LockboxStorageWinter2Locked: LockboxStorage {}; - - class VaultStorage: vector { - points[] = { - { 0, 0, 0 }, // Pivot - { 0, 0.284, 0.615 }, // Front - { 0, -0.284, 0.615 }, // Back (door center) - { 0, 0, 1.23 }, // Top - { -0.362, 0, 0.615 }, // Left - { 0.362, 0, 0.615 } // Right - }; - size = 2; - radius = 3; - }; - class VaultStorageLocked: VaultStorage {}; - class VaultStorage2: VaultStorage {}; - class VaultStorage2Locked: VaultStorage {}; - class VaultStorageBroken: VaultStorage {}; - class VaultStorageBroken2: VaultStorage {}; - - class TallSafe: vector { - points[] = { - { 0, 0, 0 }, // Pivot - { 0, 0.35, 1 }, // Front - { 0, -0.35, 1 }, // Back (door center) - { 0, 0, 2 }, // Top - { -0.42, 0, 1 }, // Left - { 0.42, 0, 1 } // Right - }; - size = 2; - radius = 3; - }; - class TallSafeLocked: TallSafe {}; - class TallSafeBroken: TallSafe {}; /////////////////////////////////////////////////////////////////////////////////////////// // @@ -647,52 +463,187 @@ class HelperVectors: Helpers { // /////////////////////////////////////////////////////////////////////////////////////////// + class Concrete_Bunker_DZ: vector { + points[] = { + { -0.04, 2.1, 2.8 }, // Front (added) + { -0.04, -2.1, 2.8 }, // Back (adjusted) + { -2.34, -0.007, 2.8 }, // Left (adjusted) + { 2.34, -0.007, 2.8 }, // Right (adjusted) + { -0.04, -0.007, 3.41 } // Top + }; + }; + class Concrete_Bunker_Locked_DZ: Concrete_Bunker_DZ {}; + class Land_HBarrier1_DZ: vector { points[] = { - { 0, -0.4, 0 }, // Back - { 0, 0.4, 0 }, // Front - { -0.25, 0, 0 }, // Left - { 0.25, 0, 0 }, // Right - { 0, 0, 0.4 } // Top + { 0.01, -0.41, 0.075 }, // Back + { 0.01, 0.39, 0.075 }, // Front + { -0.24, -0.01, 0.075 }, // Left + { 0.26, -0.01, 0.075 }, // Right + { 0.01, -0.01, 0.4 } // Top }; - radius = 3; }; + class Land_HBarrier3_DZ: vector { points[] = { - { 0, -0.4, 0 }, // Back - { 0, 0.4, 0 }, // Front - { -1.35, 0, 0 }, // Left - { 1.35, 0, 0 }, // Right - { 0, 0, 0.4 } // Top + { 0, -0.45, 0 }, // Back + { 0, 0.4, 0 }, // Front + { -1.40, 0, 0 }, // Left + { 1.35, 0, 0 }, // Right + { 0, 0, 0.4 } // Top }; - radius = 5; }; + class Land_HBarrier5_DZ: vector { points[] = { - { 0, -0.4, 0 }, // Back - { 0, 0.5, 0 }, // Front - { -2.5, 0, 0 }, // Left - { 2.5, 0, 0 }, // Right - { 0, 0, 0.5 } // Top + { 0, -0.4, 0.04 }, // Back + { 0, 0.6, 0.04 }, // Front + { -2.5, 0.1, 0.04 }, // Left + { 2.5, 0.1, 0.04 }, // Right + { 0, 0.1, 0.5 } // Top }; - radius = 8; }; + + class Land_HBarrier5Curved_DZ: vector { + points[] = { + { 0.07, -0.77, 0 }, // Back + { -0.05, 0.26, 0 }, // Front + { -2.55, -0.31, 0 }, // Left + { 2.43, 0.42, 0 }, // Right + { 0.01, -0.255, 0.55 } // Top + }; + }; + class Sandbag1_DZ: vector { points[] = { - { 0, 0, -0.1 } // Pivot (center) - // { -1.5, -0.1, -0.1 }, // Left - // { 1.5, -0.1, -0.1 } // Right + { 0, 0, -0.1 } // Pivot (Center) }; - radius = 4; }; + class BagFenceRound_DZ: vector { points[] = { - { 0, -0.30, -0.1 } // Pivot (center) - // { -1.295, 0.38, -0.1 }, // Left - // { 1.295, 0.38, -0.1 } // Right + { 0, -0.30, -0.1 } // Pivot (Center) }; - radius = 3; }; + + class HeavyBagFence_DZ: vector { + points[] = { + { 0, 0, 0.1 } // Center + }; + }; + + class HeavyBagFenceCorner_DZ: vector { + points[] = { + { -1.3, 1.5, 0.1 }, // Front Left + { 1.5, -1.2, 0.1 }, // Back Right + { -1.3, -1.2, 0.1 } // Back Left (Corner) + }; + }; + + class HeavyBagFenceRound_DZ: vector { + points[] = { + { -2.8, -1.2, 0.18 }, // Left + { 2.8, -1.2, 0.18 }, // Right + { 0, 1.075, 0.18 } // Front + }; + }; + + class SandNest_DZ: vector { + points[] = { + { -1.75, 0.8, -0.44 }, // Left + { 1.75, 0.8, -0.44 }, // Right + { 0, -1.9, -0.44 } // Back + }; + }; + + class SandNestLarge_DZ: vector { + points[] = { + { 0, 0, -1 }, // Pivot + { -4.5, 0, -0.44 }, // Left + { 4.5, 0, -0.44 }, // Right + { 0, 3.8, -0.44 }, // Front + { 0, -5.2, -0.44 } // Back + }; + }; + + class Land_WarfareBarrier5x_DZ: vector { + points[] = { + { 0, -0.28, 0.1375 }, // Back + { 0, 0.28, 0.1375 }, // Front + { -3.575, 0, 0.1375 }, // Left + { 3.575, 0, 0.1375 }, // Right + { 0, 0, 0.4750 } // Top + }; + }; + + class Land_WarfareBarrier10x_DZ: vector { + points[] = { + { 0, -0.28, 0.1547 }, // Back + { 0, 0.28, 0.1547 }, // Front + { -7.5, 0, 0.1547 }, // Left + { 7.5, 0, 0.1547 }, // Right + { 0, 0, 0.4922 } // Top + }; + }; + + class Land_WarfareBarrier10xTall_DZ: vector { + points[] = { + { 0, -0.91, -0.3874 }, // Back + { 0, 0.91, -0.3874 }, // Front + { -7.5, 0, -0.3874 }, // Left + { 7.5, 0, -0.3874 }, // Right + { 0, 0, 1.2651 } // Top + }; + }; + + class ConcreteBarrier_DZ { + points[] = { + { 0, 0, 0 } // Center + }; + }; + class ConcreteBarrierStriped_DZ: ConcreteBarrier_DZ {}; + + class ConcretePipe_DZ { + points[] = { + { -1.125, 0, 0 }, // Left + { 1.125, 0, 0 }, // Right + { 0, 0, 1.125 }, // Top + { 0, 0, -1.125 } // Bottom + }; + }; + + class DragonTeeth_DZ { + points[] = { + { 0, 0, 0 }, // Pivot + { -4, 0, 0 }, // Left + { 4, 0, 0 } // Right + }; + }; + class DragonTeethBig_DZ: DragonTeeth_DZ {}; + + class Fort_RazorWire: vector { + points[] = { + { 0, 0, 0 }, // Pivot + { -4.1, 0, -0.3 }, // Left + { 4.1, 0, -0.3 } // Right + }; + }; + + class FortifiedWire_DZ: vector { + points[] = { + { 0, 0, 0 }, // Pivot + { -2.4, 0, -0.3 }, // Left + { 2.4, 0, -0.3 } // Right + }; + }; + + class BarbedGate_DZ { + points[] = { + { -1.8, 0.04, 0.2, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.8, 0.04, 0.2, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class StickFence_DZ: vector { points[] = { { 0, 0, 0.6 }, // Top @@ -700,15 +651,15 @@ class HelperVectors: Helpers { { 2.95, 0, 0 } // Right }; size = 2; - radius = 7; }; + class MetalGate_DZ: vector { points[] = { { -4, 0, 0.3 }, // Left { 0, 0, 0.3 } // Right }; - radius = 10; }; + class MetalPanel_DZ: vector { points[] = { { 0, 0, -0.8 }, // Pivot @@ -716,8 +667,8 @@ class HelperVectors: Helpers { { 1.5, 0, 0.5 }, // Right { 0, 0, 2 } // Top }; - radius = 5; }; + class Fence_corrugated_DZ: vector { points[] = { { 0, 0, 1.3 }, // Top @@ -726,6 +677,7 @@ class HelperVectors: Helpers { { 1.95, 0, 0.4 } // Right }; }; + class WoodenFence_1_foundation_DZ: vector { points[] = { { 0, 0, 0.5 }, // Pivot @@ -733,6 +685,7 @@ class HelperVectors: Helpers { { 2.535, 0, 0.5 } // Right }; }; + class WoodenFence_1_frame_DZ: vector { points[] = { { 0, 0, 0.95 }, // Top @@ -789,11 +742,11 @@ class HelperVectors: Helpers { class WoodenGate_foundation_DZ: vector { points[] = { - // { 0, 0, 0.95 }, // Top { -2.535, 0, 0.95 }, // Left { 2.535, 0, 0.95 } // Right }; }; + class WoodenGate_1_DZ: vector { points[] = { { 0, 0, 0 }, // Pivot @@ -814,4 +767,198 @@ class HelperVectors: Helpers { { 0, 0, 3.58 } // Top }; }; + + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Storage + // + /////////////////////////////////////////////////////////////////////////////////////////// + + class GunRack_DZ: vector { + points[] = { + { -0.0575, -0.0995, -0.140 } // Center + }; + size = 2; + }; + class GunRack2_DZ: GunRack_DZ {}; + + class WoodCrate_DZ: vector { + points[] = { + { 0, 0, -0.47 }, // Bottom + { 0, -0.47, 0 }, // Back + { 0, 0.47, 0 }, // Front + { -0.47, 0, 0 }, // Left + { 0.47, 0, 0 }, // Right + { 0, 0, 0.47 } // Top + }; + size = 2; + }; + class WoodCrate2_DZ: WoodCrate_DZ {}; + + class StorageCrate_DZ: vector { + points[] = { + { 0, 0, 0.08 } // Top + }; + size = 2; + }; + + class CamoStorageCrate_DZ: vector { + points[] = { + { 0, 0, 0.45 } // Top + }; + size = 2; + }; + + class OutHouse_DZ: vector { + points[] = { + { -0.59, 0.0675, 0 }, // Left + { 0.59, 0.0675, 0 }, // Right + { 0, 0.7175, 0 }, // Front + { 0, -0.5825, 0 } // Back + }; + size = 2; + }; + + class StorageShed_DZ: vector { + points[] = { + { -2, -0.075, 1.5 }, // Left + { 1.57, -0.075, 1.5 }, // Right + { -0.215, -0.075, 3 }, // Top + { -0.215, 1.2, 1.5 }, // Front + { -0.215, -1.35, 1.5 } // Back + }; + }; + class StorageShed2_DZ: StorageShed_DZ {}; + + class Wooden_shed_DZ: vector { + points[] = { + { 0.7, -1.64, 0 }, // Back + { 0.7, 1.64, 0 }, // Front + { 3.1, 0, 0 }, // Right + { 0.7, 0, 1.6 }, // Top + { -1.7, 0, 0 } // Left (cull on open door) + }; + }; + class Wooden_shed2_DZ: Wooden_shed_DZ {}; + + class WoodShack_DZ: vector{ + points[] = { + { 0, 2.4, 0 }, // Front + { -1.18, 0.65, 0 }, // Left + { 1.18, 0.65, 0 }, // Right + { 0, -1.1, 1.1 } // Top + }; + }; + class WoodShack2_DZ: WoodShack_DZ {}; + + class StashSmall: vector { + points[] = { + { 0, 0, 0.3 } // Top + }; + size = 2; + }; + class StashSmall1: StashSmall {}; + class StashSmall2: StashSmall {}; + class StashSmall3: StashSmall {}; + class StashSmall4: StashSmall {}; + + class StashMedium: vector { + points[] = { + { 0, 0, 0.8 } // Top + }; + size = 2; + }; + class StashMedium1: StashMedium {}; + class StashMedium2: StashMedium {}; + class StashMedium3: StashMedium {}; + class StashMedium4: StashMedium {}; + + class TentStorage: vector { + points[] = { + { 0, 0, 0.55 } // Top + }; + size = 2; + }; + class TentStorage0: TentStorage {}; + class TentStorage1: TentStorage {}; + class TentStorage2: TentStorage {}; + class TentStorage3: TentStorage {}; + class TentStorage4: TentStorage {}; + class TentStorageWinter: TentStorage {}; + class TentStorageWinter0: TentStorage {}; + class TentStorageWinter1: TentStorage {}; + class TentStorageWinter2: TentStorage {}; + class TentStorageWinter3: TentStorage {}; + class TentStorageWinter4: TentStorage {}; + class IC_Tent: TentStorage {}; + + class DomeTentStorage: vector { + points[] = { + { 0.25, 0, 0.7 } // Top + }; + size = 2; + }; + class DomeTentStorage0: DomeTentStorage {}; + class DomeTentStorage1: DomeTentStorage {}; + class DomeTentStorage2: DomeTentStorage {}; + class DomeTentStorage3: DomeTentStorage {}; + class DomeTentStorage4: DomeTentStorage {}; + class DesertTentStorage: DomeTentStorage {}; + class DesertTentStorage0: DomeTentStorage {}; + class DesertTentStorage1: DomeTentStorage {}; + class DesertTentStorage2: DomeTentStorage {}; + class DesertTentStorage3: DomeTentStorage {}; + class DesertTentStorage4: DomeTentStorage {}; + class WinterDomeTentStorage: DomeTentStorage {}; + class WinterDomeTentStorage0: DomeTentStorage {}; + class WinterDomeTentStorage1: DomeTentStorage {}; + class WinterDomeTentStorage2: DomeTentStorage {}; + class WinterDomeTentStorage3: DomeTentStorage {}; + class WinterDomeTentStorage4: DomeTentStorage {}; + class IC_DomeTent: DomeTentStorage {}; + + class LockboxStorage: vector { + points[] = { + { 0, 0, 0.25 } // Top + }; + size = 2; + }; + class LockboxStorageLocked: LockboxStorage {}; + class LockboxStorage2: LockboxStorage {}; + class LockboxStorage2Locked: LockboxStorage {}; + class LockboxStorageWinter: LockboxStorage {}; + class LockboxStorageWinterLocked: LockboxStorage {}; + class LockboxStorageWinter2: LockboxStorage {}; + class LockboxStorageWinter2Locked: LockboxStorage {}; + + class VaultStorage: vector { + points[] = { + { 0, 0, 0 }, // Pivot + { 0, 0.284, 0.615 }, // Front + { 0, -0.284, 0.615 }, // Back (Door Center) + { 0, 0, 1.23 }, // Top + { -0.362, 0, 0.615 }, // Left + { 0.362, 0, 0.615 } // Right + }; + size = 2; + }; + class VaultStorageLocked: VaultStorage {}; + class VaultStorage2: VaultStorage {}; + class VaultStorage2Locked: VaultStorage {}; + class VaultStorageBroken: VaultStorage {}; + class VaultStorageBroken2: VaultStorage {}; + + class TallSafe: vector { + points[] = { + { 0, 0, 0 }, // Pivot + { 0, 0.35, 1 }, // Front + { 0, -0.35, 1 }, // Back (Door Center) + { 0, 0, 2 }, // Top + { -0.42, 0, 1 }, // Left + { 0.42, 0, 1 } // Right + }; + size = 2; + }; + class TallSafeLocked: TallSafe {}; + class TallSafeBroken: TallSafe {}; }; diff --git a/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp b/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp index 41f456276..f68349a75 100644 --- a/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp +++ b/SQF/dayz_code/Configs/CfgExtra/snappoints.hpp @@ -1,544 +1,810 @@ -/* -Created by Raymix -*/ +/////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Created by Raymix +// +// Updated by Victor the Cleaner +// - Removed snapTo whitelist +// - Removed radius attribute +// - Removed obsolete classes +// - Objects may now snap to any other object +// +/////////////////////////////////////////////////////////////////////////////////////////////////// class SnapBuilding { - //Barriers whitelist - class Barrier { - snapTo[] = { - "Land_HBarrier5_DZ", - "Land_HBarrier3_DZ", - "Land_HBarrier1_DZ", - "Sandbag1_DZ", - "BagFenceRound_DZ", - "Fort_RazorWire", - "WoodFloorQuarter_DZ", - "WoodFloorHalf_DZ", - "WoodFloor_DZ", - "WoodTriangleFloor_DZ", - "WoodFloorStairs_DZ", - "WoodStairs_DZ", - "WoodStairsSans_DZ", - "WoodStairsRails_DZ", - "WoodSmallWallDoor_DZ", - "WoodSmallWall_DZ", - "WoodSmallWallWin_DZ", - "Land_DZE_WoodDoor", - "Land_DZE_WoodDoorLocked", - "WoodLargeWall_DZ", - "Land_DZE_LargeWoodDoor", - "WoodLargeWallWin_DZ", - "WoodLargeWallDoor_DZ", - "WoodTriangleWall_DZ", - "Land_DZE_GarageWoodDoor", - "Land_DZE_GarageWoodDoorLocked", - "Land_DZE_LargeWoodDoorLocked", - "Land_DZE_WoodOpenTopGarageDoor", - "Land_DZE_WoodOpenTopGarageLocked", - "WoodGateFrame_DZ", - "Land_DZE_WoodGate", - "Land_DZE_WoodGateLocked", - "WoodSmallWallThird_DZ", - "CinderWall_DZ", - "CinderWallDoorway_DZ", - "CinderWallDoorLocked_DZ", - "CinderWallDoor_DZ", - "CinderWallSmallDoorway_DZ", - "CinderWallDoorSmallLocked_DZ", - "CinderDoorHatch_DZ", - "CinderDoorHatchLocked_DZ", - "CinderWallHalf_DZ", - "CinderWallHalf_Gap_DZ", - "CinderWallDoorSmall_DZ", - "CinderWallWindow_DZ", - "CinderWallWindowLocked_DZ", - "CinderGarageOpenTopFrame_DZ", - "CinderGarageOpenTop_DZ", - "CinderGarageOpenTopLocked_DZ", - "CinderGateFrame_DZ", - "CinderGate_DZ", - "CinderGateLocked_DZ", - "Metal_Drawbridge_DZ", - "Metal_DrawbridgeLocked_DZ", - "MetalFloor_DZ", - "MetalFloor_Half_DZ", - "MetalFloor_Quarter_DZ", - "GlassFloor_DZ", - "GlassFloor_Half_DZ", - "GlassFloor_Quarter_DZ", - "WoodenFence_1_frame_DZ", - "WoodenFence_1_foundation_DZ", - "WoodenFence_quaterpanel_DZ", - "WoodenFence_halfpanel_DZ", - "WoodenFence_thirdpanel_DZ", - "WoodenFence_1_DZ", - "WoodenFence_2_DZ", - "WoodenFence_3_DZ", - "WoodenFence_4_DZ", - "WoodenFence_5_DZ", - "WoodenFence_6_DZ", - "WoodenFence_7_DZ", - "MetalFence_1_foundation_DZ", - "MetalFence_1_frame_DZ", - "MetalFence_halfpanel_DZ", - "MetalFence_thirdpanel_DZ", - "MetalFence_1_DZ", - "MetalFence_2_DZ", - "MetalFence_3_DZ", - "MetalFence_4_DZ", - "MetalFence_5_DZ", - "MetalFence_6_DZ", - "MetalFence_7_DZ", - "WoodenGate_foundation_DZ", - "WoodenGate_1_DZ", - "WoodenGate_2_DZ", - "WoodenGate_3_DZ", - "WoodenGate_4_DZ", - "Concrete_Bunker_DZ", - "Concrete_Bunker_Locked_DZ", - "MetalPanel_DZ", - "MetalGate_DZ", - "Fence_corrugated_DZ", - "StickFence_DZ", - "WoodHandrail_DZ", - "DoorFrame_DZ", - "Door_DZ", - "DoorLocked_DZ", - "WoodFloor4x_DZ", - "MetalFloor4x_DZ", - "MetalPillar_DZ", - "WoodPillar_DZ" - }; - radius = 5; - }; - class Land_HBarrier5Preview: Barrier { //fix for broken offsets in ghost - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-0.75,0.1,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.75,0.1,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2.85,0,0.1,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.85,0,0.1,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.9,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - class Land_HBarrier5_DZ: Land_HBarrier5Preview { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-0.75,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.75,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2.85,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.85,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.9,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class Land_HBarrier3ePreview: Barrier { //whitelist inheritance - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-0.75,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.75,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.7,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.7,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.9,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - class Land_HBarrier3_DZ: Land_HBarrier3ePreview {}; //point inheritance - class Land_HBarrier1Preview: Barrier { + class Plastic_Pole_EP1_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-0.75,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.75,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-0.6,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.6,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.9,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, -0.47, $STR_EPOCH_ACTION_SNAP_PIVOT} }; }; - class Land_HBarrier1_DZ: Land_HBarrier1Preview {}; - - class Fort_RazorWirePreview: Barrier { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-0.95,-0.3,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.95,-0.3,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-4.1,0,-0.3,$STR_EPOCH_ACTION_SNAP_LEFT}, - {4.1,0,-0.3,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,1,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - class Fort_RazorWire: Fort_RazorWirePreview {}; - - class Sandbag1_DZ: Barrier { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-1.5,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.5,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.4,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class BagFenceRound_DZ: Barrier { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-1.295,0.38,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.295,0.38,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.4,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - //Snapping whitelists for Floors, walls and stairs - class FloorsWallsStairs: Barrier { - radius = 7; - }; - - class WoodFloorQuarter_Preview_DZ: FloorsWallsStairs { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-1.2,0.107,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,1.11,0.107,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.2,0,0.107,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.3,0,0.107,$STR_EPOCH_ACTION_SNAP_RIGHT} - }; - }; - class WoodFloorQuarter_DZ: WoodFloorQuarter_Preview_DZ {}; - class WoodFloorHalf_Preview_DZ: FloorsWallsStairs { + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Modular Metal + // + /////////////////////////////////////////////////////////////////////////////////////////// + + class MetalFloor4x_DZ { // f=5.25 / 2.625 points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-2.33,0.107,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.33,0.107,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.18,0,0.107,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.32,0,0.107,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0.141, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -5.25, 0.141, $STR_EPOCH_ACTION_SNAP_BACK_CENTER}, + { -2.625, -5.25, 0.141, $STR_EPOCH_ACTION_SNAP_BACK_LEFT}, + { 2.625, -5.25, 0.141, $STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, + { 0, 5.25, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT_CENTER}, + { -2.625, 5.25, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT_LEFT}, + { 2.625, 5.25, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT_RIGHT}, + { -5.25, 0, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT_CENTER}, + { -5.25, -2.625, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT_BACK}, + { -5.25, 2.625, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT_FRONT}, + { 5.25, 0, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT_CENTER}, + { 5.25, -2.625, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT_BACK}, + { 5.25, 2.625, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT_FRONT} }; }; - class WoodFloorHalf_DZ: WoodFloorHalf_Preview_DZ {}; - - class WoodFloor_Preview_DZ: FloorsWallsStairs { + class MetalFloor4x_Preview_DZ: MetalFloor4x_DZ {}; + + class MetalFloor_DZ { // f=5.25 / 2.625 points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-2.32,0.130,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.32,0.130,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2.494,0,0.130,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.45,0,0.130,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, -0.003, 0.141, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -2.628, 0.141, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 2.622, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.625, -0.003, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.625, -0.003, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT} }; - radius = 10; }; - class WoodFloor_DZ: WoodFloor_Preview_DZ {}; - - class WoodTriangleFloor_DZ: FloorsWallsStairs { + class MetalFloor_Preview_DZ: MetalFloor_DZ {}; + + class MetalFloor_Half_DZ { // f=5.25 / 2.625 / 1.3125 points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-1.3,0.092,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,1.3,0.092,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.258,0.027,0.092,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.258,0.027,0.092,$STR_EPOCH_ACTION_SNAP_RIGHT} + { -0.006, 0.012, 0.132, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.006, -2.613, 0.132, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.006, 2.637, 0.132, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.3185, 0.012, 0.132, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.3065, 0.012, 0.132, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class MetalFloor_Half_Preview_DZ: MetalFloor_Half_DZ {}; + + class MetalFloor_Quarter_DZ { // f=5.25 / 2.625 / 1.3125 + points[] = { + { -0.006, 0.112, 0.132, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.006, -1.2005, 0.132, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.006, 1.4245, 0.132, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.3185, 0.112, 0.132, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.3065, 0.112, 0.132, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class MetalFloor_Quarter_Preview_DZ: MetalFloor_Quarter_DZ {}; + + class Metal_Drawbridge_DZ { + points[] = { + { 0.0245, 0.008, 0, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -2.6005, 0.008, 1.7, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.6495, 0.008, 1.7, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.0245, 0.008, 6.05, $STR_EPOCH_ACTION_SNAP_TOP} }; - radius = 10; }; - - class WoodTriangleFloor_Preview_DZ: WoodTriangleFloor_DZ {}; - - class WoodFloorStairs_DZ: FloorsWallsStairs { + class Drawbridge_Preview_DZ: Metal_Drawbridge_DZ {}; + class Metal_DrawbridgeLocked_DZ: Metal_Drawbridge_DZ {}; + + class MetalPillar_DZ { // h=3.024 points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-2.32,3.114,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.32,3.114,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2.52,0,3.114,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.46,0,3.114,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0.004, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.199, 1.516, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.199, 1.516, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.199, 0, 1.516, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.199, 0, 1.516, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 3.028, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class MetalPillar_Preview_DZ: MetalPillar_DZ {}; + + class MetalContainer1A_DZ { + points[] = { + { 0, 0, -1.26788, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -3.05, -1.26788, $STR_EPOCH_ACTION_SNAP_BACK_CENTER}, + { -1.2, -3.05, 0, $STR_EPOCH_ACTION_SNAP_BACK_LEFT}, + { 1.2, -3.05, 0, $STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, + { 0, -3.05, 1.26788, $STR_EPOCH_ACTION_SNAP_BACK_TOP}, + { 0, 3.05, -1.26788, $STR_EPOCH_ACTION_SNAP_FRONT_CENTER}, + { -1.2, 3.05, 0, $STR_EPOCH_ACTION_SNAP_FRONT_LEFT}, + { 1.2, 3.05, 0, $STR_EPOCH_ACTION_SNAP_FRONT_RIGHT}, + { 0, 3.05, 1.26788, $STR_EPOCH_ACTION_SNAP_FRONT_TOP}, + { -1.2, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.2, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.26788, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class MetalContainer1B_DZ: MetalContainer1A_DZ {}; + class MetalContainer1G_DZ: MetalContainer1A_DZ {}; + + class MetalContainer2D_DZ { + points[] = { + { 0, 0, -2.54288, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -3.05, -2.54288, $STR_EPOCH_ACTION_SNAP_BACK_CENTER}, + { -1.2, -3.05, -1.275, $STR_EPOCH_ACTION_SNAP_BACK_LEFT}, + { 1.2, -3.05, -1.275, $STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, + { 0, -3.05, 2.54288, $STR_EPOCH_ACTION_SNAP_BACK_TOP}, + { 0, 3.05, -2.54288, $STR_EPOCH_ACTION_SNAP_FRONT_CENTER}, + { -1.2, 3.05, -1.275, $STR_EPOCH_ACTION_SNAP_FRONT_LEFT}, + { 1.2, 3.05, -1.275, $STR_EPOCH_ACTION_SNAP_FRONT_RIGHT}, + { 0, 3.05, 2.54288, $STR_EPOCH_ACTION_SNAP_FRONT_TOP}, + { -1.2, 0, -1.275, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.2, 0, -1.275, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 2.54288, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Door_DZ { + points[] = { + { 0.01, 0, -0.008, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.995, 0, 1.327, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.015, 0, 1.327, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.01, 0, 2.662, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class DoorLocked_DZ: Door_DZ {}; + class DoorFrame_DZ: Door_DZ {}; + class DoorFrame_Preview_DZ: Door_DZ {}; + + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Modular Glass + // + /////////////////////////////////////////////////////////////////////////////////////////// + + class GlassFloor_DZ { // f=5.25 / 2.625 / 1.3125 + points[] = { + { 0, -0.002, 0.141, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -2.627, 0.141, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 2.623, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.625, -0.002, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.625, -0.002, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class GlassFloor_Preview_DZ: GlassFloor_DZ {}; + + class GlassFloor_Half_DZ { // f=5.25 / 2.625 / 1.3125 + points[] = { + { -0.032, -0.003, 0.141, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.032, -2.628, 0.141, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.032, 2.622, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.3445, -0.003, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.2805, -0.003, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class GlassFloor_Half_Preview_DZ: GlassFloor_Half_DZ {}; + + class GlassFloor_Quarter_DZ { // f=5.25 / 2.625 / 1.3125 + points[] = { + { 0.005, -0.017, 0.141, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0.005, -1.3295, 0.141, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0.005, 1.2955, 0.141, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.3075, -0.017, 0.141, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.3175, -0.017, 0.141, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class GlassFloor_Quarter_Preview_DZ: GlassFloor_Quarter_DZ {}; + + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Modular Cinder + // + /////////////////////////////////////////////////////////////////////////////////////////// + + class Cinder_DZE { // All cinder walls and doors + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -2.625, 0, 1.7, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.625, 0, 1.7, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 3.4, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class CinderWall_DZ: Cinder_DZE {}; // wall + class CinderWall_Preview_DZ: Cinder_DZE {}; // wall + class CinderWallSmallDoorway_DZ: Cinder_DZE {}; // doorway + class CinderWallSmallDoorway_Preview_DZ: Cinder_DZE {}; // doorway + class CinderWallDoorSmall_DZ: Cinder_DZE {}; // door + class CinderWallDoorSmallLocked_DZ: Cinder_DZE {}; // door + class CinderDoorHatch_DZ: Cinder_DZE {}; // door hatch + class CinderDoorHatchLocked_DZ: Cinder_DZE {}; // door hatch + class CinderDoorHatch_Preview_DZ: Cinder_DZE {}; // door hatch + class CinderWallWindow_DZ: Cinder_DZE {}; // window + class CinderWallWindowLocked_DZ: Cinder_DZE {}; // window + class CinderWallWindow_Preview_DZ: Cinder_DZE {}; // window + class CinderWallDoorway_DZ: Cinder_DZE {}; // garage doorway + class CinderWallDoorway_Preview_DZ: Cinder_DZE {}; // garage doorway + class CinderWallDoor_DZ: Cinder_DZE {}; // garage door + class CinderWallDoorLocked_DZ: Cinder_DZE {}; // garage door + class CinderGarageOpenTopFrame_DZ: Cinder_DZE {}; // open top garage frame only + class CinderGarageOpenTop_DZ: Cinder_DZE {}; // open top garage doors + class CinderGarageOpenTopLocked_DZ: Cinder_DZE {}; // open top garage doors + class CinderGarageOpenTop_Preview_DZ: Cinder_DZE {}; // open top garage doors + + class CinderWallHalf_DZ: Cinder_DZE { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -2.625, 0, 1.7, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.625, 0, 1.7, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.5, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class CinderWallHalf_Preview_DZ: CinderWallHalf_DZ {}; + class CinderWallHalf_Gap_DZ: CinderWallHalf_DZ {}; + class CinderWallHalf_Gap_Preview_DZ: CinderWallHalf_DZ {}; + + class CinderGateFrame_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -2.625, 0, 1.7, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.625, 0, 1.7, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 6.8, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class CinderGate_DZ: CinderGateFrame_DZ {}; + class CinderGateLocked_DZ: CinderGateFrame_DZ {}; + class CinderGate_Preview_DZ: CinderGateFrame_DZ {}; + + /////////////////////////////////////////////////////////////////////////////////////////////////// + // + // Modular Wood + // + /////////////////////////////////////////////////////////////////////////////////////////////////// + + class WoodFloor4x_DZ { // LR=9.76 / FB=9.3 + points[] = { + { -0.012, 0, 0.139, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.012, -4.65, 0.139, $STR_EPOCH_ACTION_SNAP_BACK_CENTER}, + { -2.452, -4.65, 0.139, $STR_EPOCH_ACTION_SNAP_BACK_LEFT}, + { 2.428, -4.65, 0.139, $STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, + { -0.012, 4.65, 0.139, $STR_EPOCH_ACTION_SNAP_FRONT_CENTER}, + { -2.452, 4.65, 0.139, $STR_EPOCH_ACTION_SNAP_FRONT_LEFT}, + { 2.428, 4.65, 0.139, $STR_EPOCH_ACTION_SNAP_FRONT_RIGHT}, + { -4.892, 0, 0.139, $STR_EPOCH_ACTION_SNAP_LEFT_CENTER}, + { -4.892, -2.325, 0.139, $STR_EPOCH_ACTION_SNAP_LEFT_BACK}, + { -4.892, 2.325, 0.139, $STR_EPOCH_ACTION_SNAP_LEFT_FRONT}, + { 4.868, 0, 0.139, $STR_EPOCH_ACTION_SNAP_RIGHT_CENTER}, + { 4.868, -2.325, 0.139, $STR_EPOCH_ACTION_SNAP_RIGHT_BACK}, + { 4.868, 2.325, 0.139, $STR_EPOCH_ACTION_SNAP_RIGHT_FRONT} + }; + }; + class WoodFloor4x_Preview_DZ: WoodFloor4x_DZ {}; + + class WoodFloor_DZ { // LR=4.88 / FB=4.65 + points[] = { + { -0.029, -0.013, 0.139, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.029, -2.338, 0.139, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.029, 2.312, 0.139, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.469, -0.013, 0.139, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.411, -0.013, 0.139, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class WoodFloor_Preview_DZ: WoodFloor_DZ {}; + + class WoodFloorHalf_DZ { // LR=2.44 / FB=4.65 + points[] = { + { 0.081, 0.005, 0.116, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0.081, -2.320, 0.116, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0.081, 2.330, 0.116, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.139, 0.005, 0.116, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.301, 0.005, 0.116, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class WoodFloorHalf_Preview_DZ: WoodFloorHalf_DZ {}; + + class WoodFloorQuarter_DZ { // LR=2.44 / FB=2.325 + points[] = { + { 0.047, -0.042, 0.114, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0.047, -1.2045, 0.114, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0.047, 1.1205, 0.114, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.173, -0.042, 0.114, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.267, -0.042, 0.114, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class WoodFloorQuarter_Preview_DZ: WoodFloorQuarter_DZ {}; + + class WoodFloorStairs_DZ { // LR=4.88 / FB=4.65 + points[] = { + { -0.0275, -0.0125, 0.125, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.0275, -2.3375, 3.125, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.0275, 2.3125, 3.125, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.4675, -0.0125, 3.125, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.4125, -0.0125, 3.125, $STR_EPOCH_ACTION_SNAP_RIGHT} }; }; class Wood_Floor_Stairs_Preview_DZ: WoodFloorStairs_DZ {}; - - class Stairs_DZE: FloorsWallsStairs { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,3.65,3,$STR_EPOCH_ACTION_SNAP_FRONT}, - {0,1.8,0,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {-0.81,1.8,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.78,1.8,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT} - }; - }; - class WoodStairs_DZ: Stairs_DZE {}; - class WoodStairs_Preview_DZ: Stairs_DZE {}; - class WoodStairsSans_Preview_DZ: Stairs_DZE {}; - class WoodStairsSans_DZ: Stairs_DZE {}; - class WoodStairsRails_DZ: Stairs_DZE {}; - class WoodSmall_DZE: FloorsWallsStairs { // Small wood walls + class WoodTriangleFloor_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.285,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.285,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,3,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0.1, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -1.3, 0.1, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 1.288, 0.1, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.258, 0.027, 0.1, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.258, 0.027, 0.1, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + class WoodTriangleFloor_Preview_DZ: WoodTriangleFloor_DZ {}; + + //////// Small Wooden Walls //////// + + class WoodSmall_DZE { // LR=4.57 + points[] = { + { -0.039, 0.021, 0.029, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.324, 0.021, 1.529, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.246, 0.021, 1.529, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.039, 0.021, 3.029, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class WoodSmallWall_DZ: WoodSmall_DZE {}; // wall + class WoodSmallWall_Preview_DZ: WoodSmall_DZE {}; // wall + class WoodSmallWallDoor_DZ: WoodSmall_DZE {}; // doorway + class WoodSmallWallDoor_Preview_DZ: WoodSmall_DZE {}; // doorway + class WoodSmallWallWin_DZ: WoodSmall_DZE {}; // window + class WoodSmallWallWin_Preview_DZ: WoodSmall_DZE {}; // window + class Land_DZE_WoodDoor: WoodSmall_DZE {}; // door + class Land_DZE_WoodDoorLocked: WoodSmall_DZE {}; // door + class WoodDoor_Preview_DZ: WoodSmall_DZE {}; // door + + class Land_DZE_WoodOpenTopGarageDoor { // garage door + points[] = { + { -0.023, 0.016, 0.019, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.308, 0.016, 1.519, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.262, 0.016, 1.519, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.023, 0.016, 3.019, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class Land_DZE_WoodOpenTopGarageLocked: Land_DZE_WoodOpenTopGarageDoor {}; + class Wood_GarageOpenTop_Preview_DZ: Land_DZE_WoodOpenTopGarageDoor {}; + + //////// Large Wooden Walls //////// + + class WoodLarge_DZE { // LR=4.88 + points[] = { + { -0.024, 0.018, 0.038, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.464, 0.018, 1.538, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.416, 0.018, 1.538, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.024, 0.018, 3.038, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class WoodLargeWall_DZ: WoodLarge_DZE {}; // wall + class WoodLargeWall_Preview_DZ: WoodLarge_DZE {}; + + class WoodLargeWallDoor_DZ { // doorway + points[] = { + { -0.041, 0.018, 0.028, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.481, 0.018, 1.528, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.399, 0.018, 1.528, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.041, 0.018, 3.028, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class WoodLargeWallDoor_Preview_DZ: WoodLargeWallDoor_DZ {}; + + class Land_DZE_LargeWoodDoor { // door + points[] = { + { -0.041, 0.018, 0.03, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.481, 0.018, 1.53, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.399, 0.018, 1.53, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.041, 0.018, 3.03, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class Land_DZE_LargeWoodDoorLocked: Land_DZE_LargeWoodDoor {}; + class LargeWoodDoor_Preview_DZ: Land_DZE_LargeWoodDoor {}; + + class WoodLargeWallWin_DZ { // window + points[] = { + { -0.023, 0.021, 0.039, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.463, 0.021, 1.539, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.417, 0.021, 1.539, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.023, 0.021, 3.039, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class WoodLargeWallWin_Preview_DZ: WoodLargeWallWin_DZ {}; + + class Land_DZE_GarageWoodDoor { // garage + points[] = { + { -0.023, 0.022, 0.018, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.463, 0.022, 1.518, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.417, 0.022, 1.518, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.023, 0.022, 3.018, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class Land_DZE_GarageWoodDoorLocked: Land_DZE_GarageWoodDoor {}; + class GarageWoodDoor_Preview_DZ: Land_DZE_GarageWoodDoor {}; + + class WoodSmallWallThird_DZ { // 4.88m + points[] = { + { -0.023, -0.018, 0.002, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.463, -0.018, 1.502, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.417, -0.018, 1.502, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.023, -0.018, 1.167, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class WoodSmallWallThird_Preview_DZ: WoodSmallWallThird_DZ {}; + + class WoodTriangleWall_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.26, 0, 1.32, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.26, 0, 1.32, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 2.59, $STR_EPOCH_ACTION_SNAP_TOP} }; - }; - class WoodSmallWallDoor_Preview_DZ: WoodSmall_DZE {}; - class WoodSmallWall_Preview_DZ: WoodSmall_DZE {}; - class WoodSmallWallWin_Preview_DZ: WoodSmall_DZE {}; - class WoodSmallWallDoor_DZ: WoodSmall_DZE {}; - class WoodSmallWall_DZ: WoodSmall_DZE {}; - class WoodSmallWallWin_DZ: WoodSmall_DZE {}; - class Land_DZE_WoodDoor: WoodSmall_DZE {}; - class Land_DZE_WoodDoorLocked: WoodSmall_DZE {}; - class Land_DZE_WoodOpenTopGarageDoor: WoodSmall_DZE {}; - class Land_DZE_WoodOpenTopGarageLocked: WoodSmall_DZE {}; - class Wood_GarageOpenTop_Preview_DZ: WoodSmall_DZE {}; - class WoodDoor_Preview_DZ: WoodSmall_DZE {}; - - class WoodLarge_DZE: FloorsWallsStairs { //Large wood walls - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.45,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.45,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,3,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - class WoodLargeWall_Preview_DZ: WoodLarge_DZE {}; - class WoodLargeWallWin_Preview_DZ: WoodLarge_DZE {}; - class WoodLargeWallDoor_Preview_DZ: WoodLarge_DZE {}; - - class WoodSmallWallThird_Preview_DZ: WoodLarge_DZE { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.445,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.445,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,1.17,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class WoodTriangleWall_DZ: FloorsWallsStairs { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,0,2.62,$STR_EPOCH_ACTION_SNAP_TOP}, - {-1.26,0,1.32,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.26,0,1.32,$STR_EPOCH_ACTION_SNAP_RIGHT} - }; - radius = 10; }; - class Wood_Triangle_Wall_Preview_DZ: WoodTriangleWall_DZ {}; - - class WoodSmallWallThird_DZ: WoodSmallWallThird_Preview_DZ{}; - class WoodLargeWall_DZ: WoodLarge_DZE {}; - class Land_DZE_LargeWoodDoor: WoodLarge_DZE {}; - class WoodLargeWallWin_DZ: WoodLarge_DZE {}; - class WoodLargeWallDoor_DZ: WoodLarge_DZE {}; - class Land_DZE_GarageWoodDoor: WoodLarge_DZE {}; - class GarageWoodDoor_Preview_DZ: WoodLarge_DZE {}; - class Land_DZE_GarageWoodDoorLocked: WoodLarge_DZE {}; - class Land_DZE_LargeWoodDoorLocked: WoodLarge_DZE {}; - class LargeWoodDoor_Preview_DZ: WoodLarge_DZE {}; - - class WoodGateFrame_DZ: FloorsWallsStairs { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {-2.43,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.45,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,6.05,$STR_EPOCH_ACTION_SNAP_TOP} - }; - radius = 10; - }; - - class Land_DZE_WoodGate: WoodGateFrame_DZ {}; - class Land_DZE_WoodGateLocked: WoodGateFrame_DZ {}; - class WoodGate_Preview_DZ: WoodGateFrame_DZ {}; - - class Cinder_DZE: FloorsWallsStairs { //All cinder walls and doors - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {-2.64,0,1.685,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.64,0,1.685,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,3.4,$STR_EPOCH_ACTION_SNAP_TOP} - }; - radius = 10; - }; - - class CinderWallDoorway_Preview_DZ: Cinder_DZE {}; - class CinderWallSmallDoorway_Preview_DZ: Cinder_DZE {}; - class CinderWall_DZ: Cinder_DZE {}; - class CinderWall_Preview_DZ: Cinder_DZE {}; - class CinderWallDoorway_DZ: Cinder_DZE {}; - class CinderWallDoorLocked_DZ: Cinder_DZE {}; - class CinderWallDoor_DZ: Cinder_DZE {}; - class CinderWallSmallDoorway_DZ: Cinder_DZE {}; - class CinderWallDoorSmallLocked_DZ: Cinder_DZE {}; - class CinderWallDoorSmall_DZ: Cinder_DZE {}; - class CinderWallWindow_DZ: Cinder_DZE {}; - class CinderWallWindowLocked_DZ: Cinder_DZE {}; - class CinderWallWindow_Preview_DZ: Cinder_DZE {}; - class CinderGarageOpenTop_Preview_DZ: Cinder_DZE {}; - class CinderGarageOpenTopFrame_DZ: Cinder_DZE {}; - class CinderGarageOpenTop_DZ: Cinder_DZE {}; - class CinderGarageOpenTopLocked_DZ: Cinder_DZE {}; - class CinderDoorHatch_Preview_DZ: Cinder_DZE {}; - class CinderDoorHatch_DZ: Cinder_DZE {}; - class CinderDoorHatchLocked_DZ: Cinder_DZE {}; - - class CinderWallHalf_Preview_DZ: Cinder_DZE { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {-2.64,0,1.685,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.64,0,1.685,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,1.5,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - class CinderWallHalf_DZ: CinderWallHalf_Preview_DZ {}; - class CinderWallHalf_Gap_DZ: CinderWallHalf_Preview_DZ {}; - class CinderWallHalf_Gap_Preview_DZ: CinderWallHalf_Preview_DZ {}; - class CinderGateFrame_DZ: FloorsWallsStairs { + class WoodGateFrame_DZ { // 4.88m points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {-2.64,0,1.685,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.64,0,1.685,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,6.8,$STR_EPOCH_ACTION_SNAP_TOP} + { 0.022, 0.02, 0.025, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -2.418, 0.02, 1.525, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.462, 0.02, 1.525, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.022, 0.02, 6.025, $STR_EPOCH_ACTION_SNAP_TOP} }; - radius = 10; - }; - - class CinderGate_DZ: CinderGateFrame_DZ {}; - class CinderGateLocked_DZ: CinderGateFrame_DZ {}; - class CinderGate_Preview_DZ: CinderGateFrame_DZ {}; + }; + class Land_DZE_WoodGate: WoodGateFrame_DZ {}; + class Land_DZE_WoodGateLocked: WoodGateFrame_DZ {}; + class WoodGate_Preview_DZ: WoodGateFrame_DZ {}; - class MetalFloor_DZ: FloorsWallsStairs { + class WoodPillar_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0, -2.63,0.1265,$STR_EPOCH_ACTION_SNAP_BACK}, - {0, 2.63,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2.63,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.63,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0.016, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.158, 1.516, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.158, 1.516, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.2, 0, 1.516, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.2, 0, 1.516, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 3.016, $STR_EPOCH_ACTION_SNAP_TOP} }; - radius = 12; }; - - class MetalFloor_Preview_DZ: MetalFloor_DZ {}; - - class MetalFloor_Quarter_DZ: FloorsWallsStairs { + class Wood_Pillar_Preview_DZ: WoodPillar_DZ {}; + + class Stairs_DZE { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-1.2,0.1265,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,1.42,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.31,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.31,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT} + { -0.02, 0.012, -0.02, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.02, 1.337, -0.02, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -0.02, 3.662, 2.98, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.81, 1.812, 1.48, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.77, 1.812, 1.48, $STR_EPOCH_ACTION_SNAP_RIGHT} }; - radius = 12; }; - class MetalFloor_Quarter_Preview_DZ: MetalFloor_Quarter_DZ {}; - - class MetalFloor_Half_DZ: FloorsWallsStairs { + class WoodStairsSans_DZ: Stairs_DZE {}; + class WoodStairsSans_Preview_DZ: Stairs_DZE {}; + class WoodStairs_DZ: Stairs_DZE {}; + class WoodStairs_Preview_DZ: Stairs_DZE {}; + class WoodStairsRails_DZ: Stairs_DZE {}; + + class WoodRamp_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-2.62,0.1265,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.65,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.31,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.31,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0.065, 0, -0.18, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.585, 3.15, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.715, 3.15, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.065, 6.30, 2.82, $STR_EPOCH_ACTION_SNAP_TOP}, + { 0.065, 6.30, -0.18, $STR_EPOCH_ACTION_SNAP_FRONT} }; - radius = 10; }; - class MetalFloor_Half_Preview_DZ: MetalFloor_Half_DZ {}; - - class GlassFloor_DZ: FloorsWallsStairs { + class WoodRamp_Preview_DZ: WoodRamp_DZ {}; + + class WoodLadder_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-2.63,0.1265,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.63,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2.63,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.63,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.4, 0, 1.725, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.4, 0, 1.725, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 3.450, $STR_EPOCH_ACTION_SNAP_TOP} }; - radius = 12; }; - - class GlassFloor_Preview_DZ: GlassFloor_DZ {}; - - class GlassFloor_Quarter_DZ: FloorsWallsStairs { + class WoodLadder_Preview_DZ: WoodLadder_DZ {}; + + class WoodHandrail_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-1.33,0.1265,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,1.3,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.31,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.32,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0.016, 0.001, 0.002, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.164, 0.001, 0.491, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.196, 0.001, 0.491, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.016, 0.001, 0.98, $STR_EPOCH_ACTION_SNAP_TOP} }; - radius = 10; }; - - class GlassFloor_Quarter_Preview_DZ: GlassFloor_Quarter_DZ {}; - - class GlassFloor_Half_DZ: FloorsWallsStairs { + class Wood_Handrail_Preview_DZ: WoodHandrail_DZ {}; + + class SimpleFootbridge_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-2.63,0.1265,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.64,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.34,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.29,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -3.0, 0, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 3.0, 0, $STR_EPOCH_ACTION_SNAP_FRONT} }; - radius = 12; }; - - class GlassFloor_Half_Preview_DZ: GlassFloor_Half_DZ {}; - - class Metal_Drawbridge_DZ: FloorsWallsStairs { - radius = 10; + + class WoodenFootbridge_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {-2.4,0,1.685,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.46,0,1.685,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,6.05,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0.05, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -2.4, 0.05, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 2.4, 0.05, $STR_EPOCH_ACTION_SNAP_FRONT} }; - }; - - class Drawbridge_Preview_DZ: Metal_Drawbridge_DZ {}; - class Metal_DrawbridgeLocked_DZ: Metal_Drawbridge_DZ {}; - - class MetalPanel_DZ: FloorsWallsStairs { - radius = 5; + }; + + class Windbreak_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-1.5,0,0.7,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.5,0,0.7,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,2,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.975, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.975, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Fortifications + // + /////////////////////////////////////////////////////////////////////////////////////////// + + class Land_HBarrier1_DZ { + points[] = { + { 0.01, -0.01, -0.665, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0.01, -0.81, 0.075, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0.01, 0.79, 0.075, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.59, -0.01, 0.075, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.61, -0.01, 0.075, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.01, -0.01, 0.835, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Land_HBarrier3_DZ { + points[] = { + { 0, -0.03, -0.62, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.78, 0.12, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.72, 0.12, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.7, -0.03, 0.12, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.7, -0.03, 0.12, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, -0.03, 0.88, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Land_HBarrier5_DZ { + points[] = { + { 0, 0.1, -0.7, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.7, 0.04, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.9, 0.04, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.85, 0.1, 0.04, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.85, 0.1, 0.04, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0.1, 0.8, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Land_HBarrier5Curved_DZ { + points[] = { + { 0.01, -0.255, -0.6975, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0.12, -1.07, 0.0425, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.10, 0.56, 0.0425, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.90, -0.31, 0.0425, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.78, 0.42, 0.0425, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.01, -0.255, 0.9025, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Sandbag1_DZ { + points[] = { + { 0, 0, -0.4, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.5, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.5, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.4, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class BagFenceRound_DZ { + points[] = { + { 0, 0, -0.4, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.295, 0.38, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.295, 0.38, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.4, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class SandNest_DZ { + points[] = { + { 0, 0, -1, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.75, 0.8, -0.44, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.75, 0.8, -0.44, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + + class SandNestLarge_DZ { + points[] = { + { 0, 0, -1, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -4.5, 0, -0.44, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 4.5, 0, -0.44, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 3.8, -0.44, $STR_EPOCH_ACTION_SNAP_FRONT}, + { 0, -5.2, -0.44, $STR_EPOCH_ACTION_SNAP_BACK} + }; + }; + + class HeavyBagFence_DZ { + points[] = { + { 0, 0, -0.377709, $STR_EPOCH_ACTION_SNAP_PIVOT}, // -0,3 + { -1.5, 0, 0.1, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.5, 0, 0.1, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.5, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class HeavyBagFenceCorner_DZ { + points[] = { + { 0, 0, -0.377709, $STR_EPOCH_ACTION_SNAP_PIVOT}, // -0.3 + { 1.5, -1.2, 0.1, $STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, + { 0, -1.2, 0.5, $STR_EPOCH_ACTION_SNAP_BACK_CENTER}, + { -1.5, -1.2, 0.1, $STR_EPOCH_ACTION_SNAP_BACK_LEFT}, + { -1.3, 0, 0.5, $STR_EPOCH_ACTION_SNAP_LEFT_CENTER}, + { -1.3, 1.5, 0.1, $STR_EPOCH_ACTION_SNAP_LEFT_FRONT} + }; + }; + + class HeavyBagFenceRound_DZ { + points[] = { + { 0, 0, -0.293546, $STR_EPOCH_ACTION_SNAP_PIVOT}, // -0.2158 + { -2.78, -1.2, 0.1842, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.78, -1.2, 0.1842, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 1.075, 0.5842, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Land_WarfareBarrier5x_DZ { + points[] = { + { 0, 0, -0.55, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.63, 0.1375, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.63, 0.1375, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -3.925, 0, 0.1375, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 3.925, 0, 0.1375, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.8250, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class Concrete_Bunker_DZ: FloorsWallsStairs { - radius = 20; + class Land_WarfareBarrier10x_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.54,0,1,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.44,0,1,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,3.4,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, -0.5328, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.63, 0.1547, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.63, 0.1547, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -7.85, 0, 0.1547, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 7.85, 0, 0.1547, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.8422, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class Land_WarfareBarrier10xTall_DZ { + points[] = { + { 0, 0, -1.0749, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -1.26, -0.3874, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 1.26, -0.3874, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -7.85, 0, -0.3874, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 7.85, 0, -0.3874, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.6151, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class ConcreteBarrier_DZ { + points[] = { + { 0, 0, -0.4, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.3, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.3, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.3, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + class ConcreteBarrierStriped_DZ: ConcreteBarrier_DZ {}; + + class ConcreteWall_DZ { + points[] = { + { -0.031, 0, -1.75, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.276, 0, -0.0125, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.214, 0, -0.0125, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.031, 0, 1.725, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class ConcretePipe_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -1.45, -1.225, $STR_EPOCH_ACTION_SNAP_BACK_CENTER}, + { -1.225, -1.45, 0, $STR_EPOCH_ACTION_SNAP_BACK_LEFT}, + { 1.225, -1.45, 0, $STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, + { 0, -1.45, 1.225, $STR_EPOCH_ACTION_SNAP_BACK_TOP}, + { 0, 1.45, -1.225, $STR_EPOCH_ACTION_SNAP_FRONT_CENTER}, + { -1.225, 1.45, 0, $STR_EPOCH_ACTION_SNAP_FRONT_LEFT}, + { 1.225, 1.45, 0, $STR_EPOCH_ACTION_SNAP_FRONT_RIGHT}, + { 0, 1.45, 1.225, $STR_EPOCH_ACTION_SNAP_FRONT_TOP}, + { -1.225, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.225, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.225, $STR_EPOCH_ACTION_SNAP_TOP}, + { 0, 0, -1.225, $STR_EPOCH_ACTION_SNAP_BOTTOM} + }; + }; + + class DragonTeeth_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -4.5, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 4.5, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + + class DragonTeethBig_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -4.9, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 4.9, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + + class Fort_RazorWire { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.95, -0.3, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.95, -0.3, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -4.1, 0, -0.3, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 4.1, 0, -0.3, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class FortifiedWire_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -0.95, -0.3, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.95, -0.3, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2.9, 0, -0.3, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.9, 0, -0.3, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class BarbedGate_DZ { + points[] = { + { -1.88, 0.04, 0.2, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.88, 0.04, 0.2, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + + class Concrete_Bunker_DZ { + points[] = { + { -0.04, -0.007, 0.01, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.527, -0.007, 1.71, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.447, -0.007, 1.71, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.04, -0.007, 3.41, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class Concrete_Bunker_Locked_DZ: Concrete_Bunker_DZ {}; class Concrete_Bunker_Preview_DZ: Concrete_Bunker_DZ {}; - - class MetalGate_DZ: FloorsWallsStairs { - radius = 10; + + class MetalPanel_DZ { points[] = { - {-2,0,0.3,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-4.1,0,0.3,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0,0,0.3,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.5, 0, 0.7, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.5, 0, 0.7, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 2, $STR_EPOCH_ACTION_SNAP_TOP} + }; + }; + + class MetalGate_DZ { + points[] = { + { -2, 0, 0.3, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -4.1, 0, 0.3, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0, 0, 0.3, $STR_EPOCH_ACTION_SNAP_RIGHT} }; }; - class Fence_corrugated_DZ: FloorsWallsStairs { - radius = 10; + class Fence_corrugated_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-1.95,0,0.88,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.95,0,0.88,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, -0.45, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -1.99, 0, 0.00, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.99, 0, 0.00, $STR_EPOCH_ACTION_SNAP_RIGHT} }; }; - class Woodenfence: FloorsWallsStairs { - radius = 10; - }; - class WoodenFence_1_foundation_DZ: Woodenfence { + class StickFence_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 1.78042,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.95, 0, 0.3, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.95, 0, 0.3, $STR_EPOCH_ACTION_SNAP_RIGHT} + }; + }; + + class WoodenFence_1_foundation_DZ { + points[] = { + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.78042, $STR_EPOCH_ACTION_SNAP_TOP} }; }; @@ -548,12 +814,12 @@ class SnapBuilding { class WoodenFence_thirdpanel_DZ: WoodenFence_1_foundation_DZ {}; class WoodenFence_1_DZ: WoodenFence_1_foundation_DZ {}; - class WoodenFence_4_DZ: Woodenfence { + class WoodenFence_4_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 3.58042,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 3.58042, $STR_EPOCH_ACTION_SNAP_TOP} }; }; @@ -563,12 +829,12 @@ class SnapBuilding { class WoodenFence_7_DZ: WoodenFence_4_DZ {}; class WoodenFence_ghost_DZ: WoodenFence_4_DZ {}; - class WoodenFence_2_DZ: Woodenfence { + class WoodenFence_2_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 2.68042,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 2.68042, $STR_EPOCH_ACTION_SNAP_TOP} }; }; @@ -578,22 +844,21 @@ class SnapBuilding { class WoodenGate_2_DZ: WoodenFence_2_DZ {}; class WoodenGate_3_DZ: WoodenFence_2_DZ {}; - class WoodenGate_ghost_DZ: Woodenfence { + class WoodenGate_ghost_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.535, 0, -0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.535, 0, -0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 2.6,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.535, 0, -0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.535, 0, -0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 2.6, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class Metalfence: Woodenfence {}; - - class MetalFence_1_foundation_DZ: Metalfence { + + class MetalFence_1_foundation_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.535, 0, 0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 1.78042,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.535, 0, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.78042, $STR_EPOCH_ACTION_SNAP_TOP} }; }; @@ -602,284 +867,125 @@ class SnapBuilding { class MetalFence_thirdpanel_DZ: MetalFence_1_foundation_DZ {}; class MetalFence_1_DZ: MetalFence_1_foundation_DZ {}; - class MetalFence_2_DZ: Metalfence { + class MetalFence_2_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.575, 0, 0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.575, 0, 0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 2.68042,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.575, 0, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.575, 0, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 2.68042, $STR_EPOCH_ACTION_SNAP_TOP} }; }; class MetalFence_3_DZ: MetalFence_2_DZ {}; - class MetalFence_4_DZ: Metalfence { + class MetalFence_4_DZ { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.575, 0, 0.95,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.575, 0, 0.95,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0, 0, 3.58042,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -2.575, 0, 0.95, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 2.575, 0, 0.95, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 3.58042, $STR_EPOCH_ACTION_SNAP_TOP} }; }; class MetalFence_5_DZ: MetalFence_4_DZ {}; class MetalFence_6_DZ: MetalFence_4_DZ {}; class MetalFence_7_DZ: MetalFence_4_DZ {}; class MetalFence_ghost_DZ: MetalFence_4_DZ {}; - - class StickFence_DZ: FloorsWallsStairs { - radius = 10; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-2.95,0,0.3,$STR_EPOCH_ACTION_SNAP_LEFT}, - {2.95,0,0.3,$STR_EPOCH_ACTION_SNAP_RIGHT} - }; - }; - - class WoodHandrail_DZ: FloorsWallsStairs { - radius = 10; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-1.16,0,0.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.2,0,0.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,1,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class Wood_Handrail_Preview_DZ: WoodHandrail_DZ {}; - - class Door_DZ: FloorsWallsStairs { - radius = 10; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-1,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.01,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,2.67,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class DoorFrame_Preview_DZ: Door_DZ {}; - class DoorFrame_DZ: Door_DZ {}; - class DoorLocked_DZ: Door_DZ {}; - - class WoodFloor4x_DZ: FloorsWallsStairs { - radius = 20; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-4.64,0.130,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,4.64,0.130,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-4.96,0,0.130,$STR_EPOCH_ACTION_SNAP_LEFT}, - {4.95,0,0.130,$STR_EPOCH_ACTION_SNAP_RIGHT} - }; - }; - - class WoodFloor4x_Preview_DZ: WoodFloor4x_DZ {}; - - class MetalFloor4x_DZ: FloorsWallsStairs { - radius = 20; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-5.27,0.1265,$STR_EPOCH_ACTION_SNAP_BACK_CENTER}, - {-2.635,-5.27,0.1265,$STR_EPOCH_ACTION_SNAP_BACK_LEFT}, - {2.635,-5.27,0.1265,$STR_EPOCH_ACTION_SNAP_BACK_RIGHT}, - {0,5.27,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT_CENTER}, - {-2.635,5.27,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT_LEFT}, - {2.635,5.27,0.1265,$STR_EPOCH_ACTION_SNAP_FRONT_RIGHT}, - {-5.27,0,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT_CENTER}, - {-5.27,-2.635,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT_BACK}, - {-5.27,2.635,0.1265,$STR_EPOCH_ACTION_SNAP_LEFT_FRONT}, - {5.27,0,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT_CENTER}, - {5.27,-2.635,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT_BACK}, - {5.27,2.635,0.1265,$STR_EPOCH_ACTION_SNAP_RIGHT_FRONT} - }; - }; - - class MetalFloor4x_Preview_DZ: MetalFloor4x_DZ {}; - - class WoodPillar_DZ: FloorsWallsStairs { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-0.2,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.2,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,3.05,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class Wood_Pillar_Preview_DZ: WoodPillar_DZ {}; - - class MetalPillar_DZ: FloorsWallsStairs { - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-0.19,0,1.685,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.19,0,1.685,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,3.05,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - - class MetalPillar_Preview_DZ: MetalPillar_DZ {}; - - //Non essential Items that only snap to themselves, do whitelist inheritance if you want these to snap + + /////////////////////////////////////////////////////////////////////////////////////////// + // + // Storage + // + /////////////////////////////////////////////////////////////////////////////////////////// + class WoodCrate_DZ { - snapTo[] = { - "WoodCrate_DZ", - "WoodCrate2_DZ", - "GunRack_DZ", - "GunRack2_DZ", - "StorageCrate_DZ" - }; - radius = 5; points[] = { - {0,0,-0.47,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {0,-0.47,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.47,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-0.47,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.47,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.47,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, -0.47, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { 0, -0.47, 0, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.47, 0, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.47, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.47, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.47, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class WoodCrate2_DZ: WoodCrate_DZ {}; - - class GunRack_DZ: WoodCrate_DZ { - radius = 5; + + class GunRack_DZ { points[] = { - {0,-0.1,-0.51,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {0,-0.54,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.41,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-0.45,-0.1,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.33,-0.1,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,-0.1,0.22,$STR_EPOCH_ACTION_SNAP_TOP} + { -0.0575, -0.0995, -0.505, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { -0.0575, -0.5745, -0.140, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.0575, 0.3755, -0.140, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.4475, -0.0995, -0.140, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.3325, -0.0995, -0.140, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.0575, -0.0995, 0.225, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class GunRack2_DZ: GunRack_DZ {}; - - class StorageCrate_DZ: WoodCrate_DZ { + + class StorageCrate_DZ { points[] = { - {0,0,-0.22,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {0,-0.2,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.2,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-0.44,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.44,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,0.08,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0, -0.22, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { 0, -0.2, 0, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.2, 0, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.44, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.44, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 0.08, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - + class StorageShed_DZ { - snapTo[] = { - "StorageShed_DZ", - "StorageShed2_DZ" - }; - radius = 10; points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-1.35,1.5,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,1.2,1.5,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-2,0,1.5,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.57,0,1.5,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,2,$STR_EPOCH_ACTION_SNAP_TOP} + { -0.215, -0.075, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { -0.215, -1.35, 1.5, $STR_EPOCH_ACTION_SNAP_BACK}, + { -0.215, 1.2, 1.5, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -2, -0.075, 1.5, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.57, -0.075, 1.5, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { -0.215, -0.075, 3, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class StorageShed2_DZ: StorageShed_DZ {}; class StorageShed_Preview_DZ: StorageShed_DZ {}; - + class WoodShack_DZ { - snapTo[] = { - "WoodShack_DZ", - "WoodShack2_DZ" - }; - radius = 10; points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,-1.1,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,2.4,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.18,0.6,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {1.18,0.6,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,1.1,$STR_EPOCH_ACTION_SNAP_TOP} + { 0, 0.65, -1.1, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, -1.1, 0, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 2.4, 0, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.18, 0.65, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 1.18, 0.65, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0.65, 1.1, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class WoodShack2_DZ: WoodShack_DZ {}; - + class Wooden_shed_DZ { - snapTo[] = { - "Wooden_shed_DZ", - "Wooden_shed2_DZ" - }; - radius = 10; points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0.6,-1.64,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0.6,1.64,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-1.7,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {3.1,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT}, - {0,0,1.6,$STR_EPOCH_ACTION_SNAP_TOP} + { 0.7, 0, -1.6, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0.7, -1.64, 0, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0.7, 1.64, 0, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -1.7, 0, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 3.1, 0, 0, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0.7, 0, 1.6, $STR_EPOCH_ACTION_SNAP_TOP} }; }; - class Wooden_shed2_DZ: Wooden_shed_DZ {}; - + class OutHouse_DZ { - snapTo[] = { - "OutHouse_DZ" - }; - radius = 10; points[] = { - {0,0,-1.25,$STR_EPOCH_ACTION_SNAP_BOTTOM}, - {0,-0.55,0,$STR_EPOCH_ACTION_SNAP_BACK}, - {0,0.75,0,$STR_EPOCH_ACTION_SNAP_FRONT}, - {-0.59,0,0,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.59,0,0,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0.0675, -1.25, $STR_EPOCH_ACTION_SNAP_BOTTOM}, + { 0, -0.5825, 0, $STR_EPOCH_ACTION_SNAP_BACK}, + { 0, 0.7175, 0, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.59, 0.0675, 0, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.59, 0.0675, 0, $STR_EPOCH_ACTION_SNAP_RIGHT} }; }; - - class WoodRamp_Preview_DZ { - snapTo[] = { - "WoodRamp_DZ" - }; - radius = 7; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0.65,-1.7,1.2,$STR_EPOCH_ACTION_SNAP_BACK}, - {0.65,1.5,1.2,$STR_EPOCH_ACTION_SNAP_FRONT}, - {3.34,-0.115,2.82,$STR_EPOCH_ACTION_SNAP_TOP} - }; - }; - class WoodRamp_DZ: WoodRamp_Preview_DZ {}; - - class WoodLadder_Preview_DZ { - snapTo[] = { - "WoodLadder_DZ" - }; - radius = 5; - points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {-0.4,0,1.725,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.4,0,1.725,$STR_EPOCH_ACTION_SNAP_RIGHT} - }; - }; - class WoodLadder_DZ: WoodLadder_Preview_DZ {}; - + class VaultStorageLocked { - snapTo[] = { - "VaultStorageLocked", - "VaultStorage", - "VaultStorage2", - "VaultStorage2Locked", - "VaultStorageBroken", - "VaultStorageBroken2", - "TallSafe", - "TallSafeLocked", - "TallSafeBroken" - }; - radius = 5; points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,0.284,0.615,$STR_EPOCH_ACTION_SNAP_FRONT}, - {0,0,1.23,$STR_EPOCH_ACTION_SNAP_TOP}, - {-0.362,0,0.615,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.362,0,0.615,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, 0.284, 0.615, $STR_EPOCH_ACTION_SNAP_FRONT}, + { -0.362, 0, 0.615, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.362, 0, 0.615, $STR_EPOCH_ACTION_SNAP_RIGHT}, + { 0, 0, 1.23, $STR_EPOCH_ACTION_SNAP_TOP} }; - }; class VaultStorage: VaultStorageLocked {}; class VaultStorage2: VaultStorageLocked {}; @@ -887,16 +993,16 @@ class SnapBuilding { class VaultStorageBroken: VaultStorageLocked {}; class VaultStorageBroken2: VaultStorageLocked {}; - class TallSafeLocked: VaultStorageLocked { + class TallSafeLocked { points[] = { - {0,0,0,$STR_EPOCH_ACTION_SNAP_PIVOT}, - {0,0.35,0.615,$STR_EPOCH_ACTION_SNAP_FRONT}, - {0,0,2,$STR_EPOCH_ACTION_SNAP_TOP}, - {-0.42,0,0.615,$STR_EPOCH_ACTION_SNAP_LEFT}, - {0.42,0,0.615,$STR_EPOCH_ACTION_SNAP_RIGHT} + { 0, 0, 0, $STR_EPOCH_ACTION_SNAP_PIVOT}, + { 0, 0.35, 0.615, $STR_EPOCH_ACTION_SNAP_FRONT}, + { 0, 0, 2, $STR_EPOCH_ACTION_SNAP_TOP}, + { -0.42, 0, 0.615, $STR_EPOCH_ACTION_SNAP_LEFT}, + { 0.42, 0, 0.615, $STR_EPOCH_ACTION_SNAP_RIGHT} }; }; - + class TallSafe: TallSafeLocked {}; class TallSafeBroken: TallSafeLocked {}; };