-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathTo-Do List.txt
126 lines (103 loc) · 5.5 KB
/
To-Do List.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
To-do list:
FIX QUANTUMFLUX MAGNET
**add tests to make sure that each addition/tweak/api works in-game**
Optimizations:
-Industrial Foregoing
-IRedstoneControlledMachine$RedstoneControl$RedstoneOff.canRun() -> SidedTileEntity$update$1.invoke()
-Problem: Seems like it calls World#getRedstonePower EVERY TICK.
-Fix: Redstone only changes on block update; see if redstone power has changed only on block update and store that result until the next block update occurs.
-0.21% | MaterialStoneWorkFactoryTile.performWork()
-Problem: Lot of time spent on FurnaceRecipes.getSmeltingResult()
-Fix: cache result since the input will NEVER change
-EnderIO
-0.03% | SagMillMachineRecipe.getBonusType()
-Agricraft
-0.23% | JsonPlant.getHarvestProducts() -> ReferencePipeline.forEach()
-0.08% + 0.50% | GrowthRequirement.hasValidSoil() -> Optional.filter()
* Problem: We're checking over a whole list every single time the crop is ticked for if it is on a valid soil block
* Fix: The soil block can never change without a block update, so only recheck for valid soil on block update and save to a bool, then use that on tick.
-Extra Utilities
-Mechanical User
-Problem: TileUse.operate() taking 1.8% of total server time??? There's no way there are enough of them on the server that are constantly active to be doing this.
-Fix?: If the mode requires an item (e.g. Activate Block with Item), check if there's an item first before firing?
-TODO: Check in base with Mineralis cape to see if there's any mechanical users set to fire constantly
-Actually Additions:
-TileEntityLaserRelay.getNetwork() - 1.46%, try and cache?
-> LaserRelayConnectionHandler.getNetworkFor() -> ConcurrentHashMap$KeyIterator.next() | 0.85%
<- TileEntityLaserRelayItem.saveDataOnChangeOrWorldStart() every tick
-Also in TileEntityLaserRelayFluids.transmitFluid()
* Why is it using ConcurrentHashMap$KeyIterator.next() instead of a hash lookup?
* Answer: Because it needs to check the key for if it contains the position.
* Should we cache this value? We'd need to find a way to ensure that it's accurate by rechecking it if it's dirty
* Wait no it's ALREADY cached. But the fact that it's being called this often means that it's not good enough, since we aren't changing networks that often in the slightest.
- 12.97% CLIENT: Also being called EVERY SINGLE **FRAME** on the client
-Redstone called every update tick (World.isBlockIndirectlyGettingPowered() might not be optimizable??)
-IE:
-TileEntityMultiblockMetal.update() -> TileEntityMultiblockMetal.isRSDisabled()
-TileEntityMetalBarrel.update()
-TileEntitySampleDrill.update()
-Astral: TileChalice.update()
-Thaumcraft: TileThaumatorium.gettingPower()
Optimizations DONE:
-Plant interactor:
-0.20% | BlockUtils.canBlockBeBroken()
-Problem: called even when harvesting operation doesn't require it to be broken
-Fix: change order of checks
-Agricraft
-1.42% | Hydrator
-TileEntityCrop.onGrowthTick(): [0.89% | TileEntityCrop.spread() -> 0.70% | GrowthRequirement.hasValidSoil()]
-Fix: Check if there aren't any empty adjacent filled cropsticks FIRST
-Fixed in MTileEntityCrop
-Aether
-AbilityAccessories.onUpdate() creating new itemstacks every tick [could still be optimized further with direct substitution instead of a map] [MAbilityAccessories]
-configanytime for thaumcraft jankconfig
-Mob Grinding Utils
-Fix: Ender inhibitor not working consistently
-Integrated Dynamics
-Fix: crafting causing major lag
-Fix: network corrupting after every restart
-Actually Additions
-Fix: Laser upgrades vanish but do not apply if it is the last item in the stack
-Extra Utilities
-CT: Set base value for mills
-Totemic
-Add custom instruments?
-Astral Sorcery
-Fix: Massive amount of armor rendering above player
-Tweak: Fix sextant rendering in front of blocks?
-Add: Item to cycle star day?
-Add: Item that lights up when a certain star is present
-Evilcraft
-Fix: Vengeance glasses not working
-Mob Grinding Utils
-Fix: Ender Inhibitor not inhibiting teleportation
-Ender IO
-Fix: Aversion (Mob prevention) obelisk not working
-Fix: Redstone conduit - Removing an input or changing its channel while it is powered keeps it constantly powered
-Roots
-Projectiles spell? need more info
-Disable modifiers through `Modifiers.disableModifier("mod")` doesn't visually disable them
-if an herb slot doesn't exist on a staff spell, shift-clicking it into the ui will still eat the herb
-Diagnose issue with Vethea and /home
-Bewitchment
-Comparator output from various blocks like cauldron, etc.
FIX BETTERP2P [likely not happening without more info]
Done:
-Astral Sorcery
-CT: Starmetal ore with a celestial crystal growing on it turns into iron, change what it turns into
-Aether
-Fix: Aether enchanter Altar skyroot bucket dupe
-Tweak: Place lava with dispenser, turn it into Aerogel. should work with modded dispensers too.
-Bewitchment
-CT: Change base value of existing altar modifiers
-Extra Utilities
-CT: Edit mill power scaling
-Patch: Atum biomes appearing in Quantum Quarry dimension [Fixed with MBiomeMarker]
-Totemic
-Change instrument values
-Extreme Reactors
-CT: Output buffer size, add coolant types
-Roots
-Inventory desync when hitting spell library key
-Spectator mode, if you change dimensions during spell then it teleports you to the coordinates in the dimension you left in the dimension you were teleported to
-Example: Fall out of the aether, activate spell at y=0 in aether, get teleported to overworld, spell runs out, teleported to y=0 in overworld