private void SetupPulleySupport(AssetBundle embeddedResourceBundle) { GameObject embeddedPrefab = embeddedResourceBundle.LoadAsset <GameObject>(PulleySupportName); KitBashObject pulleySupportKitBash = KitBashManager.Instance.KitBash(embeddedPrefab, new KitBashConfig { KitBashSources = new List <KitBashSourceConfig> { new KitBashSourceConfig { name = "New", sourcePrefab = "wood_wall_roof_top_45", sourcePath = "New", position = new Vector3(0f, 0f, -1f), rotation = Quaternion.Euler(90, 0, 0) }, new KitBashSourceConfig { name = "pivot_gear", targetParentPath = "New/pivot", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.007_ArtisanTable.019", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-1.904f, 1.365f, -0.2620001f), rotation = Quaternion.Euler(180f, 180f, 98.78699f), scale = new Vector3(1.4f, 1.4f, 1f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "support_left", targetParentPath = "New/pivot", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.011_SpinningWheel_Broken.027", materialPath = "New/High/SpinningWheel", position = new Vector3(-0.2338867f, -0.913f, 0.72f), rotation = Quaternion.Euler(283.043f, -168.623f, 205.604f), scale = Vector3.one * -1 }, new KitBashSourceConfig { name = "support_right", targetParentPath = "New/pivot", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.011_SpinningWheel_Broken.027", materialPath = "New/High/SpinningWheel", position = new Vector3(0.223f, -0.913f, 0.72f), rotation = Quaternion.Euler(-283.095f, -11.332f, 25.65f) }, new KitBashSourceConfig { name = "wheel_left", targetParentPath = "New/pivot/pivot_left", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.002_SpinningWheel_Broken.018", materialPath = "New/High/SpinningWheel", position = new Vector3(0.06511331f, 0.8729141f, -1.120428f), rotation = Quaternion.Euler(269.96f, 180, 0) }, new KitBashSourceConfig { name = "wheel_right", targetParentPath = "New/pivot/pivot_right", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.002_SpinningWheel_Broken.018", materialPath = "New/High/SpinningWheel", position = new Vector3(-0.07488656f, -0.8700893f, -1.121964f), rotation = Quaternion.Euler(-270.04f, 0, 0) }, } }); pulleySupportKitBash.KitBashApplied += () => { GameObject raft = PrefabManager.Instance.GetPrefab("Raft"); LineRenderer sourceLineRenderer = raft.transform.Find("ship/visual/ropes/left").GetComponent <LineRenderer>(); foreach (LineRenderer lineRenderer in pulleySupportKitBash.Prefab.GetComponentsInChildren <LineRenderer>()) { lineRenderer.materials = sourceLineRenderer.materials; lineRenderer.startWidth = sourceLineRenderer.startWidth; lineRenderer.endWidth = sourceLineRenderer.endWidth; lineRenderer.widthCurve = sourceLineRenderer.widthCurve; lineRenderer.textureMode = sourceLineRenderer.textureMode; lineRenderer.shadowCastingMode = sourceLineRenderer.shadowCastingMode; lineRenderer.alignment = sourceLineRenderer.alignment; lineRenderer.numCapVertices = sourceLineRenderer.numCapVertices; lineRenderer.numCornerVertices = sourceLineRenderer.numCornerVertices; lineRenderer.widthMultiplier = sourceLineRenderer.widthMultiplier; lineRenderer.generateLightingData = sourceLineRenderer.generateLightingData; lineRenderer.material = sourceLineRenderer.material; lineRenderer.rayTracingMode = sourceLineRenderer.rayTracingMode; lineRenderer.realtimeLightmapIndex = sourceLineRenderer.realtimeLightmapIndex; lineRenderer.realtimeLightmapScaleOffset = sourceLineRenderer.realtimeLightmapScaleOffset; } }; PieceManager.Instance.AddPiece(new CustomPiece(pulleySupportKitBash.Prefab, new PieceConfig() { PieceTable = "Hammer" })); pulleySupportKitBash.Prefab.AddComponent <PulleySupport>(); }
private void SetupPulleyBase(AssetBundle embeddedResourceBundle) { GameObject embeddedPrefab = embeddedResourceBundle.LoadAsset <GameObject>(PulleyBaseName); KitBashObject pulleyBaseKitBash = KitBashManager.Instance.KitBash(embeddedPrefab, new KitBashConfig { KitBashSources = new List <KitBashSourceConfig> { new KitBashSourceConfig { name = "_Combined Mesh [high]", targetParentPath = "New", sourcePrefab = "wood_floor", sourcePath = "New/_Combined Mesh [high]", position = new Vector3(0f, -52.55f, 1f), rotation = Quaternion.Euler(0, 0, 0) }, new KitBashSourceConfig { name = "wheel_left", targetParentPath = "New/pivot_left", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.002_SpinningWheel_Broken.018", materialPath = "New/High/SpinningWheel", position = new Vector3(0.06511331f, -1.13f, -0.86f), rotation = Quaternion.Euler(0, 180, 0) }, new KitBashSourceConfig { name = "wheel_right", targetParentPath = "New/pivot_right", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.002_SpinningWheel_Broken.018", materialPath = "New/High/SpinningWheel", position = new Vector3(-0.07488668f, -1.12f, 0.86f), rotation = Quaternion.Euler(0, 0, 0) }, new KitBashSourceConfig { name = "support_left", targetParentPath = "New", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.011_SpinningWheel_Broken.027", materialPath = "New/High/SpinningWheel", position = new Vector3(-0.25f, 0.5580001f, 0.9489999f), rotation = Quaternion.Euler(11.676f, -177.394f, 217.222f), scale = Vector3.one * -1 }, new KitBashSourceConfig { name = "support_left_bar", targetParentPath = "New", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.011_SpinningWheel_Broken.027", materialPath = "New/High/SpinningWheel", position = new Vector3(0.403f, 0.211f, 0.274f), rotation = Quaternion.Euler(-260.316f, -195.346f, 201.557f), scale = Vector3.one * 0.6f }, new KitBashSourceConfig { name = "support_right", targetParentPath = "New", sourcePrefab = "piece_spinningwheel", sourcePath = "SpinningWheel_Destruction/SpinningWheel_Destruction.011_SpinningWheel_Broken.027", materialPath = "New/High/SpinningWheel", position = new Vector3(0.25f, 0.5699999f, 0.9389999f), rotation = Quaternion.Euler(-11.728f, -2.606f, 37.225f) }, new KitBashSourceConfig { name = "seat", targetParentPath = "New", sourcePrefab = "piece_chair", sourcePath = "New", position = new Vector3(0.7f, 0f, 0.656f), scale = new Vector3(0.74871f, 0.61419f, 0.63284f) }, new KitBashSourceConfig { name = "crank_gear", targetParentPath = "New/crank", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.007_ArtisanTable.019", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.4602f, -1.088331f, 0.7863638f), rotation = Quaternion.Euler(0f, 90f, 8.787001f), scale = new Vector3(0.8f, 0.8f, 1f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "central_gear", targetParentPath = "New/pivot_right", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.006_ArtisanTable.018", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.28f, -0.894f, 0.585f), rotation = Quaternion.Euler(0f, 90f, 0f), scale = new Vector3(0.8f, 0.8f, 1f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "sun_gear", targetParentPath = "New", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.006_ArtisanTable.018", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.847f, -0.111f, 0.621f), rotation = Quaternion.Euler(0f, 90f, 0f), scale = new Vector3(0.8f, 0.8f, 1.7f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "planet_gear_1", targetParentPath = "New/pivot_right/planet_1", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.006_ArtisanTable.018", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.847f, -0.7618001f, 0.752f), rotation = Quaternion.Euler(0f, 90f, -11.669f), scale = new Vector3(0.8f, 0.8f, 1.7f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "planet_gear_2", targetParentPath = "New/pivot_right/planet_2", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.006_ArtisanTable.018", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.847f, -0.7618001f, 0.752f), rotation = Quaternion.Euler(0f, 90f, -11.669f), scale = new Vector3(0.8f, 0.8f, 1.7f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "planet_gear_3", targetParentPath = "New/pivot_right/planet_3", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.006_ArtisanTable.018", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.847f, -0.7618001f, 0.752f), rotation = Quaternion.Euler(0f, 90f, -11.669f), scale = new Vector3(0.8f, 0.8f, 1.7f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "planet_gear_4", targetParentPath = "New/pivot_right/planet_4", sourcePrefab = "piece_artisanstation", sourcePath = "ArtisanTable_Destruction/ArtisanTable_Destruction.006_ArtisanTable.018", materialPath = "New/high/ArtisanTable.004", position = new Vector3(-0.847f, -0.7618001f, 0.752f), rotation = Quaternion.Euler(0f, 90f, -11.669f), scale = new Vector3(0.8f, 0.8f, 1.7f), materialRemap = new int[] { 1, 0 } }, new KitBashSourceConfig { name = "handhold", targetParentPath = "New/crank", sourcePrefab = "piece_stonecutter", sourcePath = "Stonecutterbench_destruction/Stonecutter_destruction.001_Stonecutter_destruction.001_Workbench.001", materialPrefab = "piece_spinningwheel", materialPath = "New/High/SpinningWheel", position = new Vector3(0.04099999f, -0.1544f, -0.1712f), rotation = Quaternion.Euler(0f, 5.765f, -89.982f), scale = Vector3.one * 0.1f } } }); PieceManager.Instance.AddPiece(new CustomPiece(pulleyBaseKitBash.Prefab, new PieceConfig() { PieceTable = "Hammer" })); pulleyBaseKitBash.Prefab.AddComponent <Pulley>(); }
public PlanTotemPrefab(AssetBundle planbuildBundle) { planTotemKitBash = KitBashManager.Instance.KitBash(planbuildBundle.LoadAsset <GameObject>("piece_plan_totem"), new KitBashConfig { FixReferences = true, KitBashSources = new List <KitBashSourceConfig> { new KitBashSourceConfig { name = "totem", targetParentPath = "new", sourcePrefab = "guard_stone", sourcePath = "new/default", scale = Vector3.one * 0.6f }, new KitBashSourceConfig { name = "chest", targetParentPath = "new", sourcePrefab = "piece_chest_private", sourcePath = "New", position = new Vector3(0, 0, 0.591f), scale = Vector3.one * 0.9f, rotation = Quaternion.Euler(180f, 180f, 180f) }, new KitBashSourceConfig { name = "hammer", targetParentPath = "new/pivot", sourcePrefab = "Hammer", sourcePath = "attach/hammer", position = new Vector3(0.07f, 1.9f, 0f), rotation = Quaternion.Euler(0f, 0f, 20f), scale = Vector3.one * 0.3f } } }); planTotemKitBash.KitBashApplied += () => { GameObject connectionPrefab = PrefabManager.Instance.GetPrefab("forge_ext1").GetComponent <StationExtension>().m_connectionPrefab; GameObject planBuildConnectionPrefab = PrefabManager.Instance.CreateClonedPrefab("vfx_PlanBuildConnection", connectionPrefab); GameObject planTotemPrefab = planTotemKitBash.Prefab; ShaderHelper.UpdateTextures(planTotemPrefab.transform.Find("new/pivot/hammer").gameObject, ShaderHelper.ShaderState.Supported); PlanTotem planTotem = planTotemPrefab.AddComponent <PlanTotem>(); PlanTotem.m_connectionPrefab = planBuildConnectionPrefab; planTotem.m_open = planTotemPrefab.transform.Find("new/chest/privatechesttop_open").gameObject; planTotem.m_closed = planTotemPrefab.transform.Find("new/chest/privatechesttop_closed").gameObject; planTotem.m_height = 2; planTotem.m_width = 6; MeshRenderer meshRenderer = planTotemPrefab.transform.Find("new/totem").GetComponent <MeshRenderer>(); meshRenderer.materials .Where(material => material.name.StartsWith("Guardstone_OdenGlow_mat")) .First() .SetColor("_EmissionColor", glowColorConfig.Value); CircleProjector circleProjector = planTotemPrefab.GetComponentInChildren <CircleProjector>(includeInactive: true); circleProjector.m_prefab = PrefabManager.Instance.GetPrefab("guard_stone").GetComponentInChildren <CircleProjector>().m_prefab; circleProjector.m_radius = PlanTotem.radiusConfig.Value; }; CustomPiece planTotemPiece = new CustomPiece(planTotemKitBash.Prefab, new PieceConfig() { PieceTable = "Hammer", Requirements = new RequirementConfig[] { new RequirementConfig { Item = "FineWood", Amount = 5, Recover = true }, new RequirementConfig { Item = "GreydwarfEye", Amount = 5, Recover = true }, new RequirementConfig { Item = "SurtlingCore", Recover = true } } }); PieceManager.Instance.AddPiece(planTotemPiece); }