extends Node2D var PC = load('PC.tscn') var PCs = [] var worldmap_blocks = [] var sfx_buttons = [] var block_labels = [] func bin2str(bin: int) -> String: var string := '' for i in 8: if i == 4: string += ' ' if ((bin >> 7-i) & 0x01) != 0: string += '1' else: string += '0' return string func _ready(): Engine.set_target_fps(60) var strips = len(SpriteLoader.strip_textures) # * 4 / 5 #var strip_divide = strips * 2 / 5 var strip_divide = strips * 1 / 5 for i in strips: PCs.append(PC.instance()) #PCs[-1].set_position(Vector2((i%strip_divide)*16, (i/strip_divide)*24*11)) PCs[-1].set_position(Vector2((i%strip_divide)*24, (i/strip_divide)*32)) PCs[-1].material.set_shader_param('palette', SpriteLoader.character_battle_sprite_palette_textures[i]) PCs[-1].texture = SpriteLoader.strip_textures[i] add_child(PCs[-1]) # PCs.append(PC.instance()) # PCs[-1].set_position(Vector2(0, 2*24*11)) # PCs[-1].material.set_shader_param('palette', SpriteLoader.character_battle_sprite_palette_textures[45]) # PCs[-1].texture = SpriteLoader.weapon_textures['Fist'] # add_child(PCs[-1]) for i in 3: worldmap_blocks.append(TextureRect.new()) worldmap_blocks[-1].texture = SpriteLoader.worldmap_block_atlas_textures[i] # worldmap_blocks[-1].texture = SpriteLoader.worldmap_tile_atlas_textures[i] worldmap_blocks[-1].material = SpriteLoader.shader_material.duplicate() worldmap_blocks[-1].material.set_shader_param('palette', SpriteLoader.worldmap_palette_textures[i]) worldmap_blocks[-1].rect_scale *= 3 worldmap_blocks[-1].rect_position.x = i*256*3 worldmap_blocks[-1].rect_position.y = 280 add_child(worldmap_blocks[-1]) var x0 = i*256*3 + 4 var y0 = 280 + 12 for block in 0xC0: var label = Label.new() var p = MapLoader.worldmap_block_properties[i][block] label.text = '%s\n%s\n%s' % [bin2str(p&0xff), bin2str((p>>8)&0xff), bin2str(p>>16)] label.add_color_override('font_color_shadow', Color.black) label.add_constant_override('shadow_as_outline', true) label.rect_position.x = x0 + (block%16) * 48 label.rect_position.y = y0 + (block/16) * 48 label.rect_scale /= 2 add_child(label) block_labels.append(label) _create_sfx_buttons() $BitSelector.connect('value_changed', self, '_update_block_mask') func _update_block_mask(value: int): var mask = 0xFFFFFF if (value<0) else (1<>8)&0xff), bin2str(mask>>16)] for i in block_labels.size(): var p = MapLoader.worldmap_block_properties[i/0xC0][i%0xC0] if (p & mask) > 0: block_labels[i].add_color_override('font_color', Color.white) else: block_labels[i].add_color_override('font_color', Color.black) func _create_sfx_buttons(): var disable_btn := !SoundLoader.has_loaded_audio_samples if disable_btn: SoundLoader.connect('audio_samples_loaded', self, '_enable_sfx_buttons') for i in SoundLoader.INST_NUM: var btn = Button.new() btn.text = 'Play #%02X' % i btn.align = Button.ALIGN_CENTER btn.set_position(Vector2((i%8)*36, 200 + (i/8)*12)) btn.set_scale(Vector2(0.5, 0.5)) add_child(btn) btn.connect('pressed', SoundLoader, 'play_sample', [i]) sfx_buttons.append(btn) btn.disabled = disable_btn for i in SoundLoader.SFX_NUM: var btn = Button.new() btn.text = 'SFX #%02X' % i btn.align = Button.ALIGN_CENTER btn.set_position(Vector2((i%8)*36, 264 + (i/8)*12)) btn.set_scale(Vector2(0.5, 0.5)) add_child(btn) btn.connect('pressed', SoundLoader, 'play_sfx', [i]) sfx_buttons.append(btn) btn.disabled = disable_btn func _enable_sfx_buttons(): for btn in sfx_buttons: btn.disabled = false # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): # update() # pass func _on_OptionButton_item_selected(ID): for pc in PCs: pc.animation = ID