Sdev/Refactorization To-Do List #1292
Labels
1.20.5
In-Development
Do Not Merge
DO NOT MERGE THIS PR YET!
enhancement
New feature or request
help wanted
Extra attention is needed
Cross-mod Integration
No response
Feature Description
No response
Design Philosophy
Package Structure
Between
gtceu/api
,gtceu/common
, andgtceu/data
, each package must have a corresponding one in the other categories, majority exactly the same name.api/machine
,common/machine
,data/machine
api/pipenet
,common/pipelike
,data/pipelike
In order to ease the separation to make it more obvious, I have some ideas of what each folder type should contain relative to their purpose.
GTCEu/API
PackagesGTCEu/Common
PackagesGTCEu/Data
PackagesAs it stands, most packages/files are already following these guidelines, but some still need some refactoring to fit this scheme
Separation of GregTech, GregTech Addons, and Mod Integrations (including Forge).
I would like to see a system where GregTech packages are stored as they currently are, directly within 1st-level packages.
GregTech addons get special treatment over other integrations, and are included as their own folder located in
api/addon
(and others like Package Structure, if necessary).Mod Integrations do not get such special treatment, and should be located in
api/integration
, with daughter folders corresponding to each mod they are integrated with, as well as a master java class to reference them all on startup.As a final thought, all code relating to integrations/addons that are included in the default GregTech files should be relocated to the corresponding folders from above to meet the criterion of separation.
Removal of
API/utils
PackageThis is entirely something that can be phased out, since there is no reason a "utils" folder/file should exist under a polishing. I seek to remove all of these features and included them in other packages in order to increase readability and reduce headache.
/API
api/addon
events/KJSRecipeKeyEvent
to more appropriate directory.api/integration
events/MaterialCasingCollectionEvent
to more appropriate directory.api/block
AddonFinder.java
toGTAddonFinder.java
GTAddonFinder.java/getInstances()
for readability.api/block
IAppearance
toIAppearanceBlock
for consistency.IFilterType
toICleanroomFilterType
orICleanroomType
for clarity.IFusionCasingType
SimpleCoilType
toDefaultCoilType
for clarity (or implement other types).MetaMachineBlock
to `MachineBlock' for clarity.PipeBlock
andMaterialPipeBlock
.api/blockentity
MetaMachineBlockEntity
toMachineBlockEntity
api/capability
api/codecs
api/compass
api/cover
cover/filter/
intocover/
.I
.api/fluid
attribute/FluidAttribute
andattribute/FluidAttributes
for clarity.forge/GTFluidImpl
toforge/GTFluidForge
/attribute/
intoapi/fluid
directory./forge/
intoapi/fluid
directory./store/
intoapi/fluid
directory.api/gui
/gui/compass
intoapi/compass
directory.api/item
MetaMachineItem
toMachineItem
api/machine
api/material
api/misc
api/multiblock
api/pipenet
api/recipe
api/registry
api/sound
api/tag
api/tools
api/transfer
api/worldgen
api/GTCEuAPI.java
api/GTValues.java
api/RotationState.java
The text was updated successfully, but these errors were encountered: