class Copper(OreMaterial, base_materials.ColorMaterial):
    HARDNESS: ClassVar[int] = 4
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(30, 2)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (5, 8)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((189, 99, 20))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((189, 99, 20), image_size=con.TRANSPORT_BLOCK_SIZE)
class Zinc(OreMaterial, base_materials.ColorMaterial):
    HARDNESS: ClassVar[int] = 3
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(20, 5)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (2, 15)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((58, 90, 120))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((58, 90, 120), image_size=con.TRANSPORT_BLOCK_SIZE)
class Iron(OreMaterial, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(50, 30)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (2, 10)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((184, 98, 92))
    WHEIGHT: ClassVar[int] = 3
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((184, 98, 92), image_size=con.TRANSPORT_BLOCK_SIZE)
class Oralchium(OreMaterial, base_materials.ColorMaterial):
    HARDNESS: ClassVar[int] = 30
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(50, 50)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (5, 10)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((0, 255, 70))
    WHEIGHT: ClassVar[int] = 3
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((0, 255, 70), image_size=con.TRANSPORT_BLOCK_SIZE)
class Titanium(OreMaterial, base_materials.ColorMaterial):
    HARDNESS: ClassVar[int] = 50
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(100, 2)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (1, 2)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((152, 196, 237))
    WHEIGHT: ClassVar[int] = 10
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((152, 196, 237), image_size=con.TRANSPORT_BLOCK_SIZE)
class Coal(OreMaterial, Burnable, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(10, 50)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (6, 12)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((10, 10, 10))
    TEXT_COLOR: ClassVar[Tuple[int, int, int]] = (255, 255, 255)
    FUEL_VALUE: ClassVar[int] = 5
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((10, 10, 10), image_size=con.TRANSPORT_BLOCK_SIZE)
class Gold(OreMaterial, base_materials.ColorMaterial):
    HARDNESS: ClassVar[int] = 3
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(70, 3)
    CLUSTER_SIZE: ClassVar[Tuple[int, int]] = (2, 6)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((235, 173, 16))
    WHEIGHT: ClassVar[int] = 5
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((235, 173, 16), image_size=con.TRANSPORT_BLOCK_SIZE)
class FinalStone(base_materials.DepthMaterial, base_materials.ColorMaterial, base_materials.TransportableMaterial):
    HARDNESS: ClassVar[int] = 20
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(100, 2)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((199, 127, 195))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((199, 127, 195), image_size=con.TRANSPORT_BLOCK_SIZE)
class Granite(base_materials.DepthMaterial, base_materials.ColorMaterial, base_materials.TransportableMaterial):
    HARDNESS: ClassVar[int] = 10
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(70, 7)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((105, 89, 76))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((105, 89, 76), image_size=con.TRANSPORT_BLOCK_SIZE)
class YellowStone(base_materials.ColorMaterial, base_materials.TransportableMaterial):
    HARDNESS: ClassVar[int] = 3
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((155, 155, 126))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((155, 155, 126), image_size=con.TRANSPORT_BLOCK_SIZE)
class BackStone(base_materials.DepthMaterial, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(50, 10)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((55, 55, 55))
class BackSlime2(base_materials.DepthMaterial, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(50, 50)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((36, 120, 59))
class Dirt(base_materials.DepthMaterial, base_materials.ColorMaterial, base_materials.TransportableMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(0, 10)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((137, 79, 33))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((137, 79, 33), image_size=con.TRANSPORT_BLOCK_SIZE)
class BackIce(base_materials.DepthMaterial, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(50, 50)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((24, 81, 118))
class BackFinalStone(base_materials.DepthMaterial, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(100, 2)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((72, 0, 70))
class BasicIce(base_materials.ColorMaterial, base_materials.TransportableMaterial):
    HARDNESS: ClassVar[int] = 1
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((74, 131, 168))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((74, 131, 168), image_size=con.TRANSPORT_BLOCK_SIZE)
class Snow(base_materials.ColorMaterial, base_materials.TransportableMaterial):
    HARDNESS: ClassVar[int] = 1
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((193, 197, 199))
    TRANSPORT_IMAGE_DEFINITION: ClassVar[base_materials.ColorDefinition] = \
        base_materials.ColorDefinition((193, 197, 199), image_size=con.TRANSPORT_BLOCK_SIZE)
class BackDirt(base_materials.DepthMaterial, base_materials.ColorMaterial):
    DISTRIBUTION: ClassVar[util.Gaussian] = util.Gaussian(20, 10)
    COLOR_DEFINITIONS: ClassVar[base_materials.ColorDefinition] = base_materials.ColorDefinition((97, 39, 3))