mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-10-22 09:27:39 +00:00
Update to Minecraft 1.21.5
0/10, would not recommend. Though increasingly feeling that about modding as a whole — really not feeling as emotionally rewarding as it once did. Server-side changes are well, not simple, but relatively straightforward: - Block removal code is now called before the BE is removed, not after. - Monitors now need to track if they've being removed or not again. - Turtle drop consuming code no longer tries to insert items into the turtle immediately, instead waiting 'til the action is complete. Otherwise if the turtle gets destroyed mid-action (e.g. the block explodes), then it tries to insert its drops into itself! We previously guarded against this by checking if the turtle BE had been removed, but obviously this no longer works, so just easier to shift the insertion. - The interface for reading/writing NBT has been overhauled. It has native "getOr" and codec support (nice!) but also has been changed again in the latest snapshot (less nice!). - The dye item component no longer has a "hide tooltip" flag. We now hide the tooltip with a default component instead. - Related to the above, we can now do all the tooltip-related things we needed to do with vanilla's TooltipProvider. This did require splitting NonNegativeId into subclasses for disk/computer, but otherwise is quite nice. - Some changes to model datagen. Annoying, but boring. - Game tests got a complete overhaul. I'm keeping the interface the same for now (@GameTest), because I'm blowed if I'm datagenning test instances :p. If it's any consolation, both NF and Fabric are doing this too. Client changes are a bit more involved though: - VertexBuffer has been entirely removed. We now construct the GpuBuffer directly. - BakedModel is gone! Oh this caused so much suffering for turtle models. I ended up rewriting the whole system in processes (which then involved PRs to NF and Fabric). Rather than returning a TransformedModel, turtle models are now responsible for rendering the model. This may see another rewrite in the future. I'd like to switch to JSON-based turtle models (like item models), but that's blocked on some changes to NF right now. Sorry to all add-on devs, I know this is a big change.
This commit is contained in:
@@ -14,18 +14,18 @@ import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
/**
|
||||
* This event is fired to register {@link TurtleUpgradeModeller}s for a mod's {@linkplain TurtleUpgradeType turtle
|
||||
* This event is fired to register {@link TurtleUpgradeModel}s for a mod's {@linkplain TurtleUpgradeType turtle
|
||||
* upgrades}.
|
||||
* <p>
|
||||
* This event is fired during the initial resource load. Registries will be frozen, but mods may not be fully
|
||||
* This event is fired during the initial mod construction. Registries will be frozen, but mods may not be fully
|
||||
* initialised at this point (i.e. {@link FMLCommonSetupEvent} or {@link FMLClientSetupEvent} may not have been
|
||||
* dispatched). Subscribers should be careful not to
|
||||
* dispatched).
|
||||
*/
|
||||
public class RegisterTurtleModellersEvent extends Event implements IModBusEvent, RegisterTurtleUpgradeModeller {
|
||||
private final RegisterTurtleUpgradeModeller dispatch;
|
||||
public class RegisterTurtleModelEvent extends Event implements IModBusEvent, RegisterTurtleUpgradeModel {
|
||||
private final RegisterTurtleUpgradeModel dispatch;
|
||||
|
||||
@ApiStatus.Internal
|
||||
public RegisterTurtleModellersEvent(RegisterTurtleUpgradeModeller dispatch) {
|
||||
public RegisterTurtleModelEvent(RegisterTurtleUpgradeModel dispatch) {
|
||||
this.dispatch = dispatch;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class RegisterTurtleModellersEvent extends Event implements IModBusEvent,
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public <T extends ITurtleUpgrade> void register(UpgradeType<T> type, TurtleUpgradeModeller<T> modeller) {
|
||||
public <T extends ITurtleUpgrade> void register(UpgradeType<T> type, TurtleUpgradeModel.Unbaked<? super T> modeller) {
|
||||
dispatch.register(type, modeller);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user