diff --git a/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/spider.json b/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/spider.json new file mode 100644 index 00000000000..88ad74b6439 --- /dev/null +++ b/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/spider.json @@ -0,0 +1,17 @@ +{ + "type": "tconstruct:melting", + "ingredient": [ + { + "item": "tconstruct:spider_head" + }, + { + "item": "tconstruct:cave_spider_head" + } + ], + "result": { + "fluid": "tconstruct:venom", + "amount": 500 + }, + "temperature": 10, + "time": 53 +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/zombie.json b/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/zombie.json index 9c0b034dc55..b6bd7622024 100644 --- a/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/zombie.json +++ b/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/heads/zombie.json @@ -6,12 +6,6 @@ }, { "item": "tconstruct:husk_head" - }, - { - "item": "tconstruct:spider_head" - }, - { - "item": "tconstruct:cave_spider_head" } ], "result": { diff --git a/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/spider.json b/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/spider.json new file mode 100644 index 00000000000..4eff38a84f7 --- /dev/null +++ b/src/generated/resources/data/tconstruct/recipes/smeltery/entity_melting/spider.json @@ -0,0 +1,14 @@ +{ + "type": "tconstruct:entity_melting", + "entity": { + "types": [ + "minecraft:spider", + "minecraft:cave_spider" + ] + }, + "result": { + "fluid": "tconstruct:venom", + "amount": 25 + }, + "damage": 2 +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/smeltery/melting/venom/eye.json b/src/generated/resources/data/tconstruct/recipes/smeltery/melting/venom/eye.json new file mode 100644 index 00000000000..1b0aad838b1 --- /dev/null +++ b/src/generated/resources/data/tconstruct/recipes/smeltery/melting/venom/eye.json @@ -0,0 +1,12 @@ +{ + "type": "tconstruct:melting", + "ingredient": { + "item": "minecraft:spider_eye" + }, + "result": { + "fluid": "tconstruct:venom", + "amount": 50 + }, + "temperature": 10, + "time": 29 +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/smeltery/melting/venom/fermented_eye.json b/src/generated/resources/data/tconstruct/recipes/smeltery/melting/venom/fermented_eye.json new file mode 100644 index 00000000000..e3aa5b3ddce --- /dev/null +++ b/src/generated/resources/data/tconstruct/recipes/smeltery/melting/venom/fermented_eye.json @@ -0,0 +1,12 @@ +{ + "type": "tconstruct:melting", + "ingredient": { + "item": "minecraft:fermented_spider_eye" + }, + "result": { + "fluid": "tconstruct:venom", + "amount": 100 + }, + "temperature": 10, + "time": 29 +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/recipes/tools/spilling/venom.json b/src/generated/resources/data/tconstruct/recipes/tools/spilling/venom.json new file mode 100644 index 00000000000..b42c3ac076c --- /dev/null +++ b/src/generated/resources/data/tconstruct/recipes/tools/spilling/venom.json @@ -0,0 +1,15 @@ +{ + "type": "tconstruct:spilling", + "fluid": { + "tag": "tconstruct:venom", + "amount": 50 + }, + "effects": [ + { + "type": "tconstruct:effect", + "name": "minecraft:poison", + "time": 25, + "level": 1 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tconstruct/tags/fluids/venom.json b/src/generated/resources/data/tconstruct/tags/fluids/venom.json new file mode 100644 index 00000000000..25cb38f7fb3 --- /dev/null +++ b/src/generated/resources/data/tconstruct/tags/fluids/venom.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "tconstruct:venom", + "tconstruct:flowing_venom" + ] +} \ No newline at end of file diff --git a/src/main/java/slimeknights/tconstruct/fluids/TinkerFluids.java b/src/main/java/slimeknights/tconstruct/fluids/TinkerFluids.java index 1b4e22a0da4..c9246f1d7c9 100644 --- a/src/main/java/slimeknights/tconstruct/fluids/TinkerFluids.java +++ b/src/main/java/slimeknights/tconstruct/fluids/TinkerFluids.java @@ -24,6 +24,7 @@ public TinkerFluids() { // basic public static final FluidObject blood = FLUIDS.register("blood", coolBuilder().density(1200).viscosity(1200).temperature(336), Material.WATER, 0); + public static final FluidObject venom = FLUIDS.register("venom", coolBuilder().density(1400).viscosity(1300).temperature(310), Material.WATER, 0); // slime - note second name parameter is forge tag name public static final FluidObject earthSlime = FLUIDS.register("earth_slime", "slime", coolBuilder().density(1400).viscosity(1400).temperature(350), SlimeFluid.Source::new, SlimeFluid.Flowing::new, Material.WATER, 0); diff --git a/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java b/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java index cf8745d7024..98efba1e6c5 100644 --- a/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java +++ b/src/main/java/slimeknights/tconstruct/smeltery/data/SmelteryRecipeProvider.java @@ -1065,6 +1065,11 @@ private void addMeltingRecipes(Consumer consumer) { // blood MeltingRecipeBuilder.melting(Ingredient.fromItems(Items.ROTTEN_FLESH), TinkerFluids.blood.get(), FluidValues.SLIMEBALL / 5, 1.0f) .build(consumer, modResource(folder + "slime/blood/flesh")); + // venom + MeltingRecipeBuilder.melting(Ingredient.fromItems(Items.SPIDER_EYE), TinkerFluids.venom.get(), FluidValues.SLIMEBALL / 5, 1.0f) + .build(consumer, modResource(folder + "venom/eye")); + MeltingRecipeBuilder.melting(Ingredient.fromItems(Items.FERMENTED_SPIDER_EYE), TinkerFluids.venom.get(), FluidValues.SLIMEBALL * 2 / 5, 1.0f) + .build(consumer, modResource(folder + "venom/fermented_eye")); // glass MeltingRecipeBuilder.melting(Ingredient.fromTag(Tags.Items.SAND), TinkerFluids.moltenGlass.get(), FluidValues.GLASS_BLOCK, 1.5f) @@ -1543,7 +1548,7 @@ private void addEntityMeltingRecipes(Consumer consumer) { EntityMeltingRecipeBuilder.melting(EntityIngredient.of(EntityType.ZOMBIE, EntityType.HUSK, EntityType.ZOMBIFIED_PIGLIN, EntityType.ZOGLIN, EntityType.ZOMBIE_HORSE), new FluidStack(TinkerFluids.blood.get(), FluidValues.SLIMEBALL / 10), 2) .build(consumer, prefix(EntityType.ZOMBIE, folder)); - MeltingRecipeBuilder.melting(Ingredient.fromItems(Items.ZOMBIE_HEAD, TinkerWorld.heads.get(TinkerHeadType.HUSK), TinkerWorld.heads.get(TinkerHeadType.SPIDER), TinkerWorld.heads.get(TinkerHeadType.CAVE_SPIDER)), TinkerFluids.blood.get(), FluidValues.SLIMEBALL * 2) + MeltingRecipeBuilder.melting(Ingredient.fromItems(Items.ZOMBIE_HEAD, TinkerWorld.heads.get(TinkerHeadType.HUSK)), TinkerFluids.blood.get(), FluidValues.SLIMEBALL * 2) .build(consumer, prefix(EntityType.ZOMBIE, headFolder)); // drowned are weird, there is water flowing through their veins EntityMeltingRecipeBuilder.melting(EntityIngredient.of(EntityType.DROWNED), @@ -1551,6 +1556,12 @@ private void addEntityMeltingRecipes(Consumer consumer) { .build(consumer, prefix(EntityType.DROWNED, folder)); MeltingRecipeBuilder.melting(Ingredient.fromItems(TinkerWorld.heads.get(TinkerHeadType.DROWNED)), Fluids.WATER, FluidAttributes.BUCKET_VOLUME / 4) .build(consumer, prefix(EntityType.DROWNED, headFolder)); + // melt spiders into venom + EntityMeltingRecipeBuilder.melting(EntityIngredient.of(EntityType.SPIDER, EntityType.CAVE_SPIDER), + new FluidStack(TinkerFluids.venom.get(), FluidValues.SLIMEBALL / 10), 2) + .build(consumer, prefix(EntityType.SPIDER, folder)); + MeltingRecipeBuilder.melting(Ingredient.fromItems(TinkerWorld.heads.get(TinkerHeadType.SPIDER), TinkerWorld.heads.get(TinkerHeadType.CAVE_SPIDER)), TinkerFluids.venom.get(), FluidValues.SLIMEBALL * 2) + .build(consumer, prefix(EntityType.SPIDER, headFolder)); // creepers are based on explosives, tnt is explosive, tnt is made from sand, sand melts into glass. therefore, creepers melt into glass EntityMeltingRecipeBuilder.melting(EntityIngredient.of(EntityType.CREEPER), diff --git a/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java b/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java index 94731ee194e..9ffce924474 100644 --- a/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java +++ b/src/main/java/slimeknights/tconstruct/tools/data/ModifierRecipeProvider.java @@ -836,6 +836,10 @@ private void addSpillingRecipes(Consumer consumer) { SpillingRecipeBuilder.forFluid(TinkerFluids.blood.getLocalTag(), slimeballPiece) .addEffect(new EffectSpillingEffect(Effects.HUNGER, 20, 1)) .build(consumer, prefix(TinkerFluids.blood, folder)); + // venom - poison + SpillingRecipeBuilder.forFluid(TinkerFluids.venom.getLocalTag(), slimeballPiece) + .addEffect(new EffectSpillingEffect(Effects.POISON, 25, 1)) + .build(consumer, prefix(TinkerFluids.venom, folder)); // magma - fire resistance SpillingRecipeBuilder.forFluid(TinkerFluids.magma.getLocalTag(), slimeballPiece) .addEffect(new EffectSpillingEffect(Effects.FIRE_RESISTANCE, 25, 1)) diff --git a/src/main/resources/assets/tconstruct/blockstates/venom_fluid.json b/src/main/resources/assets/tconstruct/blockstates/venom_fluid.json new file mode 100644 index 00000000000..b097ef4b76f --- /dev/null +++ b/src/main/resources/assets/tconstruct/blockstates/venom_fluid.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tconstruct:block/fluid/venom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tconstruct/lang/en_us.json b/src/main/resources/assets/tconstruct/lang/en_us.json index 3267d2227d6..90bb47a8913 100644 --- a/src/main/resources/assets/tconstruct/lang/en_us.json +++ b/src/main/resources/assets/tconstruct/lang/en_us.json @@ -398,6 +398,11 @@ "fluid.tconstruct.flowing_ender_slime": "Flowing Enderslime", "item.tconstruct.ender_slime_bucket": "Enderslime Bucket", + "block.tconstruct.venom_fluid": "Venom", + "fluid.tconstruct.venom": "Venom", + "fluid.tconstruct.flowing_venom": "Flowing Venom", + "item.tconstruct.venom_bucket": "Venom Bucket", + "_comment": "Rock", "block.tconstruct.seared_stone_fluid": "Seared Stone", diff --git a/src/main/resources/assets/tconstruct/models/block/fluid/venom.json b/src/main/resources/assets/tconstruct/models/block/fluid/venom.json new file mode 100644 index 00000000000..5fea89ae9e9 --- /dev/null +++ b/src/main/resources/assets/tconstruct/models/block/fluid/venom.json @@ -0,0 +1,9 @@ +{ + "loader": "mantle:fluid_texture", + "textures": { + "still": "tconstruct:block/fluid/liquid/still", + "flowing": "tconstruct:block/fluid/liquid/flowing" + }, + "color": "FFFFFF" +} + diff --git a/src/main/resources/assets/tconstruct/models/item/venom_bucket.json b/src/main/resources/assets/tconstruct/models/item/venom_bucket.json new file mode 100644 index 00000000000..71146b2bf65 --- /dev/null +++ b/src/main/resources/assets/tconstruct/models/item/venom_bucket.json @@ -0,0 +1,5 @@ +{ + "parent": "forge:item/bucket_drip", + "loader": "forge:bucket", + "fluid": "tconstruct:venom" +}