From d2fcd0b59b1f075c04057b8785c43d09fd962ddf Mon Sep 17 00:00:00 2001 From: stfwi Date: Sun, 28 Apr 2019 21:33:58 +0200 Subject: [PATCH] Fluid valves support pressurized transfer. Fixed recipe json issue without IE installed. --- 1.12/gradle.properties | 2 +- 1.12/meta/update.json | 3 +- 1.12/readme.md | 3 ++ .../blocks/BlockDecorPipeValve.java | 20 +++++++--- .../wile/engineersdecor/blocks/ModBlocks.java | 40 +++++++++---------- .../engineersdecor/recipes/_constants.json | 6 +++ meta/update.json | 3 +- 7 files changed, 49 insertions(+), 28 deletions(-) diff --git a/1.12/gradle.properties b/1.12/gradle.properties index af33e8b..86f2e0b 100644 --- a/1.12/gradle.properties +++ b/1.12/gradle.properties @@ -4,4 +4,4 @@ org.gradle.jvmargs=-Xmx8G version_minecraft=1.12.2 version_forge=14.23.5.2768 version_jei=4.10.0.198 -version_engineersdecor=1.0.4-b6 +version_engineersdecor=1.0.4-b7 diff --git a/1.12/meta/update.json b/1.12/meta/update.json index 6892ecb..5de66e5 100644 --- a/1.12/meta/update.json +++ b/1.12/meta/update.json @@ -1,6 +1,7 @@ { "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "1.12.2": { + "1.0.4-b7": "[F] Fixed recipe loading issue is IE is not installed.\n[M] Valves support IE pressureized fluid transfer.", "1.0.4-b6": "[A] Added redstone controlled fluid valve.\n[A] Added redstone controlled analog fluid valve.\n[M] Check valve recipe adapted (thanks majijn).", "1.0.4-b5": "[A] Horizontal steel double-T support beam with pole connections.\n[A] Added fluid pipe check valve (straight, conducts only one way).\n[M] Internal registration block/te handling changed.", "1.0.4-b4": "[F] Clinker/slag brick wall side cullfacing disabled to prevent texture leaks when connecting to concrete walls.\n[F] Unused treated wood pole texture regions filled (optifine).\n[F] Using mipped cutout format for window multi-layer model (issue #19, thanks rixmswey for reporting and details).\n[M] Recipe tuning, added standalone recipe for all mod blocks.\n[M] In-game CTRL-SHIFT tooltip documentation updated.\n[M] Panzer glass block: Ambient occlusion and light opacity tuned.\n[M] Stairs: Light opacity tuned.\n[A] Tooltip documentation added for mod stairs.\n[E] Horizontal steel double-T support beam (config:experimental).", @@ -30,6 +31,6 @@ }, "promos": { "1.12.2-recommended": "1.0.3", - "1.12.2-latest": "1.0.4-b6" + "1.12.2-latest": "1.0.4-b7" } } \ No newline at end of file diff --git a/1.12/readme.md b/1.12/readme.md index db6b94a..b762a61 100644 --- a/1.12/readme.md +++ b/1.12/readme.md @@ -10,6 +10,9 @@ Mod sources for Minecraft version 1.12.2. ---- ## Revision history + - v1.0.4-b7 [F] Fixed recipe loading issue is IE is not installed. + [M] Valves support IE pressureized fluid transfer. + - v1.0.4-b6 [A] Added redstone controlled fluid valve. [A] Added redstone controlled analog fluid valve. [M] Check valve recipe adapted (thanks majijn). diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorPipeValve.java b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorPipeValve.java index b6577a1..76cf48b 100644 --- a/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorPipeValve.java +++ b/1.12/src/main/java/wile/engineersdecor/blocks/BlockDecorPipeValve.java @@ -17,6 +17,7 @@ import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.MathHelper; import net.minecraft.world.IBlockAccess; @@ -42,9 +43,9 @@ public class BlockDecorPipeValve extends BlockDecorDirected public static void on_config(int container_size_decl, int redstone_slope) { - BTileEntity.fluid_capacity_mb = MathHelper.clamp(container_size_decl, 1, 10000); + BTileEntity.fluid_maxflow_mb = MathHelper.clamp(container_size_decl, 1, 10000); BTileEntity.redstone_flow_slope_mb = MathHelper.clamp(redstone_slope, 1, 10000); - ModEngineersDecor.logger.info("Config pipe valve: maxflow:" + BTileEntity.fluid_capacity_mb + "mb, redstone amp:" + BTileEntity.redstone_flow_slope_mb + "mb/sig"); + ModEngineersDecor.logger.info("Config pipe valve: maxflow:" + BTileEntity.fluid_maxflow_mb + "mb, redstone amp:" + BTileEntity.redstone_flow_slope_mb + "mb/sig"); } public BlockDecorPipeValve(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB) @@ -130,7 +131,7 @@ public class BlockDecorPipeValve extends BlockDecorDirected public static class BTileEntity extends TileEntity implements IFluidHandler, IFluidTankProperties, ICapabilityProvider { private static final BackFlowHandler back_flow_handler_ = new BackFlowHandler(); - protected static int fluid_capacity_mb = 1000; // likely also the max flow per tick + protected static int fluid_maxflow_mb = 1000; protected static int redstone_flow_slope_mb = 1000/15; private final IFluidTankProperties[] fluid_props_ = {this}; private EnumFacing block_facing_ = EnumFacing.NORTH; @@ -207,11 +208,19 @@ public class BlockDecorPipeValve extends BlockDecorDirected if(rs <= 0) return 0; if(((block_config_ & CFG_ANALOG) != 0) && (rs < 15)) resource.amount = MathHelper.clamp(rs * redstone_flow_slope_mb, 1, resource.amount); } + FluidStack res = resource.copy(); + if(res.amount > fluid_maxflow_mb) res.amount = fluid_maxflow_mb; + if(res.amount > 50) { + // forward pressureized tag + if(res.tag==null) res.tag = new NBTTagCompound(); + res.tag.setBoolean("pressurized", true); + } final IFluidHandler fh = forward_fluid_handler(); if(fh==null) return 0; filling_ = true; // in case someone does not check the cap, but just "forwards back" what is beeing filled right now. - int n_filled = forward_fluid_handler().fill(resource, doFill); + int n_filled = forward_fluid_handler().fill(res, doFill); filling_ = false; + //if(n_filled > 0) System.out.println("F:" + resource.amount + "->" + n_filled); return n_filled; } @@ -237,7 +246,7 @@ public class BlockDecorPipeValve extends BlockDecorDirected { return null; } public int getCapacity() - { return fluid_capacity_mb; } + { return 10000; } @Override public boolean canFill() @@ -271,5 +280,6 @@ public class BlockDecorPipeValve extends BlockDecorDirected @Override public boolean canFillFluidType(FluidStack fluidStack) { return false; } @Override public boolean canDrainFluidType(FluidStack fluidStack) { return false; } } + } } diff --git a/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java b/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java index 0593125..de65884 100644 --- a/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java +++ b/1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java @@ -40,46 +40,46 @@ public class ModBlocks //-- Blocks //-------------------------------------------------------------------------------------------------------------------- - public static final BlockDecorFull CLINKER_BRICK_BLOCK = new BlockDecorFull("clinker_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE); + public static final BlockDecorFull CLINKER_BRICK_BLOCK = new BlockDecorFull("clinker_brick_block", 0, Material.ROCK, 2f, 15f, SoundType.STONE); public static final BlockDecorStairs CLINKER_BRICK_STAIRS = new BlockDecorStairs("clinker_brick_stairs", CLINKER_BRICK_BLOCK.getDefaultState()); - public static final BlockDecorWall CLINKER_BRICK_WALL = new BlockDecorWall("clinker_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE); + public static final BlockDecorWall CLINKER_BRICK_WALL = new BlockDecorWall("clinker_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 2f, 20f, SoundType.STONE); - public static final BlockDecorFull SLAG_BRICK_BLOCK = new BlockDecorFull("slag_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE); + public static final BlockDecorFull SLAG_BRICK_BLOCK = new BlockDecorFull("slag_brick_block", 0, Material.ROCK, 2f, 15f, SoundType.STONE); public static final BlockDecorStairs SLAG_BRICK_STAIRS = new BlockDecorStairs("slag_brick_stairs", SLAG_BRICK_BLOCK.getDefaultState()); - public static final BlockDecorWall SLAG_BRICK_WALL = new BlockDecorWall("slag_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE); + public static final BlockDecorWall SLAG_BRICK_WALL = new BlockDecorWall("slag_brick_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 2f, 15f, SoundType.STONE); - public static final BlockDecorFull REBAR_CONCRETE_BLOCK = new BlockDecorFull("rebar_concrete", 0, Material.ROCK, 8f, 2000f, SoundType.STONE); + public static final BlockDecorFull REBAR_CONCRETE_BLOCK = new BlockDecorFull("rebar_concrete", 0, Material.ROCK, 5f, 2000f, SoundType.STONE); public static final BlockDecorStairs REBAR_CONCRETE_STAIRS = new BlockDecorStairs("rebar_concrete_stairs", REBAR_CONCRETE_BLOCK.getDefaultState()); - public static final BlockDecorWall REBAR_CONCRETE_WALL = new BlockDecorWall("rebar_concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 2000f, SoundType.STONE); - public static final BlockDecorFull REBAR_CONCRETE_TILE = new BlockDecorFull("rebar_concrete_tile", 0, Material.ROCK, 8f, 2000f, SoundType.STONE); + public static final BlockDecorWall REBAR_CONCRETE_WALL = new BlockDecorWall("rebar_concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 5f, 2000f, SoundType.STONE); + public static final BlockDecorFull REBAR_CONCRETE_TILE = new BlockDecorFull("rebar_concrete_tile", 0, Material.ROCK, 5f, 2000f, SoundType.STONE); public static final BlockDecorStairs REBAR_CONCRETE_TILE_STAIRS = new BlockDecorStairs("rebar_concrete_tile_stairs", REBAR_CONCRETE_TILE.getDefaultState()); - public static final BlockDecorWall CONCRETE_WALL = new BlockDecorWall("concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 8f, 50f, SoundType.STONE); + public static final BlockDecorWall CONCRETE_WALL = new BlockDecorWall("concrete_wall", BlockDecor.CFG_DEFAULT, Material.ROCK, 5f, 20f, SoundType.STONE); - public static final BlockDecorLadder METAL_RUNG_LADDER = new BlockDecorLadder("metal_rung_ladder", 0, Material.IRON, 1.0f, 25f, SoundType.METAL); - public static final BlockDecorLadder METAL_RUNG_STEPS = new BlockDecorLadder("metal_rung_steps", 0, Material.IRON, 1.0f, 25f, SoundType.METAL); - public static final BlockDecorLadder TREATED_WOOD_LADDER = new BlockDecorLadder("treated_wood_ladder", 0, Material.WOOD, 1.0f, 15f, SoundType.WOOD); + public static final BlockDecorLadder METAL_RUNG_LADDER = new BlockDecorLadder("metal_rung_ladder", 0, Material.IRON, 1.0f, 20f, SoundType.METAL); + public static final BlockDecorLadder METAL_RUNG_STEPS = new BlockDecorLadder("metal_rung_steps", 0, Material.IRON, 1.0f, 20f, SoundType.METAL); + public static final BlockDecorLadder TREATED_WOOD_LADDER = new BlockDecorLadder("treated_wood_ladder", 0, Material.WOOD, 1.0f, 10f, SoundType.WOOD); public static final BlockDecorGlassBlock PANZERGLASS_BLOCK = new BlockDecorGlassBlock("panzerglass_block", 0, Material.GLASS, 0.8f, 2000f, SoundType.GLASS); public static final BlockDecorStraightPole TREATED_WOOD_POLE = new BlockDecorStraightPole( "treated_wood_pole", BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT, - Material.WOOD, 1.0f, 15f, SoundType.WOOD, + Material.WOOD, 1.0f, 10f, SoundType.WOOD, ModAuxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16) ); public static final BlockDecorStraightPole TREATED_WOOD_POLE_HEAD = new BlockDecorStraightPole( "treated_wood_pole_head", BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME, - Material.WOOD, 1.0f, 15f, SoundType.WOOD, + Material.WOOD, 1.0f, 10f, SoundType.WOOD, ModAuxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16) ); public static final BlockDecorStraightPole TREATED_WOOD_POLE_SUPPORT = new BlockDecorStraightPole( "treated_wood_pole_support", BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_FLIP_PLACEMENT_IF_SAME, - Material.WOOD, 1.0f, 15f, SoundType.WOOD, + Material.WOOD, 1.0f, 10f, SoundType.WOOD, ModAuxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16) ); @@ -142,21 +142,21 @@ public class ModBlocks public static final BlockDecorDirected TREATED_WOOD_WINDOWSILL = new BlockDecorDirected( "treated_wood_windowsill", BlockDecor.CFG_CUTOUT|BlockDecor.CFG_HORIZIONTAL|BlockDecor.CFG_FACING_PLACEMENT, - Material.WOOD, 1.0f, 15f, SoundType.WOOD, + Material.WOOD, 1.0f, 10f, SoundType.WOOD, ModAuxiliaries.getPixeledAABB(0.5,15,10.5, 15.5,16,16) ); public static final BlockDecorWindow TREATED_WOOD_WINDOW = new BlockDecorWindow( "treated_wood_window", BlockDecor.CFG_TRANSLUCENT|BlockDecor.CFG_LOOK_PLACEMENT, - Material.WOOD, 0.5f, 15f, SoundType.GLASS, + Material.WOOD, 0.5f, 10f, SoundType.GLASS, ModAuxiliaries.getPixeledAABB(0,0,7, 16,16,9) ); public static final BlockDecorWindow STEEL_FRAMED_WINDOW = new BlockDecorWindow( "steel_framed_window", BlockDecor.CFG_TRANSLUCENT|BlockDecor.CFG_LOOK_PLACEMENT, - Material.IRON, 0.5f, 30f, SoundType.GLASS, + Material.IRON, 0.5f, 15f, SoundType.GLASS, ModAuxiliaries.getPixeledAABB(0,0,7.5, 16,16,8.5) ); @@ -184,21 +184,21 @@ public class ModBlocks public static final BlockDecorPipeValve STRAIGHT_CHECK_VALVE = new BlockDecorPipeValve( "straight_pipe_valve", BlockDecor.CFG_CUTOUT|BlockDecor.CFG_FACING_PLACEMENT, - Material.IRON, 1.0f, 15f, SoundType.METAL, + Material.IRON, 0.5f, 15f, SoundType.METAL, ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16) ); public static final BlockDecorPipeValve STRAIGHT_REDSTONE_VALVE = new BlockDecorPipeValve( "straight_pipe_valve_redstone", BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_REDSTONE_CONTROLLED, - Material.IRON, 1.0f, 15f, SoundType.METAL, + Material.IRON, 0.5f, 15f, SoundType.METAL, ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16) ); public static final BlockDecorPipeValve STRAIGHT_REDSTONE_ANALOG_VALVE = new BlockDecorPipeValve( "straight_pipe_valve_redstone_analog", BlockDecor.CFG_FACING_PLACEMENT|BlockDecor.CFG_REDSTONE_CONTROLLED|BlockDecor.CFG_ANALOG, - Material.IRON, 1.0f, 15f, SoundType.METAL, + Material.IRON, 0.5f, 15f, SoundType.METAL, ModAuxiliaries.getPixeledAABB(4,4,0, 12,12,16) ); diff --git a/1.12/src/main/resources/assets/engineersdecor/recipes/_constants.json b/1.12/src/main/resources/assets/engineersdecor/recipes/_constants.json index a83c680..600b3bc 100644 --- a/1.12/src/main/resources/assets/engineersdecor/recipes/_constants.json +++ b/1.12/src/main/resources/assets/engineersdecor/recipes/_constants.json @@ -107,6 +107,9 @@ "name": "plateAnyMetal" }, { + "conditions": [ + { "type": "minecraft:item_exists", "item": "immersiveengineering:material" } + ], "ingredient": [ { "item": "immersiveengineering:material", "data": 8 }, { "item": "immersiveengineering:material", "data": 9 } @@ -114,6 +117,9 @@ "name": "anyMechanicalComponent" }, { + "conditions": [ + { "type": "minecraft:item_exists", "item": "immersiveengineering:connector" } + ], "ingredient": [ { "item": "immersiveengineering:connector", "data": 12 }, { "item": "immersiveengineering:connector", "data": 13 } diff --git a/meta/update.json b/meta/update.json index f66de8b..c1d53b8 100644 --- a/meta/update.json +++ b/meta/update.json @@ -1,6 +1,7 @@ { "homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/", "1.12.2": { + "1.0.4-b7": "[F] Fixed recipe loading issue is IE is not installed.\n[M] Valves support IE pressureized fluid transfer.", "1.0.4-b6": "[A] Added redstone controlled fluid valve.\n[A] Added redstone controlled analog fluid valve.\n[M] Check valve recipe adapted (thanks majijn).", "1.0.4-b5": "[A] Horizontal steel double-T support beam with pole connections.\n[A] Added fluid pipe check valve (straight, conducts only one way).\n[M] Internal registration block/te handling changed.", "1.0.4-b4": "[F] Clinker/slag brick wall side cullfacing disabled to prevent texture leaks when connecting to concrete walls.\n[F] Unused treated wood pole texture regions filled (optifine).\n[F] Using mipped cutout format for window multi-layer model (issue #19, thanks rixmswey for reporting and details).\n[M] Recipe tuning, added standalone recipe for all mod blocks.\n[M] In-game CTRL-SHIFT tooltip documentation updated.\n[M] Panzer glass block: Ambient occlusion and light opacity tuned.\n[M] Stairs: Light opacity tuned.\n[A] Tooltip documentation added for mod stairs.\n[E] Horizontal steel double-T support beam (config:experimental).", @@ -39,7 +40,7 @@ }, "promos": { "1.12.2-recommended": "1.0.3", - "1.12.2-latest": "1.0.4-b6", + "1.12.2-latest": "1.0.4-b7", "1.13.2-recommended": "", "1.13.2-latest": "1.0.4-b3" }