Captains log

This commit is contained in:
simibubi 2023-05-13 12:37:52 +02:00
parent 3f31353fea
commit 2b02e56052
4 changed files with 158 additions and 19 deletions

138
## Changes.md Normal file
View File

@ -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

View File

@ -608,7 +608,7 @@ public abstract class Contraption {
blockstate = blockstate.setValue(RedstoneContactBlock.POWERED, true); blockstate = blockstate.setValue(RedstoneContactBlock.POWERED, true);
if (AllBlocks.POWERED_SHAFT.has(blockstate)) if (AllBlocks.POWERED_SHAFT.has(blockstate))
blockstate = BlockHelper.copyProperties(blockstate, AllBlocks.SHAFT.getDefaultState()); 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); blockstate = blockstate.setValue(ControlsBlock.OPEN, true);
if (blockstate.hasProperty(SlidingDoorBlock.VISIBLE)) if (blockstate.hasProperty(SlidingDoorBlock.VISIBLE))
blockstate = blockstate.setValue(SlidingDoorBlock.VISIBLE, false); blockstate = blockstate.setValue(SlidingDoorBlock.VISIBLE, false);

View File

@ -21,57 +21,57 @@ public class PonderTag implements ScreenElement {
public static final PonderTag 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") .defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere")
.addToIndex(), .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") .defaultLang("Kinetic Sources", "Components which generate Rotational Force")
.addToIndex(), .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") .defaultLang("Kinetic Appliances", "Components which make use of Rotational Force")
.addToIndex(), .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") .defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids")
.addToIndex(), .addToIndex(),
LOGISTICS = create("logistics").item(Blocks.CHEST, true, false) LOGISTICS = create("logistics").item(Blocks.CHEST)
.defaultLang("Item Transportation", "Components which help moving items around") .defaultLang("Item Transportation", "Components which help moving items around")
.addToIndex(), .addToIndex(),
REDSTONE = create("redstone").item(Items.REDSTONE, true, false) REDSTONE = create("redstone").item(Items.REDSTONE)
.defaultLang("Logic Components", "Components which help with redstone engineering") .defaultLang("Logic Components", "Components which help with redstone engineering")
.addToIndex(), .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"), .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") .defaultLang("Creative Mode", "Components not usually available for Survival Mode")
.addToIndex(), .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", .defaultLang("Movement Anchors",
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways") "Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways")
.addToIndex(), .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", .defaultLang("Contraption Actors",
"Components which expose special behaviour when attached to a moving contraption") "Components which expose special behaviour when attached to a moving contraption")
.addToIndex(), .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", .defaultLang("Block Attachment Utility",
"Tools and Components used to assemble structures moved as an animated Contraption") "Tools and Components used to assemble structures moved as an animated Contraption")
.addToIndex(), .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", .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."), "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", .defaultLang("Targets for Mechanical Arms",
"Components which can be selected as inputs or outputs to the Mechanical Arm"), "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") "Components that have been added or changed significantly in the latest versions of Create")
.addToIndex(), .addToIndex(),
DISPLAY_SOURCES = create("display_sources").item(AllBlocks.DISPLAY_LINK.get(), true, false) DISPLAY_SOURCES = create("display_sources").item(AllBlocks.DISPLAY_LINK.get(), true, true)
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
.defaultLang("Sources for Display Links", .defaultLang("Sources for Display Links",
"Components or Blocks which offer some data that can be read with a Display Link"), "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) DISPLAY_TARGETS = create("display_targets").item(AllBlocks.DISPLAY_LINK.get(), true, true)
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
.defaultLang("Targets for Display Links", .defaultLang("Targets for Display Links",
"Components or Blocks which can process and display the data received from a Display Link"); "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) { public PonderTag item(ItemLike item) {
return this.item(item, true, true); return this.item(item, true, false);
} }
@Override @Override

View File

@ -4,6 +4,7 @@ import java.text.NumberFormat;
import java.util.Locale; import java.util.Locale;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth;
public class LangNumberFormat { public class LangNumberFormat {
@ -25,6 +26,8 @@ public class LangNumberFormat {
} }
public static String format(double d) { public static String format(double d) {
if (Mth.equal(d, 0))
d = 0;
return numberFormat.get() return numberFormat.get()
.format(d) .format(d)
.replace("\u00A0", " "); .replace("\u00A0", " ");