+ Update BrickPreviewer whenever fastInventory is updated

= Move test bricks to Server.spawnBrick system
This commit is contained in:
tetreum
2020-12-27 12:03:51 +01:00
parent 77647e1832
commit 93980df01e
7 changed files with 142 additions and 428 deletions
+21 -364
View File
@@ -152,7 +152,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 8
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &10475379
MonoBehaviour:
@@ -501,7 +501,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 11
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &177531242
PrefabInstance:
@@ -1123,6 +1123,7 @@ GameObject:
- component: {fileID: 307743678}
- component: {fileID: 307743684}
- component: {fileID: 307743683}
- component: {fileID: 307743685}
- component: {fileID: 307743682}
m_Layer: 5
m_Name: Canvas
@@ -1206,7 +1207,7 @@ RectTransform:
- {fileID: 1763654037}
- {fileID: 1528491487}
m_Father: {fileID: 0}
m_RootOrder: 10
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1337,6 +1338,19 @@ MonoBehaviour:
- {fileID: 1763654036}
- {fileID: 1528491486}
ItemTooltipPanel: {fileID: 0}
--- !u!114 &307743685
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 307743677}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8035fbd292d6b3f43b87443b7bc6edac, type: 3}
m_Name:
m_EditorClassIdentifier:
transparentShader: {fileID: 4800000, guid: b555fbb7f59b3124b833a714142cdfdb, type: 3}
--- !u!1001 &323862911
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3089,7 +3103,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 6
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &740453539
GameObject:
@@ -3167,26 +3181,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 740453539}
m_CullTransparentMesh: 0
--- !u!1 &747245050 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7490813456048214610, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
m_PrefabInstance: {fileID: 834576311}
m_PrefabAsset: {fileID: 0}
--- !u!114 &747245055
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 747245050}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2e8898a2cd8f9e94891450c465493f66, type: 3}
m_Name:
m_EditorClassIdentifier:
brickPreviewer: {fileID: 0}
transparentShader: {fileID: 4800000, guid: b555fbb7f59b3124b833a714142cdfdb, type: 3}
originalShader: {fileID: 0}
--- !u!1001 &757438765
PrefabInstance:
m_ObjectHideFlags: 0
@@ -3717,95 +3711,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 815647691}
m_CullTransparentMesh: 0
--- !u!1001 &834576311
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 85162096, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Layer
value: 2
objectReference: {fileID: 0}
- target: {fileID: 719128440, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Layer
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1857827409, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Layer
value: 2
objectReference: {fileID: 0}
- target: {fileID: 2019558165, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Layer
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalPosition.x
value: 4.44
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalPosition.y
value: 1.2149999
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalPosition.z
value: -7.6
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7490813456048214610, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Name
value: Previewer
objectReference: {fileID: 0}
- target: {fileID: 7490813456048214610, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Layer
value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
--- !u!1001 &898092778
PrefabInstance:
m_ObjectHideFlags: 0
@@ -5627,7 +5532,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 9
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1516315188
GameObject:
@@ -6138,7 +6043,7 @@ Transform:
m_LocalScale: {x: 10, y: 1, z: 10}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 7
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &1663819171
PrefabInstance:
@@ -6896,7 +6801,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4573967098094624498, guid: ca86112991f492f448b9242dfb373cbd, type: 3}
propertyPath: m_RootOrder
value: 5
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4573967098094624498, guid: ca86112991f492f448b9242dfb373cbd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -8133,124 +8038,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 516fdbd7216dafe4cb623cfcf44fa55c, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &2455573320203540460
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalPosition.x
value: 2.3747635
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalPosition.y
value: 0.372
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalPosition.z
value: -3.9810429
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1314681364751333313, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2973457882279700755, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_Name
value: GridStud 1x1
objectReference: {fileID: 0}
- target: {fileID: 7820642324698506490, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
propertyPath: m_Name
value: 3024
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2afc2f2af1b4e904ab398c38b1182927, type: 3}
--- !u!1001 &2936862324658198632
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 3332050934356876240, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_Name
value: 22885
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalPosition.x
value: -1.03
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalPosition.y
value: 0.15
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalPosition.z
value: -4.299
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5804011639791913195, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f1da56412980c6441a06f1d74f66ff04, type: 3}
--- !u!1001 &6156095317045317017
PrefabInstance:
m_ObjectHideFlags: 0
@@ -8348,133 +8135,3 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 328cc6a77e4e8bc49a28bd1faf5de7bc, type: 3}
--- !u!1001 &6429428766470026045
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1504025991756706334, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_Name
value: 3022
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalPosition.x
value: 0.11080116
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalPosition.y
value: 0.355
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalPosition.z
value: -4.368471
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7667783904434250021, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 9d74b7c59f6de3f4db1b52e1753132e6, type: 3}
--- !u!1001 &6481765548925454844
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 85162096, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Name
value: Stud 2
objectReference: {fileID: 0}
- target: {fileID: 719128440, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Name
value: GridStud 2x2
objectReference: {fileID: 0}
- target: {fileID: 1857827409, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Name
value: Stud 3
objectReference: {fileID: 0}
- target: {fileID: 2019558165, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Name
value: Stud 1
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalPosition.x
value: 1.4686012
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalPosition.z
value: -4.383173
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_RootOrder
value: 3
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1820184703465308521, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7490813456048214610, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
propertyPath: m_Name
value: 3003
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 54b9b27c86ca2c141adc4a5b08d381c9, type: 3}
+48 -33
View File
@@ -4,8 +4,8 @@ public class BrickCollisionDetector : MonoBehaviour
{
public static BrickCollisionDetector Instance;
public GameObject brickPreviewer;
public Shader transparentShader;
[HideInInspector]
public int currentBrickType;
private Material m;
public Shader originalShader;
@@ -17,14 +17,36 @@ public class BrickCollisionDetector : MonoBehaviour
private void Awake() {
Instance = this;
}
private void Start() {
setupPreviewer();
gameObject.name = "Previewer";
// ignore raycasts
int ignoreRayCastLayer = (int)Game.Layers.IgnoreRaycast;
gameObject.layer = ignoreRayCastLayer;
foreach (Transform trans in gameObject.GetComponentsInChildren<Transform>()) {
trans.gameObject.layer = ignoreRayCastLayer;
}
m = GetComponent<Renderer>().material;
originalShader = m.shader;
m.shader = Game.Instance.transparentShader;
Collider[] colliders = GetComponents<Collider>();
foreach (Collider collider in colliders) {
collider.isTrigger = true;
}
Rigidbody rigid = gameObject.AddComponent<Rigidbody>();
rigid.isKinematic = true;
setVisible(false);
}
private void Update() {
if (isColliding) {
if (PlayerPanel.Instance.selectedItem == null ||
PlayerPanel.Instance.selectedItem.item.type != Item.Type.Brick ||
isColliding) {
return;
}
@@ -35,10 +57,16 @@ public class BrickCollisionDetector : MonoBehaviour
} else {
rot = Input.GetAxis("Mouse ScrollWheel") > 0f ? Vector3.forward : Vector3.back;
}
brickPreviewer.transform.RotateAround(currentStud, rot, 90);
transform.RotateAround(currentStud, rot, 90);
}
if (Input.GetMouseButtonDown(1)) {
Server.Instance.spawnBrick(Player.Instance.selectedItem.type, brickPreviewer.transform.position, brickPreviewer.transform.rotation);
Server.Instance.spawnBrick(PlayerPanel.Instance.selectedItem.item.id, transform.position, transform.rotation);
Player.Instance.removeItem(new UserItem() {
id = PlayerPanel.Instance.selectedItem.id,
health = PlayerPanel.Instance.selectedItem.health,
quantity = 1
});
resetVars();
}
@@ -106,6 +134,11 @@ public class BrickCollisionDetector : MonoBehaviour
}
public void lookingAtStud(RaycastHit hit) {
// player is not holding a brick
if (PlayerPanel.Instance.selectedItem == null || PlayerPanel.Instance.selectedItem.item.type != Item.Type.Brick) {
return;
}
var stud = hitPointToStud(hit);
if (hit.transform == latestStudGrid && stud == latestStud) {
@@ -113,6 +146,7 @@ public class BrickCollisionDetector : MonoBehaviour
}
GameObject brickObj = hit.collider.transform.parent.gameObject;
BrickModel selectedBrickModel = Server.brickModels[PlayerPanel.Instance.selectedItem.item.id];
latestStudGrid = hit.transform;
latestStud = stud;
@@ -122,7 +156,7 @@ public class BrickCollisionDetector : MonoBehaviour
currentStud.y -= (Server.studSize / 2);
if (!Server.bricks.ContainsKey(brickObj.name)) {
Debug.LogError("Brick not found in server list");
Debug.LogError("Brick not found in server list " + brickObj.name);
return;
}
Brick brick = Server.bricks[brickObj.name];
@@ -130,8 +164,8 @@ public class BrickCollisionDetector : MonoBehaviour
Vector3 pos;
// same model with all studs available, just put it over
if (brick.type == Player.Instance.selectedItem.type ||
brick.model.studs.Count == Player.Instance.selectedItem.studs.Count) {
if (brick.type == selectedBrickModel.type ||
brick.model.studs.Count == selectedBrickModel.studs.Count) {
pos = brickObj.transform.position;
pos.y += brick.model.heightInPlates * Server.plateHeight;
pos.y += 0.001f; // to make sure they don't collide, so we don't get a false isColliding=true
@@ -156,36 +190,17 @@ public class BrickCollisionDetector : MonoBehaviour
move(pos, rotation);
}
void setupPreviewer() {
brickPreviewer = GameObject.Find("Previewer");
Player.Instance.selectedItem = Server.brickModels[3003];
m = brickPreviewer.GetComponent<Renderer>().material;
originalShader = m.shader;
m.shader = transparentShader;
Collider[] colliders = brickPreviewer.GetComponents<Collider>();
foreach (Collider collider in colliders) {
collider.isTrigger = true;
}
Rigidbody rigid = brickPreviewer.AddComponent<Rigidbody>();
rigid.isKinematic = true;
setVisible(false);
}
public void move(Vector3 pos, Quaternion rotation) {
if (lastPos == pos) {
return;
}
brickPreviewer.transform.position = pos;
brickPreviewer.transform.rotation = rotation;
transform.position = pos;
transform.rotation = rotation;
setVisible(true);
lastPos = pos;
}
private void setVisible (bool isVisible) {
brickPreviewer.GetComponent<MeshRenderer>().enabled = isVisible;
GetComponent<MeshRenderer>().enabled = isVisible;
}
}
+16
View File
@@ -0,0 +1,16 @@
using UnityEngine;
public class Game : MonoBehaviour
{
public static Game Instance;
public Shader transparentShader;
public enum Layers
{
IgnoreRaycast = 2
}
private void Awake() {
Instance = this;
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8035fbd292d6b3f43b87443b7bc6edac
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+3 -2
View File
@@ -6,7 +6,6 @@ using UnityEngine;
public class Player : MonoBehaviour
{
public static Player Instance;
public BrickModel selectedItem;
private float rayLength = 5f;
private GameObject lookedBrick;
@@ -49,7 +48,9 @@ public class Player : MonoBehaviour
RaycastHit hit;
if (Physics.Raycast(ray, out hit, rayLength)) {
if (hit.collider.name.StartsWith("GridStud")) {
BrickCollisionDetector.Instance.lookingAtStud(hit);
if (BrickCollisionDetector.Instance != null) {
BrickCollisionDetector.Instance.lookingAtStud(hit);
}
lookedBrick = hit.transform.parent.gameObject;
} else if (hit.transform.tag == "Block") {
lookedBrick = hit.transform.gameObject;
+10 -29
View File
@@ -37,12 +37,15 @@ public class Server : MonoBehaviour
void Awake() {
Instance = this;
setupBrickModels();
setupTest();
setupBrickModels();
processPrefabs();
}
private void Start() {
setupTest();
}
void processPrefabs() {
foreach (var prefab in prefabs) {
brickPrefabs.Add(prefab.name, prefab);
@@ -50,33 +53,11 @@ public class Server : MonoBehaviour
}
void setupTest () {
Brick brick = new Brick();
brick.id = "3003";
brick.type = 3003;
brick.gameObject = GameObject.Find(brick.id);
bricks.Add(brick.id, brick);
brick = new Brick();
brick.id = "3022";
brick.type = 3022;
brick.gameObject = GameObject.Find(brick.id);
bricks.Add(brick.id, brick);
brick = new Brick();
brick.id = "3024";
brick.type = 3024;
brick.gameObject = GameObject.Find(brick.id);
bricks.Add(brick.id, brick);
brick = new Brick();
brick.id = "22885";
brick.type = 22885;
brick.gameObject = GameObject.Find(brick.id);
bricks.Add(brick.id, brick);
spawnBrick(3003, new Vector3(3.327f, 0, -4.196f), Quaternion.identity);
spawnBrick(3003, new Vector3(1.468601f, 0, -4.383173f), Quaternion.identity);
spawnBrick(3024, new Vector3(2.374763f, 0.372f, -3.981043f), Quaternion.identity);
spawnBrick(3022, new Vector3(0.1108012f, 0.355f, -4.368471f), Quaternion.identity);
spawnBrick(22885, new Vector3(-1.03f, 0.15f, -4.299f), Quaternion.identity);
}
public void spawnBrick (int model, Vector3 position, Quaternion rotation) {
+33
View File
@@ -5,9 +5,22 @@ using UnityEngine.UI;
public class PlayerPanel : MonoBehaviour
{
public static PlayerPanel Instance;
public UserItem selectedItem {
get {
var slots = Player.Instance.getInventoryBySlot();
if (!slots.ContainsKey(selectedSlot)) {
return null;
}
return slots[selectedSlot];
}
}
public InventorySlot[] fastInventorySlots;
private int selectedSlot = 28; // by default the first slot from fastInventory starting from the left
void Awake()
{
Instance = this;
@@ -28,6 +41,7 @@ public class PlayerPanel : MonoBehaviour
if (Player.Instance == null) {
return;
}
Dictionary<int, UserItem> inventory = Player.Instance.getInventoryBySlot();
InventorySlot slot;
int slotId;
@@ -44,6 +58,25 @@ public class PlayerPanel : MonoBehaviour
slot.GetComponent<RawImage>().texture = inventory[slotId].item.icon;
slot.quantity.text = inventory[slotId].quantity.ToString();
}
// update brick previewer
if (selectedItem != null && selectedItem.item.type == Item.Type.Brick) {
updateBrickPreviewer();
}
}
public void updateBrickPreviewer() {
BrickModel selectedBrickModel = Server.brickModels[selectedItem.item.id];
if (BrickCollisionDetector.Instance != null) {
if (BrickCollisionDetector.Instance.currentBrickType == selectedBrickModel.type) {
return;
}
Destroy(BrickCollisionDetector.Instance.gameObject);
}
GameObject brickPreviewer = Instantiate(Server.brickPrefabs[selectedBrickModel.type.ToString()]);
brickPreviewer.AddComponent<BrickCollisionDetector>();
}
void switchSelectedItem () {