Skip to content

Commit 0aad3c1

Browse files
committed
re-refactor
1 parent db6ba3d commit 0aad3c1

File tree

6 files changed

+36
-44
lines changed

6 files changed

+36
-44
lines changed

Autoload/Slabset.gd

+17-28
Original file line numberDiff line numberDiff line change
@@ -31,28 +31,19 @@ func load_slabset():
3131
dat_buffer.seek(2)
3232

3333
var totalSlabs = 42 + 16
34-
dat.resize(totalSlabs)
35-
for slabID in totalSlabs:
36-
dat[slabID] = []
37-
dat[slabID].resize(28) # Ensure each slab has space for 28 variations
38-
for variation in 28:
39-
dat[slabID][variation] = []
40-
dat[slabID][variation].resize(9)
41-
if slabID < 42 or variation < 8: # Only fill the data for the first 42 slabs and the first 8 variations of the next 16 slabs
42-
for subtile in 9:
43-
var value = 65536 - dat_buffer.get_u16()
44-
dat[slabID][variation][subtile] = value
45-
else:
46-
for subtile in 9:
47-
dat[slabID][variation][subtile] = 0
48-
49-
blank_dat_entry = []
50-
blank_dat_entry.resize(28)
51-
for variation in 28:
52-
blank_dat_entry[variation] = []
53-
blank_dat_entry[variation].resize(9)
54-
for subtile in 9:
55-
blank_dat_entry[variation][subtile] = 0
34+
dat = []
35+
dat.resize(28*totalSlabs) # Ensure each slab has space for 28 variations
36+
for variation in dat.size():
37+
dat[variation] = []
38+
dat[variation].resize(9)
39+
if variation < 42*28 or (variation % 28) < 8: # Handle the longslabs and the shortslabs
40+
#if variation < 42*28 or (variation >= 42*28 and (variation % 28) < 8):
41+
for subtile in 9:
42+
var value = 65536 - dat_buffer.get_u16()
43+
dat[variation][subtile] = value
44+
else: # Fill the extra space at the end of the shortslabs
45+
for subtile in 9:
46+
dat[variation][subtile] = 0
5647

5748
print('Created Slabset : '+str(OS.get_ticks_msec()-CODETIME_START)+'ms')
5849

@@ -107,13 +98,11 @@ func load_slabset_things():
10798
print('slabtng_object_entry_asset : '+str(OS.get_ticks_msec()-CODETIME_START)+'ms')
10899

109100

110-
111-
112-
func fetch_column_index(slabID, variation, subtile):
113-
if dat.size() > slabID:
114-
return dat[slabID][variation][subtile]
101+
func fetch_column_index(variation, subtile):
102+
if variation < dat.size():
103+
return dat[variation][subtile]
115104
else:
116-
return blank_dat_entry[variation][subtile]
105+
return 0
117106

118107

119108
#func create_cfg_slabset(filePath): #"res://slabset.cfg"

Scenes/PickSlabWindow.gd

+8-4
Original file line numberDiff line numberDiff line change
@@ -85,20 +85,24 @@ func add_slabs():
8585
if putIntoTab != Slabs.TAB_NONE:
8686
var scene = load("res://Scenes/SlabDisplay.tscn")
8787
var id = scene.instance()
88-
var slabVariation = 0
88+
var slabVariation
8989

9090
var columnArray = [0,0,0, 0,0,0, 0,0,0]
9191
match slabID:
9292
Slabs.PORTAL:
93+
slabVariation = (Slabs.PORTAL*28) + 8
9394
for i in 9:
94-
columnArray[i] = Slabset.fetch_column_index(slabID, 8, i)
95+
columnArray[i] = Slabset.fetch_column_index(slabVariation, i)
9596
Slabs.WALL_AUTOMATIC:
97+
slabVariation = Slabs.WALL_WITH_BANNER*28
9698
for i in 9:
97-
columnArray[i] = Slabset.fetch_column_index(Slabs.WALL_WITH_BANNER, slabVariation, i)
99+
columnArray[i] = Slabset.fetch_column_index(slabVariation, i)
98100
_:
99101
if slabID < 1000:
102+
# Normal slab
103+
slabVariation = slabID*28
100104
for i in 9:
101-
columnArray[i] = Slabset.fetch_column_index(slabID, slabVariation, i)
105+
columnArray[i] = Slabset.fetch_column_index(slabVariation, i)
102106
else:
103107
# Custom slab
104108
pass

Scenes/PlaceThingWithSlab.gd

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func determine_if_middle(slabID, ownership, bitmask, surrID, surrOwner):
8484
return false
8585

8686
func get_obj_idx(newSlabVar, subtile):
87-
if newSlabVar >= 1304: return -1 # Out of bounds, causes crash
87+
if newSlabVar >= Slabset.tngIndex.size(): return -1 # Out of bounds, causes crash
8888

8989
var idx = Slabset.tngIndex[newSlabVar]
9090
if idx >= Slabset.numberOfThings: return -1

Scenes/SlabPlacement.gd

+2-4
Original file line numberDiff line numberDiff line change
@@ -752,10 +752,8 @@ func dkdat_position_to_column_data(clmIndexGroup):
752752
#print(clmIndexGroup)
753753

754754
for subtile in 9:
755-
var index = clmIndexGroup[subtile] / 9
756-
var slabID = index / 28
757-
var variation = index % 28
758-
var dkClmIndex = Slabset.fetch_column_index(slabID, variation, subtile)
755+
var variation = clmIndexGroup[subtile] / 9
756+
var dkClmIndex = Slabset.fetch_column_index(variation, subtile)
759757

760758
# Get the cube data from oDkClm
761759
slabCubes.append(Columnset.cubes[dkClmIndex])

Scenes/SlabsetWindow.gd

+4-5
Original file line numberDiff line numberDiff line change
@@ -154,20 +154,19 @@ func _on_VariationNumberSpinBox_value_changed(value):
154154
update_columns_ui()
155155

156156
func update_columns_ui():
157-
158-
var variation = int(oVariationNumberSpinBox.value)
159157
var slabID = int(oSlabsetIDSpinBox.value)
158+
var variation = (slabID * 28) + int(oVariationNumberSpinBox.value)
160159

161160
for subtile in columnSettersArray.size():
162161
var spinbox = columnSettersArray[subtile].get_node("CustomSpinBox")
163162
spinbox.disconnect("value_changed",self,"_on_Slabset3x3ColumnSpinBox_value_changed")
164-
var clmIndex = Slabset.fetch_column_index(slabID, variation, subtile)
163+
var clmIndex = Slabset.fetch_column_index(variation, subtile)
165164
spinbox.value = clmIndex
166165
spinbox.connect("value_changed",self,"_on_Slabset3x3ColumnSpinBox_value_changed")
167166

168167
func _on_Slabset3x3ColumnSpinBox_value_changed(value):
169-
var variation = int(oVariationNumberSpinBox.value)
170168
var slabID = int(oSlabsetIDSpinBox.value)
169+
var variation = (slabID * 28) + int(oVariationNumberSpinBox.value)
171170

172171
for y in 3:
173172
for x in 3:
@@ -176,7 +175,7 @@ func _on_Slabset3x3ColumnSpinBox_value_changed(value):
176175
var spinbox = id.get_node("CustomSpinBox")
177176
var clmIndex = spinbox.value
178177

179-
Slabset.dat[slabID][variation][i] = clmIndex
178+
Slabset.dat[variation][i] = clmIndex
180179
#oSlabPalette.slabPal[variation][i] = clmIndex # This may not be working
181180

182181

Scenes/VoxelViewer.gd

+4-2
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,12 @@ func do_all():
128128
oAllVoxelObjects.translation.x = -0.5
129129
var CODETIME_START = OS.get_ticks_msec()
130130

131+
132+
131133
if displayingType == DK_SLABSET: # This is not for custom slab, this is for dynamic slabs
132134
var slabID = oSlabsetIDSpinBox.value
133135
var separation = 0
134-
136+
var variationStart = slabID * 28
135137
for variation in 28:
136138
var surrClmIndex = [-1,-1,-1,-1]
137139
for ySubtile in 3:
@@ -141,7 +143,7 @@ func do_all():
141143
var x = (variation*3) + xSubtile + separation
142144
var z = (variation*3) + ySubtile + separation
143145

144-
var clmIndex = Slabset.fetch_column_index(slabID, variation, subtile)
146+
var clmIndex = Slabset.fetch_column_index(variationStart+variation, subtile)
145147

146148
oVoxelGen.column_gen(genArray, x-1.5, z-1.5, clmIndex, surrClmIndex, true, Columnset)
147149

0 commit comments

Comments
 (0)