Last updated: September 18, 2015
Download: https://github.com/7winds/RS2-Client-Loading-474-Data-Refactored
Goal: Completely refactored 317 client loading 474 data with tons of toggle-able features.
I have been developing this client for a month now. This client is heavily influenced by Major’s 317 refactored client, found here. http://"http://www.rune-server.org/runescape-development/rs2-client/downloads/575183-almost-fully-refactored-317-client.html
Credits: to all these amazing people.
[ul][] Major: for using his Almost fully refactored 317 client which I used as a reference for some renaming.
[] peterbjornx: & clienthax: and anyone else who contributed to rename317
[*] Zion: For his client which I used as a base.[/ul]
-UPDATED-
Large update. 31 classes are now fully refactored.
[SPOILER=Updates]
September 7, 2015
[ul][] Renamed NodeSubList -> Queue. Refactored Queue
[] Refactored Cacheable
[] QueueNode -> Cacheable
[] Goes with Renaming Node -> Linkable
[] Renamed NodeCache -> HashTable
[] Renamed Node -> Linkable
[] Refactored more variables in Widget class
[] Cache -> Renamed to Reference Cache
[] Renamed RSInterface -> Widget, refactored most of Widget class
[] Renaming a few variables in Sprite class
[] DrawingArea -> Renamed to Raster
[] Refactored majority of Npc class
[] Refactored most of the Entity class
[] Renamed TextDrawingArea -> GameFont
[*] Xp drop sprite icons are now lined up perfectly with the text.[/ul]
September 8, 2015
[ul][] Most of drawInterface method is refactored.
[] Can now toggle between 10 X hits. Added ids to right click ground items.[/ul]
September 9, 2015
[ul][] Refactored camera position variables
[] Renamed ObjectManager -> MapRegion, renamed some methods in MapRegion
[] Renamed sendFrame method to -> writeOpCode
[] Fixed all welcome screen messages.[/ul]
September 10, 2015
[ul][] Prevented some things from being used while welcome screen in open.
[] Removed useless skill methods
[] Refactored most of ResourceProvider
[] Renamed OnDemandNode -> Resource
[] Renamed Requester -> Provider
[] Created a game constants class
[*] Renamed OnDemandRequester -> ResourceProvider[/ul]
September 11, 2015
[ul][] Orbs no longer show hover while they are off
[] Fixed the positioning for modern spells
[*] Fixed some magic spell sprite positions on modern tab.[/ul]
September 15, 2015
[ul][] Renamed RSSocket -> BufferedConnection
[] Renamed BZip2Context -> BZip2DecompressionState
[] Renamed BZip2 -> BZip2Decompressor, fully refactored BZip2Decompressor
[] Fully refactored ResourceProvider
[*] Fully refactored ResourceProvider class[/ul]
September 18, 2015
[ul][] Redid packaging, changing name to RS2 Client loading 474 data
[] Fully refactored IdentityKit class
[] Renamed reference cache variable names.
[] Renamed methods in ReferenceCache, added Major’s documentation.
[] parseInterfaceOpcode renamed -> executeScript and has been refactored.
[] Changed SkillConstant variable names to proper java conventions
[] Renamed TextClass -> StringUtils, Fully refactored StringUtils
[] Renamed TextInput -> ChatMessageCodec, fully refactored ChatMessageCodec
[] Reduced the redundancy from Sound class names.
[] More efficient way of doing 10 X HP and hits.
[] Refactored the entire appendPlayerUpdateMask method in Game class
[] Refactored parts of SpawnObject, Game, CollisionMap, and SceneGraph
[] Tons of organizing classes, also renamed several classes.
[] Renamed TileOverlay -> ShapedTile
[*] Renamed TileUnderlay -> SimpleTile[/ul]
[/SPOILER]
Features:
[ul][] Has support for sound effects
[] Has support for music
[] Resizeable game modes (Fixed, Resize, Fullscreen)
[] Tons of toggles (orbs, hp above heads, names above heads, censor, ids… etc)
[] Fully packaged
[] All class names have been refactored
[] UUID and RSA Protection
[] Decent Fog
[] Working music and world switch buttons
[] 474 Magic Tab (normal, ancient, and lunar)
[] Original hitsplats (No messed up hitsplats)
[] Clean Cache (No customs)
[] 31+ classes are fully renamed, the rest are currently in progress
[] Heavily renamed
[*] Low memory usage, 100k-140k (with sounds)[/ul]
What I have done:
~ August 8, 2015
- repacked original hitsplats
- repacked 474 magic tab
- fixed sound effects and regional music both work perfectly
- fixed an issue with name when logging in
- added a depthbuffer (fog)
~ August 9, 2015
- Added the ability to toggle names above entities heads
- Added the ability to display health above entities heads
- Created a Configuration class with all the client's configuration options
- Did a lot of refactoring. Refactored all classes, refactored almost all methods in Client.java
~ August 10, 2014
- Created a new class PacketID I'm using to easily identify packets
- Refactored EntityDef readvalues
- More realistic fog
- can toggle orbs ::orbs
~ August 12, 2015
- Drew the music sprite on login screen
- Fully repackaged client, along with more refactored classes
- Administrators can now toggle ids for items, objects, and npcs (::ids)
- Added RSA and UUID protection
~ August 13, 2015
- Music and world switch buttons on login screen both work
~ August 19, 2015
- All items now have the correct color
- Refactored Image Producers
- Refactored parts of drawInterface method
- Both MarkMinimap and DrawMinimap methods have been refactored
- Added OS Buddies XP Drops (Thanks [user]_Sean[/user])
- Changed XP Counter position
~ August 22, 2015
- Fully refactored SpotAnimation
- Fully refactored ItemDefinitions
~ August 29, 2015
- Can now toggle roofs (use the roofs command ::roofs)
- A successful login now stops the startup music.
- Fully refactored SoundFilter
- Fully refactored SoundEnvelope
- SoundSample renamed -> SoundSynthesizer and has been fully refactored.
- Renamed Sounds -> SoundTrack, fully refactored SoundTrack
- Renamed EntityDefinition -> NpcDefinition, refactored NpcDefinition
- Renamed VarBit -> VariableBits
- Renamed Varp -> VariableParameter, refactored some methods
- Renamed Censor -> MessageCensor, refactored some of MessageCensor
- Renamed Texture -> Rasterizer
~ August 31, 2015
- More organizing
- Refactored some methods in CollisonMap
- Fully refactored Buffer class (Using RS2HD renaming, personally I think this is a lot easier to read)
~ August 30, 2015
- Began refactoring ObjectDefinitions
- Can now toggle RSA on or off in Configuration
- Refactored the login method
~ August 31, 2015
- More organizing
- Refactored some methods in CollisonMap
- Fully refactored Buffer class (Using RS2HD renaming, personally I think this is a lot easier to read)
~ September 6, 2015
- Reverted normal, ancient and lunar spellbooks back to 474 spell books.
~ September 7, 2015
- Cache -> Renamed to Reference Cache
- Renamed RSInterface -> Widget, refactored most of Widget class
- Renaming a few variables in Sprite class
- DrawingArea -> Renamed to Raster
- Refactored majority of Npc class
- Refactored most of the Entity class
- Renamed TextDrawingArea -> GameFont
- Xp drop sprite icons are now lined up perfectly with the text
~ September 8, 2015
- Most of drawInterface method is refactored.
- Can now toggle between 10 X hits. Added ids to right click ground items.
~ September 9, 2015
- Refactored camera position variables
- Renamed ObjectManager -> MapRegion, renamed some methods in MapRegion
- Renamed sendFrame method to -> writeOpCode
- Fixed all welcome screen messages.
~ September 10, 2015
- Prevented some things from being used while welcome screen in open.
- Removed useless skill methods
- Refactored most of ResourceProvider
- Renamed OnDemandNode -> Resource
- Renamed Requester -> Provider
- Created a game constants class
- Renamed OnDemandRequester -> ResourceProvider
~ September 11, 2015
- Orbs no longer show hover while they are off
- Fixed the positioning for modern spells
- Fixed some magic spell sprite positions on modern tab.
~ September 15, 2015
- Renamed RSSocket -> BufferedConnection
- Renamed BZip2Context -> BZip2DecompressionState
- Renamed BZip2 -> BZip2Decompressor, fully refactored BZip2Decompressor
- Fully refactored ResourceProvider
- Fully refactored ResourceProvider class
~ September 18, 2015
- Redid packaging, changing name to RS2 Client loading 474 data
- Fully refactored IdentityKit class
- Renamed reference cache variable names.
- Renamed methods in ReferenceCache, added Major's documentation.
- parseInterfaceOpcode renamed -> executeScript and has been refactored.
- Changed SkillConstant variable names to proper java conventions
- Renamed TextClass -> StringUtils, Fully refactored StringUtils
- Renamed TextInput -> ChatMessageCodec, fully refactored ChatMessageCodec
- Reduced the redundancy from Sound class names.
- More efficient way of doing 10 X HP and hits.
- Refactored the entire appendPlayerUpdateMask method in Game class
- Refactored parts of SpawnObject, Game, CollisionMap, and SceneGraph
- Tons of organizing classes, also renamed several classes.
- Renamed TileOverlay -> ShapedTile
- Renamed TileUnderlay -> SimpleTile
List of commands (Syntax: use as ::COMMAND)
[ul][] fps
[] ids
[] finterface (used for fullscreen interfaces)
[] music
[] 10xhp
[] hp
[] names
[] orbs
[] fog
[] fixed
[] resize
[] full
[] data
[] noclip
[*] optab[/ul]
Packaged and refactored all classes (Updated September 18, 2015)
Loginscreen
Has many customize-able features; look in the configuration class for all the toggles
[SPOILER=More Media]
Fog
FullScreen
- Reverted normal, ancient and lunar magic tabs back to 474.
Fullscreen interfaces (Fixed welcome screen interface)
Hitsplats are all fixed
Added OS Buddy XP Drops ([user]_Sean[/user])
Video from my project.
[video=youtube;0SDJzJF30Xw]https://www.youtube.com/watch?v=0SDJzJF30Xw[/video]
Video showing world switch and music button actually working, plays music on login as well.
[video]https://youtu.be/DqA_HsdhVBo[/video]
[/SPOILER]
Renaming List
Animable -> Renderable
Applet_Sub1 -> RSApplet -> GameShell
Cache -> ReferenceCache
Censor -> MessageCensor
Class3 -> Object4 -> ItemPile
Class4 -> ChunkUtil
Class6 -> SoundSample -> SoundSynthesizer
Class10 -> Object1 -> WallLock
Class11 -> CollisionMap
Class13 -> BZ2InputStream
Class18 -> SkinList
Class19 -> NodeList -> Deque
Class21 -> ModelHeader
Class26 -> Object2 -> WallDecoration
Class28 -> Object5 -> StaticObject
Class29 -> SoundEnvelope
Class30 -> Node
Class30_Sub1 -> TemporaryObject
Class30_Sub2_Sub4_Sub3 -> Animable_Sub3 -> SceneSpotAnim
Class30_Sub2_Sub4_Sub4 -> Animable_Sub4 -> SceneProjectile
Class30_Sub2_Sub4_Sub5 -> Animable_Sub5 -> SceneObject
Class32 -> BZip2Context
Class33 -> Vertex
Class36 -> FrameReader -> SequenceFrame
Class39 -> SoundFilter
Class40 -> TileOverlay
Class42_Sub1 -> OnDemandRequester
Class43 -> TileUnderlay
Class47 -> CullingCluster
Class49 -> GroundDecoration
Client -> Game
ClientFrame -> GameFrame
Ground -> Tile
Flo -> Floor
MRUNodes -> Cache
NodeSub -> QueueNode
Node -> Linkable
NodeCache -> HashTable
NodeSubList -> Queue
QueueNode -> Cacheable
Stream -> Buffer
StreamLoader -> CacheArchive
Sounds -> SoundTrack
Texture -> Rasterizer
TextDrawingArea -> GameFont
RSImageProducer -> ImageProducer
RSInterface -> Widget
VarBit -> VariableBits
Varp -> VariableParameter
WorldController -> SceneGraph