From 8ab3e04f6c7e73bc0b185f3470108842923bff94 Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 7 Jun 2025 19:07:48 +0200 Subject: [PATCH] Add Human readable names, Refactor Port Creation --- .../Assets/Scripts/Models/ModelList.cs | 210 +++++++++--------- vr-configurator/Assets/Scripts/Models/Port.cs | 85 ++++--- .../Assets/Scripts/UI/PortSelector.cs | 11 +- 3 files changed, 159 insertions(+), 147 deletions(-) diff --git a/vr-configurator/Assets/Scripts/Models/ModelList.cs b/vr-configurator/Assets/Scripts/Models/ModelList.cs index 889f645..7225285 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelList.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelList.cs @@ -34,17 +34,17 @@ public class ModelList Vector3.one, new List { - new Port(Definitions.PORT_BIKE_FRAME, new Vector3(0,1,0), "idBikeFrame"), - new Port(Definitions.PORT_BIKE_FRAME2, new Vector3(0,1,0), "idBikeFrame2"), - new Port(Definitions.PORT_BIKE_SPROCKET, new Vector3(0.007933f, 0.444f, -0.1614f), "idBikeSprocket"), - new Port(Definitions.PORT_BIKE_PEDAL_L, new Vector3(-0.1252177f, 0.5490288f, -0.312027f), "idBikePedalL_1"), - new Port(Definitions.PORT_BIKE_PEDAL_R, new Vector3(0.1410843f, 0.3393247f, -0.01154391f), "idBikePedalR_1"), - new Port(Definitions.PORT_BIKE_STEER, new Vector3(0.002989591f, 1.214713f, 0.4860705f), Quaternion.Euler(-30f, 0f, 0f), "idBikeHandlebars"), - new Port(Definitions.PORT_BIKE_WHEEL_B, new Vector3(-0.01431298f, 0.4673222f, -0.7874681f), "idBikeWheel_Back1"), - new Port(Definitions.PORT_BIKE_WHEEL_B2, new Vector3(-0.01431298f, 0.4673222f, -0.7874681f), "idBikeWheel_Back2"), - new Port(Definitions.PORT_BIKE_WHEEL_F, new Vector3(0.01984263f, 0.4673225f, 0.9462124f), "idBikeWheel_Front1"), - new Port(Definitions.PORT_BIKE_WHEEL_F2, new Vector3(0.01984263f, 0.4673225f, 0.9462124f), "idBikeWheel_Front2"), - new Port(Definitions.PORT_BIKE_DRIVER, new Vector3(0f, 1.25f, -0.65f), Quaternion.Euler(70f, 0f, 0f), "nuke"), + Port.Choosable("Frame", Definitions.PORT_BIKE_FRAME, "idBikeFrame", new Vector3(0,1,0)), + Port.Choosable("Frame 2", Definitions.PORT_BIKE_FRAME2, "idBikeFrame2", new Vector3(0,1,0)), + Port.Choosable("Sprocket", Definitions.PORT_BIKE_SPROCKET, "idBikeSprocket", new Vector3(0.007933f, 0.444f, -0.1614f)), + Port.Choosable("Left Pedal", Definitions.PORT_BIKE_PEDAL_L, "idBikePedalL_1", new Vector3(-0.1252177f, 0.5490288f, -0.312027f)), + Port.Choosable("Right Pedal", Definitions.PORT_BIKE_PEDAL_R, "idBikePedalR_1", new Vector3(0.1410843f, 0.3393247f, -0.01154391f)), + Port.Choosable("Handlebars", Definitions.PORT_BIKE_STEER, "idBikeHandlebars",new Vector3(0.002989591f, 1.214713f, 0.4860705f), Quaternion.Euler(-30f, 0f, 0f)), + Port.Choosable("Back Wheel", Definitions.PORT_BIKE_WHEEL_B,"idBikeWheel_Back1", new Vector3(-0.01431298f, 0.4673222f, -0.7874681f)), + Port.Choosable("Back Wheel 2", Definitions.PORT_BIKE_WHEEL_B2, "idBikeWheel_Back2", new Vector3(-0.01431298f, 0.4673222f, -0.7874681f)), + Port.Choosable("Front Wheel", Definitions.PORT_BIKE_WHEEL_F, "idBikeWheel_Front1", new Vector3(0.01984263f, 0.4673225f, 0.9462124f)), + Port.Choosable("Front Wheel2 ", Definitions.PORT_BIKE_WHEEL_F2,"idBikeWheel_Front2", new Vector3(0.01984263f, 0.4673225f, 0.9462124f)), + Port.Choosable("Driver", Definitions.PORT_BIKE_DRIVER, "nuke", new Vector3(0f, 1.25f, -0.65f), Quaternion.Euler(70f, 0f, 0f)), } ), new BaseModel( @@ -57,100 +57,100 @@ public class ModelList new Vector3(0.03f,0.03f,0.03f), //because model is too big in space new List { - new Port(Definitions.PORT_ERLBACH_0, new Vector3(0f, 0f, 0f), "idErlbachPart0", false), - new Port(Definitions.PORT_ERLBACH_1, new Vector3(0f, 0f, 0f), "idErlbachPart1", false), - new Port(Definitions.PORT_ERLBACH_2, new Vector3(0f, 0f, 0f), "idErlbachPart2", false), - new Port(Definitions.PORT_ERLBACH_3, new Vector3(0f, 0f, 0f), "idErlbachPart3", false), - new Port(Definitions.PORT_ERLBACH_4, new Vector3(0f, 0f, 0f), "idErlbachPart4", false), - new Port(Definitions.PORT_ERLBACH_5, new Vector3(0f, 0f, 0f), "idErlbachPart5", false), - new Port(Definitions.PORT_ERLBACH_6, new Vector3(0f, 0f, 0f), "idErlbachPart6", false), - new Port(Definitions.PORT_ERLBACH_7, new Vector3(0f, 0f, 0f), "idErlbachPart7", false), - new Port(Definitions.PORT_ERLBACH_8, new Vector3(0f, 0f, 0f), "idErlbachPart8", false), - new Port(Definitions.PORT_ERLBACH_9, new Vector3(0f, 0f, 0f), "idErlbachPart9", false), - new Port(Definitions.PORT_ERLBACH_10, new Vector3(0f, 0f, 0f), "idErlbachPart10", false), - new Port(Definitions.PORT_ERLBACH_11, new Vector3(0f, 0f, 0f), "idErlbachPart11", false), - new Port(Definitions.PORT_ERLBACH_12, new Vector3(0f, 0f, 0f), "idErlbachPart12", false), - new Port(Definitions.PORT_ERLBACH_13, new Vector3(0f, 0f, 0f), "idErlbachPart13", false), - new Port(Definitions.PORT_ERLBACH_14, new Vector3(0f, 0f, 0f), "idErlbachPart14", false), - new Port(Definitions.PORT_ERLBACH_15, new Vector3(0f, 0f, 0f), "idErlbachPart15", false), - new Port(Definitions.PORT_ERLBACH_16, new Vector3(0f, 0f, 0f), "idErlbachPart16", false), - new Port(Definitions.PORT_ERLBACH_17, new Vector3(0f, 0f, 0f), "idErlbachPart17", false), - new Port(Definitions.PORT_ERLBACH_18, new Vector3(0f, 0f, 0f), "idErlbachPart18", false), - new Port(Definitions.PORT_ERLBACH_19, new Vector3(0f, 0f, 0f), "idErlbachPart19", false), - new Port(Definitions.PORT_ERLBACH_20, new Vector3(0f, 0f, 0f), "idErlbachPart20", false), - new Port(Definitions.PORT_ERLBACH_21, new Vector3(0f, 0f, 0f), "idErlbachPart21", false), - new Port(Definitions.PORT_ERLBACH_22, new Vector3(0f, 0f, 0f), "idErlbachPart22", false), - new Port(Definitions.PORT_ERLBACH_23, new Vector3(0f, 0f, 0f), "idErlbachPart23", false), - new Port(Definitions.PORT_ERLBACH_24, new Vector3(0f, 0f, 0f), "idErlbachPart24", false), - new Port(Definitions.PORT_ERLBACH_25, new Vector3(0f, 0f, 0f), "idErlbachPart25", false), - new Port(Definitions.PORT_ERLBACH_26, new Vector3(0f, 0f, 0f), "idErlbachPart26", false), - new Port(Definitions.PORT_ERLBACH_27, new Vector3(0f, 0f, 0f), "idErlbachPart27", false), - new Port(Definitions.PORT_ERLBACH_28, new Vector3(0f, 0f, 0f), "idErlbachPart28", false), - new Port(Definitions.PORT_ERLBACH_29, new Vector3(0f, 0f, 0f), "idErlbachPart29", false), - new Port(Definitions.PORT_ERLBACH_30, new Vector3(0f, 0f, 0f), "idErlbachPart30", false), - new Port(Definitions.PORT_ERLBACH_31, new Vector3(0f, 0f, 0f), "idErlbachPart31", false), - new Port(Definitions.PORT_ERLBACH_32, new Vector3(0f, 0f, 0f), "idErlbachPart32", false), - new Port(Definitions.PORT_ERLBACH_33, new Vector3(0f, 0f, 0f), "idErlbachPart33", false), - new Port(Definitions.PORT_ERLBACH_34, new Vector3(0f, 0f, 0f), "idErlbachPart34", false), - new Port(Definitions.PORT_ERLBACH_35, new Vector3(0f, 0f, 0f), "idErlbachPart35", false), - new Port(Definitions.PORT_ERLBACH_36, new Vector3(0f, 0f, 0f), "idErlbachPart36", false), - new Port(Definitions.PORT_ERLBACH_37, new Vector3(0f, 0f, 0f), "idErlbachPart37", false), - new Port(Definitions.PORT_ERLBACH_38, new Vector3(0f, 0f, 0f), "idErlbachPart38", false), - new Port(Definitions.PORT_ERLBACH_39, new Vector3(0f, 0f, 0f), "idErlbachPart39", false), - new Port(Definitions.PORT_ERLBACH_40, new Vector3(0f, 0f, 0f), "idErlbachPart40", false), - new Port(Definitions.PORT_ERLBACH_41, new Vector3(0f, 0f, 0f), "idErlbachPart41", false), - new Port(Definitions.PORT_ERLBACH_42, new Vector3(0f, 0f, 0f), "idErlbachPart42", false), - new Port(Definitions.PORT_ERLBACH_43, new Vector3(0f, 0f, 0f), "idErlbachPart43", false), - new Port(Definitions.PORT_ERLBACH_44, new Vector3(0f, 0f, 0f), "idErlbachPart44", false), - new Port(Definitions.PORT_ERLBACH_45, new Vector3(0f, 0f, 0f), "idErlbachPart45", false), - new Port(Definitions.PORT_ERLBACH_46, new Vector3(0f, 0f, 0f), "idErlbachPart46", false), - new Port(Definitions.PORT_ERLBACH_47, new Vector3(0f, 0f, 0f), "idErlbachPart47", false), - new Port(Definitions.PORT_ERLBACH_48, new Vector3(0f, 0f, 0f), "idErlbachPart48", false), - new Port(Definitions.PORT_ERLBACH_49, new Vector3(0f, 0f, 0f), "idErlbachPart49", false), - new Port(Definitions.PORT_ERLBACH_50, new Vector3(0f, 0f, 0f), "idErlbachPart50", false), - new Port(Definitions.PORT_ERLBACH_51, new Vector3(0f, 0f, 0f), "idErlbachPart51", false), - new Port(Definitions.PORT_ERLBACH_52, new Vector3(0f, 0f, 0f), "idErlbachPart52", false), - new Port(Definitions.PORT_ERLBACH_53, new Vector3(0f, 0f, 0f), "idErlbachPart53", false), - new Port(Definitions.PORT_ERLBACH_54, new Vector3(0f, 0f, 0f), "idErlbachPart54", false), - new Port(Definitions.PORT_ERLBACH_55, new Vector3(0f, 0f, 0f), "idErlbachPart55", false), - new Port(Definitions.PORT_ERLBACH_56, new Vector3(0f, 0f, 0f), "idErlbachPart56", false), - new Port(Definitions.PORT_ERLBACH_57, new Vector3(0f, 0f, 0f), "idErlbachPart57", false), - new Port(Definitions.PORT_ERLBACH_58, new Vector3(0f, 0f, 0f), "idErlbachPart58", false), - new Port(Definitions.PORT_ERLBACH_59, new Vector3(0f, 0f, 0f), "idErlbachPart59", false), - new Port(Definitions.PORT_ERLBACH_60, new Vector3(0f, 0f, 0f), "idErlbachPart60", false), - new Port(Definitions.PORT_ERLBACH_61, new Vector3(0f, 0f, 0f), "idErlbachPart61", false), - new Port(Definitions.PORT_ERLBACH_62, new Vector3(0f, 0f, 0f), "idErlbachPart62", false), - new Port(Definitions.PORT_ERLBACH_63, new Vector3(0f, 0f, 0f), "idErlbachPart63", false), - new Port(Definitions.PORT_ERLBACH_64, new Vector3(0f, 0f, 0f), "idErlbachPart64", false), - new Port(Definitions.PORT_ERLBACH_65, new Vector3(0f, 0f, 0f), "idErlbachPart65", false), - new Port(Definitions.PORT_ERLBACH_66, new Vector3(0f, 0f, 0f), "idErlbachPart66", false), - new Port(Definitions.PORT_ERLBACH_67, new Vector3(0f, 0f, 0f), "idErlbachPart67", false), - new Port(Definitions.PORT_ERLBACH_68, new Vector3(0f, 0f, 0f), "idErlbachPart68", false), - new Port(Definitions.PORT_ERLBACH_69, new Vector3(0f, 0f, 0f), "idErlbachPart69", false), - new Port(Definitions.PORT_ERLBACH_70, new Vector3(0f, 0f, 0f), "idErlbachPart70", false), - new Port(Definitions.PORT_ERLBACH_71, new Vector3(0f, 0f, 0f), "idErlbachPart71", false), - new Port(Definitions.PORT_ERLBACH_72, new Vector3(0f, 0f, 0f), "idErlbachPart72", false), - new Port(Definitions.PORT_ERLBACH_73, new Vector3(0f, 0f, 0f), "idErlbachPart73", false), - new Port(Definitions.PORT_ERLBACH_BasePlate, new Vector3(0f, 0f, 0f), "idErlbachPart74",false, new Vector3(0f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_FrontAxe, new Vector3(0f, 0f, 0f), "idErlbachPart75",false, new Vector3(1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_BatteriePack, new Vector3(0f, 0f, 0f), "idErlbachPart76",false, new Vector3(0f,0f,1f)), - new Port(Definitions.PORT_ERLBACH_77, new Vector3(0f, 0f, 0f), "idErlbachPart77", false), - new Port(Definitions.PORT_ERLBACH_78, new Vector3(0f, 0f, 0f), "idErlbachPart78", false), - new Port(Definitions.PORT_ERLBACH_79, new Vector3(0f, 0f, 0f), "idErlbachPart79", false), - new Port(Definitions.Port_Erlbach_Wheel_LH, new Vector3(0f, 0f, 0f), "idErlbachWheel_LH", true, new Vector3(0f,-1f,0f)), - new Port(Definitions.Port_Erlbach_Wheel_LV, new Vector3(0f, 0f, 0f), "idErlbachWheel_LV",true, new Vector3(0f,-1f,0f)), - new Port(Definitions.PORT_ERLBACH_Wheel_RH, new Vector3(0f, 0f, 0f), "idErlbachWheel_RH",true, new Vector3(0f,1f,0f)), - new Port(Definitions.PORT_ERLBACH_Wheel_RV, new Vector3(0f, 0f, 0f), "idErlbachWheel_RV",true, new Vector3(0f,1f,0f)), - new Port(Definitions.PORT_ERLBACH_Body, new Vector3(0f, 0f, 0f), "idErlbachPart84",true, new Vector3(0f,0f,1f)), - new Port(Definitions.PORT_ERLBACH_Bumper, new Vector3(0f, 0f, 0f), "idErlbachPart85",true, new Vector3(1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_FrontBumper, new Vector3(0f, 0f, 0f), "idErlbachPart86",true, new Vector3(-1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_Number, new Vector3(0f, 0f, 0f), "idErlbachPart87",true, new Vector3(1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_LicensePlate, new Vector3(0f, 0f, 0f), "idErlbachPart88",true, new Vector3(1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_LicensePlateContent, new Vector3(0f, 0f, 0f), "idErlbachPart89",false, new Vector3(1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_Grill, new Vector3(0f, 0f, 0f), "idErlbachPart90",true, new Vector3(-1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_Refelctor_H, new Vector3(0f, 0f, 0f), "idErlbachPart91",false, new Vector3(1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_Headlight_V_Cover, new Vector3(0f, 0f, 0f), "idErlbachPart92",false, new Vector3(-1f,0f,0f)), - new Port(Definitions.PORT_ERLBACH_Headlight_V, new Vector3(0f, 0f, 0f), "idErlbachPart93",false, new Vector3(-1f,0f,0f)) + Port.Hidden(Definitions.PORT_ERLBACH_0, "idErlbachPart0", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_1, "idErlbachPart1", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_2, "idErlbachPart2", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_3, "idErlbachPart3", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_4, "idErlbachPart4", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_5, "idErlbachPart5", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_6, "idErlbachPart6", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_7, "idErlbachPart7", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_8, "idErlbachPart8", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_9, "idErlbachPart9", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_10, "idErlbachPart10", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_11, "idErlbachPart11", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_12, "idErlbachPart12", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_13, "idErlbachPart13", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_14, "idErlbachPart14", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_15, "idErlbachPart15", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_16, "idErlbachPart16", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_17, "idErlbachPart17", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_18, "idErlbachPart18", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_19, "idErlbachPart19", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_20, "idErlbachPart20", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_21, "idErlbachPart21", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_22, "idErlbachPart22", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_23, "idErlbachPart23", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_24, "idErlbachPart24", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_25, "idErlbachPart25", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_26, "idErlbachPart26", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_27, "idErlbachPart27", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_28, "idErlbachPart28", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_29, "idErlbachPart29", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_30, "idErlbachPart30", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_31, "idErlbachPart31", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_32, "idErlbachPart32", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_33, "idErlbachPart33", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_34, "idErlbachPart34", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_35, "idErlbachPart35", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_36, "idErlbachPart36", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_37, "idErlbachPart37", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_38, "idErlbachPart38", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_39, "idErlbachPart39", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_40, "idErlbachPart40", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_41, "idErlbachPart41", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_42, "idErlbachPart42", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_43, "idErlbachPart43", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_44, "idErlbachPart44", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_45, "idErlbachPart45", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_46, "idErlbachPart46", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_47, "idErlbachPart47", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_48, "idErlbachPart48", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_49, "idErlbachPart49", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_50, "idErlbachPart50", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_51, "idErlbachPart51", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_52, "idErlbachPart52", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_53, "idErlbachPart53", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_54, "idErlbachPart54", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_55, "idErlbachPart55", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_56, "idErlbachPart56", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_57, "idErlbachPart57", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_58, "idErlbachPart58", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_59, "idErlbachPart59", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_60, "idErlbachPart60", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_61, "idErlbachPart61", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_62, "idErlbachPart62", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_63, "idErlbachPart63", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_64, "idErlbachPart64", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_65, "idErlbachPart65", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_66, "idErlbachPart66", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_67, "idErlbachPart67", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_68, "idErlbachPart68", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_69, "idErlbachPart69", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_70, "idErlbachPart70", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_71, "idErlbachPart71", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_72, "idErlbachPart72", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_73, "idErlbachPart73", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_BasePlate, "idErlbachPart74", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,0f,0f)), + Port.Hidden(Definitions.PORT_ERLBACH_FrontAxe, "idErlbachPart75", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(1f,0f,0f)), + Port.Hidden(Definitions.PORT_ERLBACH_BatteriePack, "idErlbachPart76", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,0f,1f)), + Port.Hidden(Definitions.PORT_ERLBACH_77, "idErlbachPart77", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_78, "idErlbachPart78", new Vector3(0f, 0f, 0f)), + Port.Hidden(Definitions.PORT_ERLBACH_79, "idErlbachPart79", new Vector3(0f, 0f, 0f)), + Port.Choosable("Wheel Back Left", Definitions.Port_Erlbach_Wheel_LH, "idErlbachWheel_LH", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,-1f,0f)), + Port.Choosable("Wheel Front Left", Definitions.Port_Erlbach_Wheel_LV, "idErlbachWheel_LV", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,-1f,0f)), + Port.Choosable("Wheel Back Right", Definitions.PORT_ERLBACH_Wheel_RH, "idErlbachWheel_RH", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,1f,0f)), + Port.Choosable("Wheel Front Right", Definitions.PORT_ERLBACH_Wheel_RV, "idErlbachWheel_RV", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,1f,0f)), + Port.Choosable("Body", Definitions.PORT_ERLBACH_Body, "idErlbachPart84", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(0f,0f,1f)), + Port.Choosable("Bumper", Definitions.PORT_ERLBACH_Bumper, "idErlbachPart85", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(1f,0f,0f)), + Port.Choosable("Front Bumper", Definitions.PORT_ERLBACH_FrontBumper, "idErlbachPart86", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(-1f,0f,0f)), + Port.Choosable("Number", Definitions.PORT_ERLBACH_Number, "idErlbachPart87", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(1f,0f,0f)), + Port.Choosable("License Plate", Definitions.PORT_ERLBACH_LicensePlate, "idErlbachPart88", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(1f,0f,0f)), + Port.Hidden(Definitions.PORT_ERLBACH_LicensePlateContent, "idErlbachPart89", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(1f,0f,0f)), + Port.Choosable("Grill", Definitions.PORT_ERLBACH_Grill, "idErlbachPart90", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(-1f,0f,0f)), + Port.Hidden(Definitions.PORT_ERLBACH_Refelctor_H, "idErlbachPart91", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(1f,0f,0f)), + Port.Hidden(Definitions.PORT_ERLBACH_Headlight_V_Cover, "idErlbachPart92", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(-1f,0f,0f)), + Port.Hidden(Definitions.PORT_ERLBACH_Headlight_V, "idErlbachPart93", new Vector3(0f, 0f, 0f), Quaternion.identity, 1f, new Vector3(-1f,0f,0f)), } ) }; diff --git a/vr-configurator/Assets/Scripts/Models/Port.cs b/vr-configurator/Assets/Scripts/Models/Port.cs index 50ea970..926bd18 100644 --- a/vr-configurator/Assets/Scripts/Models/Port.cs +++ b/vr-configurator/Assets/Scripts/Models/Port.cs @@ -1,15 +1,25 @@ +using JetBrains.Annotations; using UnityEngine; +using UnityEngine.UI; + public class Port { - private readonly Vector3 _position; - private readonly Quaternion _rotation; - private readonly float _scale; - - public readonly string PortID; // port name + readonly Vector3 _position; + readonly Quaternion _rotation; + readonly float _scale; + readonly string _portName; + + public readonly string PortID; public readonly string DefaultId; //the default ChildModel to apply on initialization - public readonly bool Chooseable; //whether the Port will be rendered in GUI + public bool Chooseable //whether the Port will be rendered in GUI + { + get { return _portName != null; } + } public readonly Vector3 ExplodeDirection; - + public string PortName + { + get { return _portName == null ? PortID : _portName; } + } public void Apply(Transform target) { @@ -19,7 +29,7 @@ public class Port target.localScale *= _scale; Debug.Log($"applied port {target.gameObject.name} pos {target.localPosition} {target.localRotation} {target.localScale}"); } - + public void Unapply(Transform target) { Debug.Log($"Unapplying port {target.gameObject.name} pos {target.localPosition} {target.localRotation} {target.localScale}"); @@ -28,38 +38,41 @@ public class Port target.localScale /= _scale; Debug.Log($"unapplied port {target.gameObject.name} pos {target.localPosition} {target.localRotation} {target.localScale}"); } - - public Port(string name, Vector3 position, string defaultId, bool chooseable = true, Vector3 explodeDirection = default) + + Port(string name, string portID, string defaultId, Vector3 position, Quaternion rotation, float scale, Vector3 explodeDirection = default) { - PortID = name; - this._position = position; - this._rotation = Quaternion.identity; - this._scale = 1f; - this.DefaultId = defaultId; - this.Chooseable = chooseable; - this.ExplodeDirection = explodeDirection; + PortID = portID; + _portName = name; + _position = position; + _rotation = rotation; + _scale = scale; + DefaultId = defaultId; + ExplodeDirection = explodeDirection; } - - public Port(string portID, Vector3 position, Quaternion rotation, float scale, string defaultId, bool chooseable = true,Vector3 explodeDirection = default) + + public static Port Hidden(string portID, string defaultId, Vector3 position, Quaternion rotation = default, float scale = 1f, Vector3 explodeDirection = default) { - this.PortID = portID; - this._position = position; - this._rotation = rotation; - this._scale = scale; - this.DefaultId = defaultId; - this.Chooseable = chooseable; - this.ExplodeDirection = explodeDirection; + return new Port( + null, + portID, + defaultId, + position, + rotation, + scale, + explodeDirection + ); } - - public Port(string portID, Vector3 position, Quaternion rotation, string defaultId, bool chooseable = true, Vector3 explodeDirection = default) - + + public static Port Choosable(string name, string portID, string defaultId, Vector3 position, Quaternion rotation = default, float scale = 1f, Vector3 explodeDirection = default) { - this.PortID = portID; - this._position = position; - this._rotation = rotation; - this._scale = 1f; - this.DefaultId = defaultId; - this.Chooseable = chooseable; - this.ExplodeDirection = explodeDirection; + return new Port( + name, + portID, + defaultId, + position, + rotation, + scale, + explodeDirection + ); } } diff --git a/vr-configurator/Assets/Scripts/UI/PortSelector.cs b/vr-configurator/Assets/Scripts/UI/PortSelector.cs index e39b2bc..e21ce89 100644 --- a/vr-configurator/Assets/Scripts/UI/PortSelector.cs +++ b/vr-configurator/Assets/Scripts/UI/PortSelector.cs @@ -34,14 +34,13 @@ public class PortSelector : MonoBehaviour ports.Add(go); go.SetActive(true); var text = go.GetComponentInChildren(); - if (text != null) + + if (text == null) { - text.text = port.PortID; - } - else - { - Debug.LogWarning($"No TextMeshProUGUI found in {go.name}, cannot set PortID text."); + Debug.LogWarning($"No TextMeshProUGUI found in {go.name}, cannot set text."); } + Debug.LogError($"{port.PortName}"); + text.text = port.PortName; var psb = go.GetComponent(); psb.PortID = port.PortID; psb.PortIndex = index;