Import multiple resources from one file?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By darkshadow

Hi, so I’ve got a tileset in a custom format I’m trying to import. It’s more than just a texture it also has a tile type enum and a color value for a minimap.

How do I import both the custom resource and the texture?

The import script in the EditorImportPlugin:

func import(source_file, save_path, options, r_platform_variants, r_gen_files):
	var file = File.new()
	var err = file.open(source_file, File.READ)
	if err != OK:
		return err
	var colors: PoolColorArray = []
	var tile_types: PoolIntArray = []
	var tileset_type: int
	var image = Image.new()
	var header = file.get_buffer(29)
	assert(file.get_8() == 26, "Invalid magic number for tile")
	var tile_count: int = file.get_32()
	tileset_type = file.get_32()
	var width: int = 64 * min(tile_count, 16)
	var height: int = 32 * ((tile_count / 16) + 1)
	print("tileset texture is ", width, "x", height)
	image.create(width, height, false, Image.FORMAT_RGBA5551)
	if tile_count > 0:
		assert((file.get_len() - 28) / tile_count == 2051, "Wrong Size of TIL file")
		for i in range(tile_count):
			var img: PoolByteArray = file.get_buffer(2048)
			convert_to_image(image, img, i)
		for c in range(tile_count):
			var col: int = file.get_16()
			colors.append(convert_word_to_col(col))
		for t in range(tile_count):
			tile_types.append(file.get_8())
	if file.get_position() != file.get_len():
		print("Not at end of " % source_file)
		return ERR_PARSE_ERROR
	file.close()
	return ResourceSaver.save("%s.%s" % [save_path, get_save_extension()],
		Tiles.new(tileset_type, tile_types, colors, image))

The custom resource which has a texture within it:

extends Resource

enum TileType {
	OPEN = 0
	DIFFICULT = 1
	ROAD = 2
	OBSTRUCT_VEHICLES = 3
	OBSTRUCT_INFANTRY = 4
	OBSTRUCT_GROUND = 5
	BUILDING = 6
}

enum SetType {
	FLATS = 0 # minimum of 1 tile, first 15 tiles are transitions
	SLOPE_ONLY = 1 # 15 tiles minimum
	OPEN = 2 # 30 tiles minimum
	FULL_SET = 3 # 45 tiles minimum
}

export(SetType) var set_type
export(Array, TileType) var tile_type
export(Array, Color) var minimap_color
export(ImageTexture) var tex


func _init(
		p_set_type: int=0,
		p_tile_type: Array=[],
		p_minimap_color: Array=[],
		p_data: Image=Image.new()):
	set_type = p_set_type
	tile_type = p_tile_type
	minimap_color = p_minimap_color
	tex = ImageTexture.new()
	tex.create_from_image(p_data)

The only problem is I cannot select the texture to go into a tilemap?