your current location:首页 > news>ICT and I Minecraft

ICT and I Minecraft

2024-12-12 09:28:04|Myriagame |source:minecraft skins

Overall view

Optimize the progress of obtaining items;

It may destroy the consistency with the original version, but it will not affect the progress of the original version, nor should it affect the vast majority of modules/packets;

Even if it does affect, it should still reach the progress by discarding one of the required items;

At present, there is no known non -compatibility or problem (ISSUE);

All injection of the original code can be disabled in the configuration file;

All changes are only service.

Test results

A real -time test (LIVE TEST) is performed on the independent server. There are 3 active players online on the server. The running custom Forge integrated package has more than 200 modules and [BACAP] Blazeandcave's Advancements Pack (adding more than 950 progress)EssenceIt was collected for one hour of statistics with Spark.

Using ICTERINE, the execution speed of InventoryChangetRigger is increased by about 2.5 times (starting from version 1.1.0), the time it takes about 7.5%of the time, and this number is 20%when Icterine is not used.

Comparison of statistical data using ICTERINE 1.0.0 (about 2 times fast):

Minecraft images

The operating logic of the original InventoryChangetRigger

When the game detects the stacking items in the player's item bar (that is, the items with a stack of internal), it will call the InventoryChangetRigger for this.This change includes picking items, discarding items, discarding the entire stacking items (that is, "empty", which does not necessarily reach stacking upper limit) and moves items in the item bar.

In addition, when you open the container (box, furnace, etc.), the game will think that all the slots in the item bar have changed and call the trigger for all grooves (including empty grooves).

InventoryChangetRigger counts the grooves in the item bar, whether it is empty, non -empty, complete stacking (that is, "one group", reaches the stacking limit).This information can be used for progress triggers, but it has not been used in the original version.

Inventorychangetricger will check the Criterion of the registered progress.

If the criteria are required by the slot number and they do not match the values ​​in the step 2, or the criterion has no item requirements, the guidelines will be skipped.

If there is only one requirement, check the stacking items that have changed according to this requirement.

If the standards have multiple items (for example, "wreckage wrap" requires players to have a lower alloy set), all stacks in the item bar will be checked according to each requirement (but the required requirements that have been met will be removed, and the required requirements will be removed, and the required requirements will be removed and and the requests that haveNo longer check).

Items matching (especially for labels) is very good.However, the game first checks whether the type of item of the player meets the requirements, and then checks other parameters, such as stacking numbers, spells and other NBT data.

Optimize logic of ICTERINE

In step 1, if you discard stacking items or remove them out of the items (such as put in a box), you will no longer call the InventoryChangetRigger.This item can be controlled by the parameter IGNORE_TRIGGGERS_FOR_EMPTIED_STACKS in the configuration file.

Similarly, if the reasons for changing stacking items are reducing stacking numbers (for example, players discard a piece of item from a set of items) instead of clearing, and no longer call InventoryChangetRigger.Can be controlled by Ignore_triggers_FOR_DECREASED_STACKS.

If the stacking number of stacking items increases, but it has not exceeded the threshold of any progress, it will no longer call InventoryChangetRigger.For example: The stacking of soil increases from 52 to 53, but there is no progress in the integration package requires you to get 53 pieces of dirt.Can be controlled by Optimize_triggers_FOR_INCREASED_STACKS.

Modify the game when the player opens the container screen, check the method of changing items so that when you open any container, the game will not consider all stacking items as changing.Can be controlled by initialize_inventory_last_slots.

In step 6, first check whether the changing slot meets any requirements before checking other stacks in the item bar.Can be controlled by Optimize_multiple_predicate_trigger.

In step 7, first compare the stacking number of stacks to avoid unnecessary tag matching.It also uses the previous stacks to avoid more unnecessary matching.Can be controlled by Check_Count_BeFore_item_predicate_match.

Further optimization has been planned.