commit a162e18c9c4d91c4020e86cf718d59d3a33b2817
Merge: 374848f97beb61708a
Author: simibubi <31564874+simibubi@users.noreply.github.com>
Date: Fri May 12 13:40:58 2023 +0200
Merge branch 'mc1.18/dev' into mc1.18/computercraft
commit 374848f978
Author: simibubi <31564874+simibubi@users.noreply.github.com>
Date: Fri May 12 13:22:29 2023 +0200
Compilation dependency toggle
commit b2cd60b619
Merge: 8e1e4e8bdee3a079ba
Author: simibubi <31564874+simibubi@users.noreply.github.com>
Date: Wed May 10 14:37:32 2023 +0200
Merge pull request #4650 from ChristianLW/mc1.18/computercraft
Small tweaks to the wiki pages for ComputerCraft integration
commit ee3a079bac
Author: Christian L.W <bebeu@bebeu.dk>
Date: Thu Apr 13 00:55:20 2023 +0200
Small tweaks to the wiki pages
commit 8e1e4e8bd3
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Mar 13 18:31:56 2023 -0700
Added computer to display source ponder tag
- Added advanced computer to display source ponder tag
- Added missing lang entry for computer display source
commit 952941e5fc
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Mar 13 16:31:16 2023 -0700
Added documentation for train station peripherals and train schedules
- Added in depth documentation for working with train stations and train schedules in Lua
- Fixed small formatting issues in Lua-Rotation-Speed-Controller.md and Lua-Sequenced-Gearshift.md
commit 7f3ca1cfa0
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Mar 13 16:29:05 2023 -0700
Added isTrainEnroute to station peripheral API
- isTrainEnroute checks if a train is currently navigating to the station
- Reworded null station exception to "station is not connected to a track"
- Refactored StationPeripheral#inAssemblyMode to StationPeripheral#isInAssemblyMode
- Added a check to StationPeripheral#disassemble to make sure the station isn't in assembly mode
commit fac1ebcd3f
Author: caelwarner <caelawarner@gmail.com>
Date: Sat Mar 11 16:12:58 2023 -0800
Added documentation for most peripherals
- Lua documentation has been added for all peripherals except the train station (not looking forward to writing that one)
- This documentation will be added to the GitHub wiki pages
commit 3e21996984
Author: caelwarner <caelawarner@gmail.com>
Date: Sat Mar 11 15:54:36 2023 -0800
Updated DisplayLinkPeripheral#write to move cursor to the end of the text
- This change was made to be more inline with ComputerCraft's builtin display API
commit 7141c10025
Author: caelwarner <caelawarner@gmail.com>
Date: Sat Mar 11 11:45:43 2023 -0800
Added isTrainImminent and hasSchedule to train station API
- Added isTrainImminent to check if a train is incoming to the station and hasSchedule to check if the currently present train has a schedule
- Added StationPeripheral#getTrainOrThrow to consolidate repetitive null checks
commit 909484ed5b
Author: caelwarner <caelawarner@gmail.com>
Date: Sat Mar 11 11:15:58 2023 -0800
Added getSchedule to train station lua API
- Added getSchedule which serializes the currently present train's schedule into a lua table
- Refactored StationPeripheral#setSchedule to use a more generic method of serializing NBT tags to lua tables
- Moved schedule entry special data from root tag to "Data"
- Added StringHelper#camelCaseToSnakeCase
- Added variety of put methods to CreateLuaTable
commit 31ad3aa671
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Mar 8 18:22:23 2023 -0800
Extended train station peripheral API
- Train station peripherals can now assemble and disassemble trains, check if the station is in assembly mode, set the assembly mode of the station, get and change the station name, check if a train is present at the station and get and change the currently present train name.
- Refactored StationEditPacket. Moved most of the logic that was previously in StationEditPacket to StationTileEntity. This allows us to call this logic without having to send a packet.
- Made Train#owner nullable. This is needed so that computers can assemble trains. All Train#owner is currently used for is to display the train status to the correct play.
commit 574cd93a89
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Nov 30 00:37:47 2022 -0800
Serialize hasAttachedComputer in ComputerBehaviour
- This eliminates some edge cases were peripherals don't realize they're being controlled by a computer on a world save and load
commit 94e3ed44ad
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Oct 26 16:57:12 2022 -0700
Added ComputerScreen
- ComputerScreen shows that tile entity currently has computers attached and therefore cannot be controlled manually
commit 9afdcaded7
Author: caelwarner <caelawarner@gmail.com>
Date: Thu Oct 20 10:18:37 2022 -0700
Refactored PeripheralBase to SyncedPeripheral
commit 7d47fdcd06
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Oct 19 22:45:47 2022 -0700
Made LuaFunction's final
commit 56a1210fff
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Oct 19 22:39:38 2022 -0700
Created ComputerBehaviour behaviour
- ComputerBehaviour replaces ComputerControllable and SyncedComputerControllable
commit 19d283b923
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Oct 19 16:05:48 2022 -0700
Moved all peripheral classes to computercraft.peripherals package
commit ab18034b98
Author: caelwarner <caelawarner@gmail.com>
Date: Wed Oct 19 15:58:56 2022 -0700
Added Train Station as peripheral
- Train station can set a new auto-schedule for the train currently at the station
- Added CreateLuaTable to add helper functions for working with lua tables
- Added StringHelper util class to convert snake case to camel case
commit 1091f3227c
Author: caelwarner <caelawarner@gmail.com>
Date: Thu Oct 6 21:11:24 2022 -0700
Changed Display Link Peripheral API
- Changed the Display Link Peripheral API to be more in line with the Monitor API
- Added write, setCursorPos, getCursorPos, getSize, isColor, isColour, clearLine
- Removed void writeLine, setLine, writeLines, setLines
commit 18bfb216b1
Author: caelwarner <caelawarner@gmail.com>
Date: Thu Oct 6 02:50:41 2022 -0700
Changed method of checking if a computer attached
- After talking with SquidDev from CC: Tweaked I've changed to monitoring IPeripheral#attach and IPeripheral#detach for changes in the number of computers connected to the network, then updating the client using AttachedComputerPacket
- This works with wired full modems, wired cabled modems and directly connected computers
- Added SyncedPeripheralBase and SyncedComputerControllable for TE's and peripherals that want to be aware of attached computers
commit 96dc4db6dc
Author: caelwarner <caelawarner@gmail.com>
Date: Tue Oct 4 21:11:38 2022 -0700
Sequenced Gearshift screen "greys out" when being controlled by a computer
- This is to stop players from trying to using both the builtin sequencing and a computer to control the Sequenced Gearshift at the same time, leading to undefined behaviour
- The "greyed out" screen should have a message added explaining why it's greyed out.
- Added ComputerControllable#isComputerControlled to check if a tile entity is connected to a modem
commit 9a80781401
Author: caelwarner <caelawarner@gmail.com>
Date: Tue Oct 4 19:36:08 2022 -0700
Added PeripheralBase
commit d404f07319
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Oct 3 20:46:16 2022 -0700
Added invalidateCaps
- Changed setRemoved to invalidateCaps. I don't know why I wasn't just using invalidateCaps from the beginning
commit 654476d9f3
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Oct 3 20:05:25 2022 -0700
Added Rotation Speed Controller and Sequenced Gearshift as peripherals
- Rotation Speed Controller can get and set targetSpeed
- Sequenced Gearshift can rotate by a certain angle and move a certain distance
commit 1420406ab7
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Oct 3 16:38:12 2022 -0700
Added Speedometer and Stressometer as peripherals
- Speedometer can get current speed
- Stressometer can get current stress level as well as network stress capacity
- Made GaugeTileEntity abstract
commit 47b8619d07
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Oct 3 16:17:05 2022 -0700
Refactored peripheralHandler to peripheral
- peripheralHandler was the wrong name. It's just a peripheral.
- Changed peripheral type from "cdl" to "Create_DisplayLink"
- Added equals function to DisplayLinkPeripheral
commit 6591c2d46e
Author: caelwarner <caelawarner@gmail.com>
Date: Mon Oct 3 14:29:04 2022 -0700
ComputerCraft integration for Display Links
- CC computers can now control display links through a variety of functions
- Added ComputerControllable interface to define a tile entity as controllable by CC computers
- Added CC: Tweaked soft dependency
- Fixed Smart Fluid Pipe not dropping filter when broken
- Fixed Clipboard crashing game when removing the first entry of a page
- 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
- Fixed z-fighting on the inner top face of scaffolds
- Added a ponder category for recently added/changed blocks
- Nudged a handful of item transforms
- Fixed offset shaft rotation on encased large cogwheels
- New ponder scenes for Smart Observer, Threshold Switch, Elevator Pulley, Contraption Controls and Mechanical Rollers
- Added #contraption_controlled as a tag for items accepted by the contraption controls slot
- Fixed and edited existing tooltips and ponder scenes to include behavioural changes in 0.5.1
- Fixed ponder overlay text rendering with wonky pixels
- Filter -> List Filter
- Deployers can now apply filters to a Redstone link with less required precision
- Fixed non-vanilla signs not accepted as valid display targets
- Fixed roller not rotating with correct transforms when flywheel is disabled
- 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
- Fixed incorrect vertical textures for encased chutes and industrial iron blocks
Updated the dyeable assets to Dani's textures.
Created Art Reference folder in Assets>Create to hold the Palette Reference image and future style guides.
- Added tripwire to #movable_empty_collider
- Netherite armor can now be upgraded to Netherite diving gear
- Stockpile Switch -> Threshold Switch
- Content Observer -> 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
- Gui touch-ups
- Fixed Deployers accepting held items from the back
- 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
- Netherite diving boots now improve movement abilities in lava
- Lava diving now consumes air from the netherite backtank
- Fixed netherite backtank armor not showing in first person view
- 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
- Renamed sails to windmill sails
- Crushing gold ore now yields more experience nuggets
- Fixed valve handles not able to be picked up using the wrench
- Fixed andesite encased belts spawning brass textured destroy particles
- 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
- Clipboards now copy invertedness of brass diodes
- Clipboards can now copy filters, consuming filter items from the players' inventory
- 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
- Fixed 'upto'-filter amounts not working correctly on inserting belt funnels
- Reduced minimum break speed of drills on trains
- Rollers no longer break blocks beneath the track when no pave material is set or present
- 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
- Fixed brass encased cogwheels using andesite particle and gearbox texture
- Fixed filter items having unusual item camera transforms
- Tweaked placement assist of rollers and copycat steps to match shafts and piston poles
- Valve handles now turn twice as quickly
- Bearings no longer have the angle-indicating nook on their block
- Steam engines no longer have their value input on all faces
- Adjusted weighted ejector value slots to match the model
- Depot hitbox is now a simple cuboid
- Fixed Gearshift and Clutch models looking a little toasted
- Fixed belts encased with andesite briefly showing brass textures
- Fixed lava fans voiding items that have smoking & smelting recipes with different outputs
- Fixed Mechanical Saws not rendering as animated when using rubidium (?)
- Right clicking elevator controls now always prevents block placement actions
- Increased size of the scroll bounding box on elevator controls
- Fixed a ui element of the Station Screen rendering behind the background
- Fixed train controls not rendering handles when loading in with activated contraption controls
- New randomised textures for natural palette stone types
- Readjusted palette stone generation to use taller layers
- World generation now places fewer stone type veins by default
- Can now scroll in the clipboard screen to cycle between pages
- Fixed schematic checklist putting too many entries on a single page
- Fixed funnels losing filters when changing between types
- Fixed smoothed sloped tracks not working across multiple chained slopes
- Improved location transitions of node locations in-between smoothed sloped tracks
- Fixed track placement allowing an s-bend between two sloped track pieces in specific arrangements
- Updated Crushing Wheel obj file
- Fixed classloading issues when flywheel is not present serverside
- Fixed missing texture on the mechanical arm item
- Added back deprecated register method for display behaviours
- Fixed Redstone/Elevator Contacts not switching type after rotated by wrench
- Fixed edited clipboard entry not rendering at correct y in some gui scales
- Fan transparency of copycat blocks now refers to their material
- Fixed new metal bars not being fan transparent
- 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
- Clipboards can now be used to transfer settings between blocks
- Fixed saw filter slot position not matching assets
- Base stone blocks can now be stonecut back from their cut variants
- Mechanical rollers now sync settings between each other in a row
- 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'
- Rollers are now a little easier to place and expand
- 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
- 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
- Added Clipboard recipe and clearing recipe
- Integrated new chute models by Kryppers
- Chutes can now be encased in Industrial Iron Blocks
- Chutes are now less prone to resetting shape when moved or rotated
- Moved metal deco blocks to Building Blocks tab
- Changed stonecutting ingredient of metal deco blocks from sheet to ingot
- Contraption storage now accepts more chests and barrels from other mods
- Players can now open chests and barrels on assembled contraptions
- Added a `#contraption_inventory_deny` block tag as a way to opt out
- Set a default tooltip colour palette
- Moved copper block sets back to creates building blocks tab
- Fixed mechanical belt not appearing in base creative tab
- Fixed items added after world creation not appearing in tabs at the correct slot
- Added missing survival mode recipes for new blocks & items
- 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
- Fixed observers on elevator contacts firing in the wrong order when triggered by manual floor selection
- Portable storage interfaces now stall for longer after an exchange has happened, and shorter otherwise
- Outline buffering now uses Vector3f instead of Vec3 to avoid creating
many objects and double to float casts
- Remove OutlineParams.transformNormals since it was not used
- Rename OutlineParams#disableNormals to disableLineNormals since only
lines have normals disabled
- Fix seats not having descriptions
- Players can now sneak while using exp nuggets to only consume one item at a time
- Fixed brass funnels losing their filter when changing from or to a belt/depot funnel
- Minecart contraption items can no longer be placed in container items like toolboxes or shulkers (configurable)
- Implement #4436, #4419
- Fix some contraption transforms (fixFabricators-of-Create/Create#591)
- Remove AllStitchedTextures
- Organize imports
- Swap jarjar versions and ranges to ensure more reliable version
matching
- Add the jarJarRelease task to the jarjar group
- Can now use trapdoors with copycat panels
- Copycat bars are less likely to cause zfighting
- Fixed waterwheels not updating flow score in some edge cases
- Metal Scaffolding no longer zfights with adjacent non-solid blocks
- Boiler status now highlights information about water flow when insufficient
- SimplePacketBase#handle now accepts Context instead of
Supplier<Context>
- SimplePacketBase#handle now returns boolean, which, if true, calls
Context#setPacketHandled(true)
- Overhauled UX of scroll values and item filtering
- Filtered item extraction can now be configured to pull "up to x items" per operation
- Removed some unused assets
- Fixed inside faces of scaffolds not using the correct textures
- Fixed inside faces of scaffolds not connecting
- Copycat panels now accept iron bars and modded instances of it
- Added andesite, brass and copper bars (textures to be replaced)
- Rename AllBlockPartials -> AllPartialModels
- Make AllPackets.channel private and use getter method instead
- Make config fields in AllConfigs private and use getter methods
instead
- Optimize SyncedBlockEntity#sendData
- Added the Large Water Wheel
- Water wheel fins are no longer directional
- Water wheels now only have two speed levels
- Liquid can no longer spread perpendicularly on top of water wheels (experimental)
- New crushing wheel model
- CustomRenderedItemModel no longer holds partials
- Store partials as PartialModels in static fields in renderers
- Remove all CustomRenderedItemModel subclasses
- Remove CustomRenderedItemModelRenderer#createModel
- CustomRenderedItemModelRenderer is no longer generic
- Store items with custom renderers in CustomRenderedItems instead of
CustomRenderedItemModelRenderer
* Make Encasing utilize Interfaces
* Add Javadoc to IEncasable and IEncased interfaces
* Fix Weird block.block issues (No clue where those came from)
* Final Touch ups for now and made requirement for casing normal Block instead of CasingBlock
* Make requested changes
* Add more parameters for tryEncasing, for use in handleEncasing
Move handleEncasing to Encased Interface for more flexability
* Simplify and organize
- Rename:
- Encasable -> EncasableBlock
- Encased -> EncasedBlock
- EncasableRegistry -> EncasingRegistry
- Remove EncasedBlock#setCasing
- Remove encasedBlock argument from EncasedBlock#handleEncasing
- Add Registrate builder transformer to EncasingRegistry for easy use
---------
Co-authored-by: PepperCode1 <44146161+PepperCode1@users.noreply.github.com>
Can't test it due to java shenanigans, but I think this will work.
It's worth noting that this will only be specific to merging as long as transferAll is. If anything else ends up using transferAll, all that needs to happen is adding an intermediate method that posts the event instead of transferAll doing it, then calls transferAll
- Fix NPE in CarriageSyncData (Unknown cause)
- Fixed crash when applying text to display boards before they initialise
- Fixed incorrect itemstack remainders on Weighted Ejectors
- Other mods' wrenches now always behave like the Create wrench on IWrenchables
- Finish refactor of item description tooltips and kinetic stat tooltips
- Change Palette to use Style instead of ChatFormatting
- Remove old code in TooltipHelper
- Add deferred registration capabilities to AttachedRegistry
- Move creative mode tabs to AllCreativeModeTabs
- Delete IItemHandlerModifiableIntermediate
- Delete StorageInterfaceMovement
- Crashes that occur during schematic loading no longer terminate the server
- Fixed crash when creating new belts at existing chutes/funnels
- Fixed ghost items appearing on non-powered belts when extracted from
- Remove AllSections
- Refactor ItemDescription and parts of TooltipHelper
- Remove deprecated methods
- Rename CreateRegistry to AttachedRegistry
- Rename creative tab classes to match vanilla names
- Fixed Girder Encased Shafts getting ignored by the Schematicannon
- Fixed Belts not offering a valid item handler until their first tick
- NPE Guard in Funnel-Arm interaction
- Fixed crash when curios inventory is configured to have no slots #4174
- Clean up frontier list when hitting unloaded chunks with hose pulley, potentially helps #4225
- Fixed vaults not marking chunks dirty when its inventory changes #4279
- Fixed players kicked for flying when standing on contraptions with a mount
- Fixed compiler errors
- Maximum placement length of tracks and turns are now configurable (#4241)
- Adjusted validation guards and network visualisation to function with longer bends
- Track graph no longer shows nodes and edges on f3 unless configured to
- Kinetic blocks no longer show debug information on f3 unless configured to
- Adjust how and when blaze burners accept fuel
- Fix crash with Optifine when rendering a map
- Fix RenderType being used in common code
- Increment version
- Fixed signals not updating track graph when destroyed
- Added #deployable_drink tag for consumables that are not considered food
- Deployers can no longer consume potions or milk, and will instead feed players in their target area
- Fixed buttons in ponder not registering clicks near the edges #4130
- Fixed config UI tooltips including the empty "." comments used for toml 'formatting'
- filter out null contraptions in ContraptionRenderingWorld
- fix and unify contraption data size estimates
- add config for max contraption size for syncing
- Minecart pickup max is increased if XL Packets is loaded
- Cobwebs and Powdered Snow can now be attached to contraptions
- Fixed Storage Drawers not providing correct fill levels to Stockpile Switches
- Leaves are now considered transparent by encased fans
- Blocks can now be tagged `#create:movable_empty_collider` to support contraption movement even if their collision shape is empty