From 2b02e560522aa1ceb9e01cd0b35983dccf1e6d69 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 13 May 2023 12:37:52 +0200 Subject: [PATCH] Captains log --- ## Changes.md | 138 ++++++++++++++++++ .../structureMovement/Contraption.java | 2 +- .../create/foundation/ponder/PonderTag.java | 34 ++--- .../foundation/utility/LangNumberFormat.java | 3 + 4 files changed, 158 insertions(+), 19 deletions(-) create mode 100644 ## Changes.md diff --git a/## Changes.md b/## Changes.md new file mode 100644 index 000000000..b6e11f765 --- /dev/null +++ b/## Changes.md @@ -0,0 +1,138 @@ +## Additions + +- Netherite Backtank +- Netherite Diving Helmet and Boots +- Contraption Controls +- Elevator Pulley +- Copycat Panels and Copycat Steps +- Block of Andesite Alloy +- Block of Industrial Iron +- Large Water Wheel +- Mechanical Roller +- Andesite, Brass and Copper Doors +- Andesite, Brass and Copper Bars +- Andesite, Brass and Copper Scaffolding +- Clipboard +- Mangrove Windows (1.19) + +## Changes + +- Overhauled models and textures of Andesite & Brass components (Kryppers) +- Reworked textures of colored blocks such as seats and sails (dani) +- New filter sprites (vectorwing) +- Valve handles can now be used to precisely turn mechanical bearings by a set angle +- Pulley ropes are now climbable +- Lowered hitbox of seats for improved traversability inside contraptions +- Improved safety for players standing on vertically moving contraptions +- Pulley contraptions will now make an effort to place remote players at y values sensible to the client +- Fixed seated entities on rotating contraptions not rendering at the correct location +- Deployers no longer fail to activate in chunks claimed or protected by the player that placed them +- Fixed couplings, schematics and in-world overlays not rendering correctly at coordinates far from the origin +- Fixed Bearings, Pistons, Pulleys and Gantries powered by a Sequenced Gearshift not moving precisely to its instructions at high speeds +- Minecart contraptions no longer visually jump to a location when stalled +- Mechanical bearings now snap to a rounded angle when stopped +- Contraption storage now accepts more chests and barrels from other mods +- Players can now open chests and barrels on assembled contraptions +- Mechanical Pumps no longer reverse direction based on kinetic input +- Fixed pipe connections pulling fluids with half the speed compared to a directly attached pump +- Substantially increased speed of visual flow propagation inside pipe networks +- Portable storage interfaces now stall for longer after an exchange has happened, and shorter otherwise +- Single train track blocks with slopes connected on either side will angle themselves to create a smoother ascend across both +- Multiple pulleys can now attach to contraptions in a synchronised group +- Display Boards now update text instantaneously at high input rpm +- Diving helmets now always grant aqua affinity +- Diving helmets can no longer be enchanted with aqua affinity +- Water wheel fins are no longer directional +- Water wheels now only have one speed level +- Water wheels can now take the appearance of any reasonably implemented wood type +- Added sided door control options to elevator contact and train station UI +- Liquid can no longer spread perpendicularly on top of water wheels +- Overhauled UX of scroll values and item filtering +- Filtered item extraction can now be configured to pull "up to x items" per operation +- Connected textures now use and apply the getAppearance() standard by Forge, allowing them to connect across other mods' facades, etc. (1.19) +- Boiler status now highlights information about water flow when insufficient +- The majority of in-world options no longer require a wrench +- Chutes can now be encased in Industrial Iron Blocks +- Chutes are now less prone to resetting shape when moved or rotated +- Moved metal block variants to Building Blocks tab +- Changed stonecutting ingredient of metal block variants from sheet to ingot +- Base stone blocks can now be stonecut back from their cut variants +- Fixed track placement allowing an s-bend between two sloped track pieces in specific arrangements +- Fixed funnels losing filters when changing between types +- New randomised textures for natural palette stone types (Kryppers) +- Readjusted palette stone generation to use taller layers +- World generation now places fewer stone type veins by default +- Fixed lava fans voiding items that have smoking & smelting recipes with different outputs +- Filter items now filter for their own item type if left empty +- Valve handles no longer create stress config entries for each dyed variant +- Place near initial angle mode on bearings now has a smaller interval considered 'near' +- Players can now take items from saws via right-click +- Item Drains now accept dropped items as input +- Train track placement overlay now explicitly mentions the ctrl key +- Fixed Mechanical Saws not rendering as animated when using rubidium +- Fixed a ui element of the Station Screen rendering behind the background +- Belts printed instantly or via cannon now retain the correct type of casing +- Scheduled trains no longer slow down for slight ascends/descents on a straight track +- Fixed saplings and other non-collidables sticking to chassis or super glue +- Encased Fluid Pipes no longer z-fight on open pipe faces +- Valve handles now turn twice as quickly +- Bearings no longer have the angle-indicating nook on their block +- Depot hitbox is now a simple cuboid +- Fixed belts encased with andesite briefly showing brass textures +- Fixed Filters and Attribute Filters not stacking with unmodified, equivalent stacks +- Fixed Attribute Filters saving the name tag preview item in their data +- Filters and Schedules can now be reset via crafting +- Renamed Sails to Windmill Sails +- Crushing gold ore now yields more experience nuggets +- Fixed valve pipes sometimes not rotating their indicator fully +- Horizontal, encased belts now render a support structure when solid blocks are above them +- Added placement assist for mechanical drills, saws and deployers +- Mechanical Belts can now be waterlogged +- Depots and Ejectors can now be Waterlogged +- Chutes and Funnels can now be Waterlogged +- Fixed upright mechanical saws only able to be oriented in two directions +- Deployers now have their filter slot on the side of the block +- Deployers can now be rotated by wrenching them near the edge of the front face +- Deployers now set filters on blocks only by targeting any location on a correct side +- Fixed Schematics loaded for deployer printing not rotating block entity contents +- Added tripwire to #movable_empty_collider +- Renamed Stockpile Switch to Threshold Switch +- Renamed Content Observer to Smart Observer +- Smart observer and threshold switch can now be oriented to face blocks above or below them +- Smart observer will now also emit redstone when the block in front of it matches its filter +- Fixed non-vanilla signs not accepted as valid display targets +- Brass tunnels with no distribution behaviour no longer show the mode switcher +- Used more contrasting colours for diode and tunnel value inputs +- Fixed crash when hose pulley cannot find reference fluid for infinite draining +- Clipboards can now be used to transfer settings between blocks +- Clipboards can now be used to manually write to Display Boards and Nixie Tubes +- Clipboards can now be used as Material Checklists in the Schematicannon +- Fixed and edited existing tooltips and ponder scenes to include behavioural changes in 0.5.1 +- New ponder scenes for Smart Observer, Threshold Switch, Elevator Pulley, Contraption Controls and Mechanical Rollers +- Fixed ponder overlay text rendering with wonky pixels +- Added a ponder category for recently added/changed blocks +- Renamed Filter to List Filter +- Deployers can now apply filters to a Redstone link with less required precision +- Bezier track segments now render with a slight angle to reduce z-fighting +- Fixed offset shaft rotation on encased large cogwheels +- Fixed Smart Fluid Pipe not dropping filter when broken +- Placards and Creative Crates will no longer hold on to special nbt content (except potion data, damage, enchants) of the contained item when imported via Schematicannon +- Schematicannons can no longer print mobs +- Fixed item frames not requiring an exact nbt match for printed contents +- Players can now sneak while using exp nuggets to only consume one item at a time +- Minecart contraption items can no longer be placed in container items like toolboxes or shulkers (configurable) +- Implemented ComputerCraft interaction for Speed Controllers, Display Links, Speedometers, Stressometers, Sequenced Gearshifts and Train Stations (caelwarner) +- Hand crank no longer drains hunger when using the extendo grip (Xstoudi) +- Fixed Encased Chain Drives not reacting to block rotation and mirroring correctly +- Open Ended Pipes now correctly handle Builder's Tea (NerdsOfAFeather) +- Added Config entry for brass tunnel distribution cooldown (Walle123) +- API for custom bogey & track types (Rabbitminers, techno-sam) +- Fixed server crash caused by Gantry Contraptions assembling (Lucasmellof) +- Fix "Lighter than air" fluids displayed incorrectly in spouts (cakeGit) +- Added rotate and mirror methods to Fluid Pipes (xieve) +- Chocolate & Honey fluid fog distance is now configurable (radimous) +- Added a TrackGraph merge event (DaComputerNerd717) +- Fixed players dismounting when trains get assembled (Equinoxxe) +- Added GameTests (TropheusJ) +- Added armor tags (NerdsOfAFeather) +- Major updates now release as patch A \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java index ff378d5c9..9a13bff12 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java @@ -608,7 +608,7 @@ public abstract class Contraption { blockstate = blockstate.setValue(RedstoneContactBlock.POWERED, true); if (AllBlocks.POWERED_SHAFT.has(blockstate)) blockstate = BlockHelper.copyProperties(blockstate, AllBlocks.SHAFT.getDefaultState()); - if (blockstate.getBlock() instanceof ControlsBlock) + if (blockstate.getBlock() instanceof ControlsBlock && getType() == ContraptionType.CARRIAGE) blockstate = blockstate.setValue(ControlsBlock.OPEN, true); if (blockstate.hasProperty(SlidingDoorBlock.VISIBLE)) blockstate = blockstate.setValue(SlidingDoorBlock.VISIBLE, false); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java index 2e55ae836..5c03e397d 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderTag.java @@ -21,57 +21,57 @@ public class PonderTag implements ScreenElement { public static final PonderTag - KINETIC_RELAYS = create("kinetic_relays").item(AllBlocks.COGWHEEL.get(), true, false) + KINETIC_RELAYS = create("kinetic_relays").item(AllBlocks.COGWHEEL.get()) .defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere") .addToIndex(), - KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false) + KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get()) .defaultLang("Kinetic Sources", "Components which generate Rotational Force") .addToIndex(), - KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false) + KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get()) .defaultLang("Kinetic Appliances", "Components which make use of Rotational Force") .addToIndex(), - FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false) + FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get()) .defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids") .addToIndex(), - LOGISTICS = create("logistics").item(Blocks.CHEST, true, false) + LOGISTICS = create("logistics").item(Blocks.CHEST) .defaultLang("Item Transportation", "Components which help moving items around") .addToIndex(), - REDSTONE = create("redstone").item(Items.REDSTONE, true, false) + REDSTONE = create("redstone").item(Items.REDSTONE) .defaultLang("Logic Components", "Components which help with redstone engineering") .addToIndex(), - DECORATION = create("decoration").item(Items.ROSE_BUSH, true, false) + DECORATION = create("decoration").item(Items.ROSE_BUSH) .defaultLang("Aesthetics", "Components used mostly for decorative purposes"), - CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false) + CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get()) .defaultLang("Creative Mode", "Components not usually available for Survival Mode") .addToIndex(), - MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false) + MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get()) .defaultLang("Movement Anchors", "Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways") .addToIndex(), - CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false) + CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get()) .defaultLang("Contraption Actors", "Components which expose special behaviour when attached to a moving contraption") .addToIndex(), - CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get(), true, false) + CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get()) .defaultLang("Block Attachment Utility", "Tools and Components used to assemble structures moved as an animated Contraption") .addToIndex(), - SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get()) + SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get(), true, true) .defaultLang("Sails for Windmill Bearings", "Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."), - ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get()) + ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get(), true, true) .defaultLang("Targets for Mechanical Arms", "Components which can be selected as inputs or outputs to the Mechanical Arm"), @@ -84,13 +84,11 @@ public class PonderTag implements ScreenElement { "Components that have been added or changed significantly in the latest versions of Create") .addToIndex(), - DISPLAY_SOURCES = create("display_sources").item(AllBlocks.DISPLAY_LINK.get(), true, false) - .item(AllBlocks.DISPLAY_LINK.get(), false, true) + DISPLAY_SOURCES = create("display_sources").item(AllBlocks.DISPLAY_LINK.get(), true, true) .defaultLang("Sources for Display Links", "Components or Blocks which offer some data that can be read with a Display Link"), - DISPLAY_TARGETS = create("display_targets").item(AllBlocks.DISPLAY_LINK.get(), true, false) - .item(AllBlocks.DISPLAY_LINK.get(), false, true) + DISPLAY_TARGETS = create("display_targets").item(AllBlocks.DISPLAY_LINK.get(), true, true) .defaultLang("Targets for Display Links", "Components or Blocks which can process and display the data received from a Display Link"); @@ -158,7 +156,7 @@ public class PonderTag implements ScreenElement { } public PonderTag item(ItemLike item) { - return this.item(item, true, true); + return this.item(item, true, false); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java b/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java index e96b33e50..79a0f1dfa 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java +++ b/src/main/java/com/simibubi/create/foundation/utility/LangNumberFormat.java @@ -4,6 +4,7 @@ import java.text.NumberFormat; import java.util.Locale; import net.minecraft.client.Minecraft; +import net.minecraft.util.Mth; public class LangNumberFormat { @@ -25,6 +26,8 @@ public class LangNumberFormat { } public static String format(double d) { + if (Mth.equal(d, 0)) + d = 0; return numberFormat.get() .format(d) .replace("\u00A0", " ");