Skip to content

Commit

Permalink
- 固有の液体を持つ液体キューブを実装
Browse files Browse the repository at this point in the history
  • Loading branch information
Hiiragi283 committed Jan 11, 2025
1 parent 31fffbc commit 6dc023f
Show file tree
Hide file tree
Showing 23 changed files with 215 additions and 64 deletions.
4 changes: 4 additions & 0 deletions src/main/generated/assets/ragium/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,12 +182,15 @@
"item.ragium.gear_press_mold": "Press Mold (Gear)",
"item.ragium.gigant_hammer": "Gigant Hammer",
"item.ragium.glass_shard": "Glass Shard",
"item.ragium.honey_cube": "Honey Cube",
"item.ragium.item_filter": "Item Filter",
"item.ragium.laser_emitter": "Laser Emitter",
"item.ragium.lava_cube": "Lava Cube",
"item.ragium.led": "L.E.D.",
"item.ragium.luminescence_dust": "Luminescence Dust",
"item.ragium.meat_ingot": "Meat Ingot",
"item.ragium.melon_pie": "Melon Pie",
"item.ragium.milk_cube": "Milk Cube",
"item.ragium.minced_meat": "Minced Meat",
"item.ragium.nether_star_processor": "Nether Star Processor",
"item.ragium.nuclear_waste": "Nuclear Waste",
Expand Down Expand Up @@ -229,6 +232,7 @@
"item.ragium.trader_catalog": "Trader Catalog",
"item.ragium.uranium_fuel": "Uranium Fuel",
"item.ragium.warped_crystal": "Warped Crystal",
"item.ragium.water_cube": "Water Cube",
"item.ragium.wire_press_mold": "Press Mold (Wire)",
"item.ragium.yellow_cake": "Yellow Cake",
"item.ragium.yellow_cake_piece": "A piece of Yellow Cake",
Expand Down
4 changes: 4 additions & 0 deletions src/main/generated/assets/ragium/lang/ja_jp.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,12 +182,15 @@
"item.ragium.gear_press_mold": "プレス型(歯車)",
"item.ragium.gigant_hammer": "ギガントハンマー",
"item.ragium.glass_shard": "ガラスの破片",
"item.ragium.honey_cube": "蜂蜜キューブ",
"item.ragium.item_filter": "アイテムフィルタ",
"item.ragium.laser_emitter": "レーザーエミッタ",
"item.ragium.lava_cube": "溶岩キューブ",
"item.ragium.led": "L.E.D.",
"item.ragium.luminescence_dust": "ルミネッセンスダスト",
"item.ragium.meat_ingot": "生肉インゴット",
"item.ragium.melon_pie": "メロンパイ",
"item.ragium.milk_cube": "牛乳キューブ",
"item.ragium.minced_meat": "ひき肉",
"item.ragium.nether_star_processor": "ネザースタープロセッサ",
"item.ragium.nuclear_waste": "核廃棄物",
Expand Down Expand Up @@ -229,6 +232,7 @@
"item.ragium.trader_catalog": "行商人カタログ",
"item.ragium.uranium_fuel": "ウラン燃料",
"item.ragium.warped_crystal": "歪んだ結晶",
"item.ragium.water_cube": "水キューブ",
"item.ragium.wire_press_mold": "プレス型(ワイヤ)",
"item.ragium.yellow_cake": "イエローケーキ",
"item.ragium.yellow_cake_piece": "一切れのイエローケーキ",
Expand Down
6 changes: 6 additions & 0 deletions src/main/generated/assets/ragium/models/item/honey_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "ragium:item/static_fluid_cube",
"textures": {
"inside": "minecraft:block/yellow_concrete"
}
}
6 changes: 6 additions & 0 deletions src/main/generated/assets/ragium/models/item/lava_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "ragium:item/static_fluid_cube",
"textures": {
"inside": "minecraft:block/orange_concrete"
}
}
6 changes: 6 additions & 0 deletions src/main/generated/assets/ragium/models/item/milk_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "ragium:item/static_fluid_cube",
"textures": {
"inside": "minecraft:block/white_concrete"
}
}
6 changes: 6 additions & 0 deletions src/main/generated/assets/ragium/models/item/water_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "ragium:item/static_fluid_cube",
"textures": {
"inside": "minecraft:block/blue_concrete"
}
}
13 changes: 13 additions & 0 deletions src/main/generated/data/ragium/recipe/extractor/honey_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"type": "ragium:machine",
"fluid_outputs": [
"ragium:honey"
],
"item_inputs": [
"ragium:honey_cube"
],
"item_outputs": [
"ragium:empty_fluid_cube"
],
"machine_type": "ragium:extractor"
}
13 changes: 13 additions & 0 deletions src/main/generated/data/ragium/recipe/extractor/lava_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"type": "ragium:machine",
"fluid_outputs": [
"minecraft:lava"
],
"item_inputs": [
"ragium:lava_cube"
],
"item_outputs": [
"ragium:empty_fluid_cube"
],
"machine_type": "ragium:extractor"
}
13 changes: 13 additions & 0 deletions src/main/generated/data/ragium/recipe/extractor/milk_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"type": "ragium:machine",
"fluid_outputs": [
"ragium:milk"
],
"item_inputs": [
"ragium:milk_cube"
],
"item_outputs": [
"ragium:empty_fluid_cube"
],
"machine_type": "ragium:extractor"
}
13 changes: 13 additions & 0 deletions src/main/generated/data/ragium/recipe/extractor/water_cube.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"type": "ragium:machine",
"fluid_outputs": [
"minecraft:water"
],
"item_inputs": [
"ragium:water_cube"
],
"item_outputs": [
"ragium:empty_fluid_cube"
],
"machine_type": "ragium:extractor"
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@
"category": "misc",
"key": {
"A": {
"fabric:type": "fabric:components",
"base": {
"item": "ragium:filled_fluid_cube"
},
"components": {
"ragium:fluid": "ragium:milk"
}
"item": "ragium:milk_cube"
},
"B": {
"item": "minecraft:sweet_berries"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,7 @@
"item": "minecraft:apple"
},
{
"fabric:type": "fabric:components",
"base": {
"item": "ragium:filled_fluid_cube"
},
"components": {
"ragium:fluid": "ragium:chocolate"
}
"item": "ragium:chocolate"
}
],
"result": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,7 @@
"item": "minecraft:bread"
},
{
"fabric:type": "fabric:components",
"base": {
"item": "ragium:filled_fluid_cube"
},
"components": {
"ragium:fluid": "ragium:chocolate"
}
"item": "ragium:chocolate"
}
],
"result": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,7 @@
"item": "ragium:cinnamon_powder"
},
{
"fabric:type": "fabric:components",
"base": {
"item": "ragium:filled_fluid_cube"
},
"components": {
"ragium:fluid": "ragium:milk"
}
"item": "ragium:milk_cube"
}
],
"result": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
package hiiragi283.ragium.api.data

import hiiragi283.ragium.api.RagiumAPI
import hiiragi283.ragium.api.content.HTFluidContent
import hiiragi283.ragium.api.extension.registryEntry
import hiiragi283.ragium.api.material.HTMaterialKey
import hiiragi283.ragium.api.material.HTMaterialProvider
import hiiragi283.ragium.api.material.HTTagPrefix
import net.fabricmc.fabric.api.recipe.v1.ingredient.DefaultCustomIngredients
import net.minecraft.advancement.Advancement
import net.minecraft.advancement.AdvancementCriterion
import net.minecraft.advancement.AdvancementRequirements
Expand All @@ -16,7 +13,6 @@ import net.minecraft.component.ComponentChanges
import net.minecraft.data.server.recipe.CraftingRecipeJsonBuilder
import net.minecraft.data.server.recipe.RecipeExporter
import net.minecraft.data.server.recipe.RecipeProvider
import net.minecraft.fluid.Fluid
import net.minecraft.item.Item
import net.minecraft.item.ItemConvertible
import net.minecraft.item.ItemStack
Expand Down Expand Up @@ -84,13 +80,6 @@ class HTShapedRecipeJsonBuilder private constructor(val output: ItemStack) : Cra
}
}

fun fluidInput(char: Char, content: HTFluidContent): HTShapedRecipeJsonBuilder = fluidInput(char, content.get())

fun fluidInput(char: Char, fluid: Fluid): HTShapedRecipeJsonBuilder = input(
char,
DefaultCustomIngredients.components(RagiumAPI.getInstance().createFilledCube(fluid)),
)

fun patterns(patterns: List<String>): HTShapedRecipeJsonBuilder = patterns(*patterns.toTypedArray())

fun patterns(vararg patterns: String): HTShapedRecipeJsonBuilder = apply {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package hiiragi283.ragium.api.data

import hiiragi283.ragium.api.RagiumAPI
import hiiragi283.ragium.api.content.HTFluidContent
import hiiragi283.ragium.api.material.HTMaterialKey
import hiiragi283.ragium.api.material.HTMaterialProvider
import hiiragi283.ragium.api.material.HTTagPrefix
import net.fabricmc.fabric.api.recipe.v1.ingredient.DefaultCustomIngredients
import net.minecraft.advancement.Advancement
import net.minecraft.advancement.AdvancementCriterion
import net.minecraft.advancement.AdvancementRequirements
Expand All @@ -15,7 +12,6 @@ import net.minecraft.component.ComponentChanges
import net.minecraft.data.server.recipe.CraftingRecipeJsonBuilder
import net.minecraft.data.server.recipe.RecipeExporter
import net.minecraft.data.server.recipe.RecipeProvider
import net.minecraft.fluid.Fluid
import net.minecraft.item.Item
import net.minecraft.item.ItemConvertible
import net.minecraft.item.ItemStack
Expand Down Expand Up @@ -78,11 +74,6 @@ class HTShapelessRecipeJsonBuilder private constructor(val output: ItemStack) :
inputs.add(ingredient)
}

fun fluidInput(content: HTFluidContent): HTShapelessRecipeJsonBuilder = fluidInput(content.get())

fun fluidInput(fluid: Fluid): HTShapelessRecipeJsonBuilder =
input(DefaultCustomIngredients.components(RagiumAPI.getInstance().createFilledCube(fluid)))

fun unlockedBy(prefix: HTTagPrefix, material: HTMaterialKey): HTShapelessRecipeJsonBuilder = unlockedBy(prefix.createTag(material))

fun unlockedBy(content: HTMaterialProvider): HTShapelessRecipeJsonBuilder = unlockedBy(content.prefixedTagKey)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ object RagiumFoodComponents {

@JvmField
val CANNED_COOKED_MEAT: FoodComponent = foodComponent(
nutrition = 2,
saturation = 0.2f,
nutrition = 8,
saturation = 0.8f,
eatSeconds = 0.8f,
convertTo = Items.IRON_NUGGET.defaultStack,
)
Expand Down
25 changes: 25 additions & 0 deletions src/main/kotlin/hiiragi283/ragium/common/init/RagiumItems.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package hiiragi283.ragium.common.init
import hiiragi283.ragium.api.RagiumAPI
import hiiragi283.ragium.api.component.HTRadioactiveComponent
import hiiragi283.ragium.api.content.HTContent
import hiiragi283.ragium.api.content.HTFluidContent
import hiiragi283.ragium.api.content.HTItemContent
import hiiragi283.ragium.api.extension.*
import hiiragi283.ragium.api.machine.HTMachineTier
Expand All @@ -16,6 +17,8 @@ import net.minecraft.component.type.AttributeModifierSlot
import net.minecraft.component.type.FoodComponents
import net.minecraft.entity.attribute.EntityAttributeModifier
import net.minecraft.entity.attribute.EntityAttributes
import net.minecraft.fluid.Fluid
import net.minecraft.fluid.Fluids
import net.minecraft.item.*
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
Expand Down Expand Up @@ -438,6 +441,27 @@ object RagiumItems {
override val key: RegistryKey<Item> = HTContent.itemKey(name.lowercase())
}

enum class FluidCubes(val fluid: HTFluidContent) : HTItemContent {
WATER(HTContent.fromFluid(Fluids.WATER)),
LAVA(HTContent.fromFluid(Fluids.LAVA)),
MILK(RagiumFluids.MILK),
HONEY(RagiumFluids.HONEY),
;

companion object {
@JvmStatic
fun fromFluid(fluid: Fluid): FluidCubes? = when (fluid) {
Fluids.WATER -> WATER
Fluids.LAVA -> LAVA
RagiumFluids.MILK.get() -> MILK
RagiumFluids.HONEY.get() -> HONEY
else -> null
}
}

override val key: RegistryKey<Item> = HTContent.itemKey("${name.lowercase()}_cube")
}

@JvmField
val BEE_WAX: HTItemContent = HTContent.ofItem("bee_wax")

Expand Down Expand Up @@ -817,6 +841,7 @@ object RagiumItems {
}.radioactive(radioactive.level),
)
}
FluidCubes.entries.forEach(::registerItem)

INGREDIENTS.forEach { ingredient: HTItemContent ->
when (ingredient) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import hiiragi283.ragium.api.RagiumAPI
import hiiragi283.ragium.api.RagiumConfig
import hiiragi283.ragium.api.RagiumPlugin
import hiiragi283.ragium.api.content.HTBlockContent
import hiiragi283.ragium.api.content.HTItemContent
import hiiragi283.ragium.api.extension.*
import hiiragi283.ragium.api.machine.HTMachineKey
import hiiragi283.ragium.api.machine.HTMachineRegistry
Expand Down Expand Up @@ -65,11 +66,13 @@ internal data object InternalRagiumAPI : RagiumAPI {
override fun createFluidDrinkCriterion(entryList: RegistryEntryList<Fluid>): AdvancementCriterion<HTDrankFluidCriterion.Condition> =
HTDrankFluidCriterion.create(entryList)

override fun createFilledCube(entry: RegistryEntry<Fluid>, count: Int): ItemStack = buildItemStack(
RagiumItems.FILLED_FLUID_CUBE,
count,
) {
add(RagiumComponentTypes.FLUID, entry)
override fun createFilledCube(entry: RegistryEntry<Fluid>, count: Int): ItemStack {
val item: HTItemContent = entry.value().let(RagiumItems.FluidCubes::fromFluid) ?: RagiumItems.FILLED_FLUID_CUBE
return buildItemStack(item, count) {
if (item == RagiumItems.FILLED_FLUID_CUBE) {
add(RagiumComponentTypes.FLUID, entry)
}
}
}

override fun createHardModeCondition(value: Boolean): ResourceCondition = HTHardModeResourceCondition(value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,10 +344,23 @@ internal object RagiumContentRegister {
FluidStorage
.combinedItemApiProvider(RagiumItems.EMPTY_FLUID_CUBE.get())
.register(::HTEmptyFluidCubeStorage)

RagiumBlocks.Drums.entries
.map(RagiumBlocks.Drums::asItem)
.map(FluidStorage::combinedItemApiProvider)
.forEach { event: Event<FluidStorage.CombinedItemApiProvider> -> event.register(HTTieredFluidItemStorage::find) }

RagiumItems.FluidCubes.entries.forEach { fluidCube: RagiumItems.FluidCubes ->
FluidStorage.combinedItemApiProvider(fluidCube.get()).register { context: ContainerItemContext ->
FullItemFluidStorage(
context,
RagiumItems.EMPTY_FLUID_CUBE.get(),
fluidCube.fluid.variant,
FluidConstants.BUCKET,
)
}
}

FluidStorage.GENERAL_COMBINED_PROVIDER.register { context: ContainerItemContext ->
if (context.itemVariant.isOf(RagiumItems.FILLED_FLUID_CUBE)) {
context
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,15 @@ object RagiumHardModePlugin : RagiumPlugin {
val id: Identifier = entry.id ?: return@forEach
val fluid: Fluid = entry.value()
if (!fluid.isStill(fluid.defaultState)) return@forEach
val bucket: Item = fluid.bucketItem
if (bucket.isAir) return@forEach
// insert to cube
HTMachineRecipeJsonBuilder
.create(RagiumMachineKeys.INFUSER, ::HTDefaultMachineRecipe)
.itemInput(RagiumItems.EMPTY_FLUID_CUBE)
.fluidInput(fluid)
.itemOutput(RagiumAPI.getInstance().createFilledCube(fluid))
.offerTo(exporter, id.withPrefixedPath("filling_cube/"))
val bucket: Item = fluid.bucketItem
if (bucket.isAir) return@forEach
// insert to bucket
HTMachineRecipeJsonBuilder
.create(RagiumMachineKeys.INFUSER, ::HTDefaultMachineRecipe)
Expand Down
Loading

0 comments on commit 6dc023f

Please sign in to comment.