-- -------------------------------------------------------------------------- --
--                                   Liquids                                  --
-- -------------------------------------------------------------------------- --
-- Water
minetest.register_node("vox_core:water_source", {
    description = ("Water Source"),
    drawtype = "liquid",
    waving = 3,
    tiles = {
        {
            name = "default_water_source_animated.png",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0,
            },
        },
        {
            name = "default_water_source_animated.png",
            backface_culling = true,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0,
            },
        },
    },
    use_texture_alpha = "blend",
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    is_ground_content = false,
    drop = "",
    drowning = 1,
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:water_flowing",
    liquid_alternative_source = "vox_core:water_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 103, r = 30, g = 60, b = 90},
    groups = {water = 3, liquid = 3, cools_lava = 1},
})

-- Flowing Water
minetest.register_node("vox_core:water_flowing", {
    description = ("Flowing Water"),
    drawtype = "flowingliquid",
    waving = 3,
    tiles = {"default_water.png"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.5,
            },
        },
        {
            name = "default_water_flowing_animated.png",
            backface_culling = true,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.5,
            },
        },
    },
    use_texture_alpha = "blend",
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    is_ground_content = false,
    drop = "",
    drowning = 1,
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:water_flowing",
    liquid_alternative_source = "vox_core:water_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 103, r = 30, g = 60, b = 90},
    groups = {water = 3, liquid = 3, not_in_creative_inventory = 1, cools_lava = 1},
})

-- River Water
core.register_node("vox_core:river_water_source", {
    description = "River Water Source",
    drawtype = "liquid",
    tiles = {
        {
            name = "default_river_water_source_animated.png",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    special_tiles = {
        {
            name = "default_river_water_source_animated.png",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    drowning = 1,
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:river_water_flowing",
    liquid_alternative_source = "vox_core:river_water_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 103, r = 30, g = 60, b = 90},
    groups = {water = 3, liquid = 3, puts_out_fire = 1}
})

-- Flowing River Water
core.register_node("vox_core:river_water_flowing", {
    description = "Flowing River Water",
    drawtype = "flowingliquid",
    tiles = {"default_river_water_flowing_animated.png"},
    special_tiles = {
        {
            name = "default_river_water_flowing_animated.png",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    drowning = 1,
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:river_water_flowing",
    liquid_alternative_source = "vox_core:river_water_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 103, r = 30, g = 60, b = 90},
    groups = {water = 3, liquid = 3, puts_out_fire = 1}
})

-- Lava
core.register_node("vox_core:lava_source", {
    description = "Lava Source",
    drawtype = "liquid",
    tiles = {
        {
            name = "default_lava_source_animated.png",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    special_tiles = {
        {
            name = "default_lava_source_animated.png",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:lava_flowing",
    liquid_alternative_source = "vox_core:lava_source",
    liquid_viscosity = 7,
    post_effect_color = {a = 240, r = 255, g = 64, b = 0},
    groups = {lava = 3, liquid = 3, hot = 3, igniter = 1}
})

-- Flowing Lava
core.register_node("vox_core:lava_flowing", {
    description = "Flowing Lava",
    drawtype = "flowingliquid",
    tiles = {"default_lava_flowing_animated.png"},
    special_tiles = {
        {
            name = "default_lava_flowing_animated.png",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:lava_flowing",
    liquid_alternative_source = "vox_core:lava_source",
    liquid_viscosity = 7,
    post_effect_color = {a = 240, r = 255, g = 64, b = 0},
    groups = {lava = 3, liquid = 3, hot = 3, igniter = 1}
})

-- Oil
core.register_node("vox_core:oil_source", {
    description = "Oil Source",
    drawtype = "liquid",
    tiles = {
        {
            name = "default_water_source_animated.png^[colorize:black:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:black:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:oil_flowing",
    liquid_alternative_source = "vox_core:oil_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 0, b = 0},
    groups = {oil = 3, liquid = 3, igniter = 1}
})

-- Flowing Oil
core.register_node("vox_core:oil_flowing", {
    description = "Flowing Oil",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:black:200"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:black:200",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:oil_flowing",
    liquid_alternative_source = "vox_core:oil_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 0, b = 0},
    groups = {oil = 3, liquid = 3, igniter = 1}
})

-- Acid
core.register_node("vox_core:acid_source", {
    description = "Acid Source",
    drawtype = "liquid",
    tiles = {
        {
            name = "default_water_source_animated.png^[colorize:green:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:green:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:acid_flowing",
    liquid_alternative_source = "vox_core:acid_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {acid = 3, liquid = 3, igniter = 1}
})

-- Flowing Acid
core.register_node("vox_core:acid_flowing", {
    description = "Flowing Acid",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:green:200"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:green:200",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:acid_flowing",
    liquid_alternative_source = "vox_core:acid_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {acid = 3, liquid = 3, igniter = 1}
})

-- Slime
core.register_node("vox_core:slime_source", {
    description = "Slime Source",
    drawtype = "liquid",
    tiles = {
        {
            name = "default_water_source_animated.png^[colorize:lime:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:lime:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:slime_flowing",
    liquid_alternative_source = "vox_core:slime_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {slime = 3, liquid = 3, igniter = 1}
})

-- Flowing Slime
core.register_node("vox_core:slime_flowing", {
    description = "Flowing Slime",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:lime:200"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:lime:200",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:slime_flowing",
    liquid_alternative_source = "vox_core:slime_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {slime = 3, liquid = 3, igniter = 1}
})

-- Sewage
core.register_node("vox_core:sewage_source", {
    description = "Sewage Source",
    drawtype = "liquid",
    tiles = {
        {
            name = "default_water_source_animated.png^[colorize:brown:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:brown:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:sewage_flowing",
    liquid_alternative_source = "vox_core:sewage_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {sewage = 3, liquid = 3, igniter = 1}
})

-- Flowing Sewage
core.register_node("vox_core:sewage_flowing", {
    description = "Flowing Sewage",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:#4B5320:150"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:#4B5320:150",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:sewage_flowing",
    liquid_alternative_source = "vox_core:sewage_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {sewage = 3, liquid = 3, igniter = 1}
})

-- Tar
core.register_node("vox_core:tar_source", {
    description = "Tar Source",
    drawtype = "liquid",
    tiles = {"default_water_source_animated.png^[colorize:#2F4F4F:200"},
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:#2F4F4F:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:tar_flowing",
    liquid_alternative_source = "vox_core:tar_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 0, b = 0},
    groups = {tar = 3, liquid = 3, igniter = 1}
})

-- Flowing Tar
core.register_node("vox_core:tar_flowing", {
    description = "Flowing Tar",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:#2F4F4F:200"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:#2F4F4F:200",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:tar_flowing",
    liquid_alternative_source = "vox_core:tar_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 0, b = 0},
    groups = {tar = 3, liquid = 3, igniter = 1}
})

-- Oil
core.register_node("vox_core:oil_source", {
    description = "Oil Source",
    drawtype = "liquid",
    tiles = {"default_water_source_animated.png^[colorize:#000000:200"},
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:#000000:200",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:oil_flowing",
    liquid_alternative_source = "vox_core:oil_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 0, b = 0},
    groups = {oil = 3, liquid = 3, igniter = 1}
})

-- Flowing Oil
core.register_node("vox_core:oil_flowing", {
    description = "Flowing Oil",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:#000000:200"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:#000000:200",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:oil_flowing",
    liquid_alternative_source = "vox_core:oil_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 0, b = 0},
    groups = {oil = 3, liquid = 3, igniter = 1}
})

-- Acid
core.register_node("vox_core:acid_source", {
    description = "Acid Source",
    drawtype = "liquid",
    tiles = {"default_water_source_animated.png^[colorize:#00FF00:150"},
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:#00FF00:150",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:acid_flowing",
    liquid_alternative_source = "vox_core:acid_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {acid = 3, liquid = 3, igniter = 1}
})

-- Flowing Acid
core.register_node("vox_core:acid_flowing", {
    description = "Flowing Acid",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:#00FF00:150"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:#00FF00:150",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:acid_flowing",
    liquid_alternative_source = "vox_core:acid_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {acid = 3, liquid = 3, igniter = 1}
})

-- Slime
core.register_node("vox_core:slime_source", {
    description = "Slime Source",
    drawtype = "liquid",
    tiles = {"default_water_source_animated.png^[colorize:#00FF00:100"},
    special_tiles = {
        {
            name = "default_water_source_animated.png^[colorize:#00FF00:100",
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 2.0
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "source",
    liquid_alternative_flowing = "vox_core:slime_flowing",
    liquid_alternative_source = "vox_core:slime_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {slime = 3, liquid = 3, igniter = 1}
})

-- Flowing Slime
core.register_node("vox_core:slime_flowing", {
    description = "Flowing Slime",
    drawtype = "flowingliquid",
    tiles = {"default_water_flowing_animated.png^[colorize:#00FF00:100"},
    special_tiles = {
        {
            name = "default_water_flowing_animated.png^[colorize:#00FF00:100",
            backface_culling = false,
            animation = {
                type = "vertical_frames",
                aspect_w = 16,
                aspect_h = 16,
                length = 0.8
            }
        }
    },
    alpha = 160,
    paramtype = "light",
    paramtype2 = "flowingliquid",
    walkable = false,
    pointable = false,
    diggable = false,
    buildable_to = true,
    drop = "",
    liquidtype = "flowing",
    liquid_alternative_flowing = "vox_core:slime_flowing",
    liquid_alternative_source = "vox_core:slime_source",
    liquid_viscosity = 1,
    post_effect_color = {a = 240, r = 0, g = 255, b = 0},
    groups = {slime = 3, liquid = 3, igniter = 1}
})