Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $remapDivision[$remapCount] = "Quick Brick Scroll";
- $remapName[$remapCount] = "Toggle Brick Scrolling";
- $remapCmd[($remapCount++)-1] = "setBrickScrollActive";
- $BrickScroll::ActiveColor="0 0.5 1 1"; //color the indicator turns when the key is held down
- package quickScrollBricks
- {
- function scrollInventory(%amount)
- { //Detects mouse scroll when key is held down.
- if($BrickScroll::Active)
- {
- doBrickScroll(%amount>0 ? 1 : -1);
- return;
- }
- Parent::scrollInventory(%amount);
- }
- //All of the rest of the functions in this package are for organizing the brick menu data into an accurate list.
- function clientCmdBSD_LoadBricks()
- {
- if(isObject($BrickScroll::DBList))
- $BrickScroll::DBList.delete(); //getting rid of the list from past games
- $BrickScroll::DBList=new ScriptObject()
- {
- count=0;
- };
- Parent::clientCmdBSD_LoadBricks();
- cleanDBList();
- }
- function BSD_addCategory(%name)
- {
- %out=Parent::BSD_addCategory(%name);
- %use=strReplace(%name," ","_");
- if($BrickScroll::DBList.isCategory[%use]$="")
- {
- $BrickScroll::DBList.category[$BrickScroll::DBList.count]=new ScriptObject()
- {
- count=0;
- };
- $BrickScroll::DBList.isCategory[%use]=$BrickScroll::DBList.category[$BrickScroll::DBList.count];
- $BrickScroll::DBList.count++;
- }
- return(%out);
- }
- function BSD_addSubCategory(%categoryName,%name)
- {
- %out=Parent::BSD_addSubCategory(%categoryName,%name);
- %category=$BrickScroll::DBList.isCategory[strReplace(%categoryName," ","_")];
- %use=strReplace(%name," ","_");
- if(%category.isSubCategory[%use]$="")
- {
- %category.subCategory[%category.count]=new ScriptObject()
- {
- count=0;
- };
- %category.isSubCategory[%use]=%category.subCategory[%category.count];
- %category.count++;
- }
- return(%out);
- }
- function BSD_CreateBrickButton(%db)
- {
- $BrickScroll::LastDB=%db;
- %out=Parent::BSD_CreateBrickButton(%db);
- return(%out);
- }
- function BSD_findCategory(%name)
- {
- $BrickScroll::LastCategory=%name;
- %out=Parent::BSD_findCategory(%name);
- return(%out);
- }
- function BSD_findSubCategory(%category,%name)
- {
- %out=Parent::BSD_findSubCategory(%category,%name);
- %category=$BrickScroll::DBList.isCategory[strReplace($BrickScroll::LastCategory," ","_")];
- %use=strReplace(%name," ","_");
- %subCategory=%category.isSubCategory[%use];
- %subCategory.brick[%subCategory.count]=$BrickScroll::LastDB;
- %subCategory.count++;
- return(%out);
- }
- };
- activatePackage(quickScrollBricks);
- function cleanDBList()
- { //reorganizing that mess into one list, so we can easily scroll through it
- %list=$BrickScroll::DBList;
- %result=new ScriptObject()
- {
- count=0;
- };
- for(%x=0;%x<%list.count;%x++)
- {
- %category=%list.category[%x];
- for(%i=0;%i<%category.count;%i++)
- {
- %subCategory=%category.subCategory[%i];
- for(%n=0;%n<%subCategory.count;%n++)
- {
- %next=%subCategory.brick[%n];
- %result.ref[%next]=%result.count;
- %result.brick[%result.count]=%next;
- %result.count++;
- }
- %subCategory.delete();
- }
- %category.delete();
- }
- %list.delete();
- $BrickScroll::DBList=%result;
- }
- function setBrickScrollActive()
- {
- $BrickScroll::Active=!$BrickScroll::Active;
- HUD_BrickActive.setColor($BrickScroll::Active ? $BrickScroll::ActiveColor : "1 1 1 1");
- }
- function doBrickScroll(%offset,%avoidLoop)
- {
- %use=$BSD_InvData[$CurrScrollBrickSlot];
- %use=$BrickScroll::DBList.ref[%use]+%offset;
- if(%use>=$BrickScroll::DBList.count)
- %use=0;
- else if(%use<0)
- %use=$BrickScroll::DBList.count-1;
- %use=$BrickScroll::DBList.brick[%use];
- $BSD_InvData[$CurrScrollBrickSlot]=%use;
- commandToServer('BuyBrick',$CurrScrollBrickSlot,%use);
- clientCmdServerMessage('MsgSetInvData',"",$CurrScrollBrickSlot,%use);
- }
Advertisement
Add Comment
Please, Sign In to add comment