Player Input
- KeyBindingRegistry � allows you to add your own keybindings to the vanilla ones � (for example some vanilla keybindings are A for left and D for right). Your custom keybindings will appear on the options page so that the player can change them.
- MouseEvent � allows you to intercept mouse clicks and mouse movement before the vanilla code sees it.
Rendering
A lot of the custom stuff related to rendering has been covered in the other sections, however there are also quite a few other events related to rendering, listed below:- Various events used to customise Biome-dependent rendering, such as grass colour � see BiomeEvent.
- FOVUpdateEvent (FOV = Field of View, which means how �wide� your view is)
- RenderGameOverlayEvent gets called for a whole stack of different parts of the screen overlay, such as hotbar, crosshairs, health bar, etc. See enum ElementType in the event for more information.
- DrawBlockHighlightEvent� draw the highlight box around the block when your cursor is pointing at it
- Another bundle of Events under RenderLivingEvent and RenderPlayerEvent can be used to control the rendering of the player and other entities in quite some detail.
Graphical User Interface
I�m a bit rubbish on this section because I�ve never actually customised a GUI. From what I can tell, there are a few forge-related additions:
- AchievementPage.registerAchievementPage lets you add your own achievement pages.
- NetworkRegistry.registerGuiHandler (using IGuiHandler) � not sure how to use this.
- GuiIngameForge � replace vanilla in-game overlays with many extra events, and also adds a large number of flags you can change to turn rendering of HUD elements on/off � for example hotbar, crosshairs, helmet, experience bar, etc.
- GuiControlsScrollPanel� accommodates any extra key bindings you have added to the KeyBindingRegistry
- GuiOpenEvent � used to replace a GUI with your own customised version
- PlayerOpenContainerEvent� when opening a GUI container.
Chat
There are a few interesting events related to chat:
- NetworkRegistry.registerChatListener(using IChatListener) for intercepting chat messages including commands
- NetworkRegistry.registerConnectionHandler(IConnectionHandler) which gives control over clients and players connecting to the server.
- CommandEvent
- ServerChatEvent
- ClientChatReceivedEvent
Sounds
Sounds are registered using SoundLoadEvent instead of a registry call. Don�t ask me why. They are played using using vanilla methods such as SoundManager.playSound. Some related events are
- SoundSetupEvent
- PlayBackgroundMusicEvent
- PlaySoundEffectEvent
- PlaySoundEffectSourceEvent
- PlaySoundEvent
- PlaySoundSourceEvent
- PlayStreamingEvent
- PlayStreamingSourceEvent
- PlaySoundAtEntityEvent
~Overview of Forge (and what it can do for you)
Forge concepts
Some general notes
How Forge starts up your code (@Mod, @SidedProxy, etc)
Registering your classes
Extra methods for vanilla base classes
Events
Forge summary - grouped by task
Blocks
Items
TileEntities
Entities
World generation, loading, saving
Miscellaneous - player input, rendering, GUI, chat, sounds