mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-18 12:15:44 +01:00
v0.52.9
This commit is contained in:
parent
e75197dee3
commit
42704d8695
4
dist/engine.bundle.js
vendored
4
dist/engine.bundle.js
vendored
File diff suppressed because one or more lines are too long
2
dist/engineStyle.bundle.js
vendored
2
dist/engineStyle.bundle.js
vendored
@ -1,2 +1,2 @@
|
||||
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([864,0]),o()}({801:function(n,t,o){},803:function(n,t,o){},805:function(n,t,o){},807:function(n,t,o){},809:function(n,t,o){},811:function(n,t,o){},813:function(n,t,o){},815:function(n,t,o){},817:function(n,t,o){},819:function(n,t,o){},821:function(n,t,o){},823:function(n,t,o){},825:function(n,t,o){},827:function(n,t,o){},829:function(n,t,o){},831:function(n,t,o){},833:function(n,t,o){},835:function(n,t,o){},837:function(n,t,o){},839:function(n,t,o){},841:function(n,t,o){},843:function(n,t,o){},845:function(n,t,o){},847:function(n,t,o){},849:function(n,t,o){},851:function(n,t,o){},853:function(n,t,o){},855:function(n,t,o){},857:function(n,t,o){},859:function(n,t,o){},861:function(n,t,o){},864:function(n,t,o){"use strict";o.r(t);o(863),o(861),o(859),o(857),o(855),o(853),o(851),o(849),o(847),o(845),o(843),o(841),o(839),o(837),o(835),o(833),o(831),o(829),o(827),o(825),o(823),o(821),o(819),o(817),o(815),o(813),o(811),o(809),o(807),o(805),o(803),o(801)}});
|
||||
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([866,0]),o()}({803:function(n,t,o){},805:function(n,t,o){},807:function(n,t,o){},809:function(n,t,o){},811:function(n,t,o){},813:function(n,t,o){},815:function(n,t,o){},817:function(n,t,o){},819:function(n,t,o){},821:function(n,t,o){},823:function(n,t,o){},825:function(n,t,o){},827:function(n,t,o){},829:function(n,t,o){},831:function(n,t,o){},833:function(n,t,o){},835:function(n,t,o){},837:function(n,t,o){},839:function(n,t,o){},841:function(n,t,o){},843:function(n,t,o){},845:function(n,t,o){},847:function(n,t,o){},849:function(n,t,o){},851:function(n,t,o){},853:function(n,t,o){},855:function(n,t,o){},857:function(n,t,o){},859:function(n,t,o){},861:function(n,t,o){},863:function(n,t,o){},866:function(n,t,o){"use strict";o.r(t);o(865),o(863),o(861),o(859),o(857),o(855),o(853),o(851),o(849),o(847),o(845),o(843),o(841),o(839),o(837),o(835),o(833),o(831),o(829),o(827),o(825),o(823),o(821),o(819),o(817),o(815),o(813),o(811),o(809),o(807),o(805),o(803)}});
|
||||
//# sourceMappingURL=engineStyle.bundle.js.map
|
26
dist/vendor.bundle.js
vendored
26
dist/vendor.bundle.js
vendored
File diff suppressed because one or more lines are too long
@ -3,6 +3,37 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
v0.52.9 - 2021-07-27 Less lag! (hydroflame & community)
|
||||
-------------------------------------------
|
||||
|
||||
** Active Scripts page **
|
||||
|
||||
* Now less laggy, has pagination.
|
||||
|
||||
** File diagnostic **
|
||||
|
||||
* Added a popup found under options that shows the files you own and how
|
||||
large they are. This help find bugs and leftover massive logs files.
|
||||
|
||||
** Corporation **
|
||||
|
||||
* Added safeguard against a very specific bug that causes NaN money. I'm
|
||||
still not sure what the root cause is but it should prevent corp from
|
||||
breaking.
|
||||
|
||||
** Netscript **
|
||||
|
||||
* tprintf is a new function that doesn't print the filename.
|
||||
|
||||
** Misc. **
|
||||
|
||||
* Infiltration kills you if you try to automate it. (@threehams)
|
||||
* Fix beautify button not working
|
||||
* Added bladeburner_analysis_mult to getPlayer() (@brubsby)
|
||||
* Fixed joining bladeburner via netscript functions. (@omuretsu)
|
||||
* All bladeburner actions are click-to-copy
|
||||
* nerf noodle bar
|
||||
|
||||
v0.52.8 - 2021-07-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
|
||||
-------------------------------------------
|
||||
|
||||
|
@ -66,7 +66,7 @@ documentation_title = '{0} Documentation'.format(project)
|
||||
# The short X.Y version.
|
||||
version = '0.52'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.52.8'
|
||||
release = '0.52.9'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
@ -130,5 +130,5 @@
|
||||
"watch": "webpack --watch --mode production",
|
||||
"watch:dev": "webpack --watch --mode development"
|
||||
},
|
||||
"version": "0.52.8"
|
||||
"version": "0.52.9"
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
import { IMap } from "./types";
|
||||
|
||||
export const CONSTANTS: IMap<any> = {
|
||||
Version: "0.52.8",
|
||||
Version: "0.52.9",
|
||||
|
||||
// Speed (in ms) at which the main loop is updated
|
||||
_idleSpeed: 200,
|
||||
@ -228,24 +228,35 @@ export const CONSTANTS: IMap<any> = {
|
||||
TotalNumBitNodes: 24,
|
||||
|
||||
LatestUpdate: `
|
||||
v0.52.8 - 2021-07-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
|
||||
v0.52.9 - 2021-07-27 Less lag! (hydroflame & community)
|
||||
-------------------------------------------
|
||||
|
||||
** Script editor **
|
||||
** Active Scripts page **
|
||||
|
||||
* Correctly reloads old script when clicking "Script Editor"
|
||||
* No longer jumps to the end of the text for no reason.
|
||||
* Now less laggy, has pagination.
|
||||
|
||||
** Hash upgrades **
|
||||
** File diagnostic **
|
||||
|
||||
* Fixed an issue where the default option would say ecorp but was really
|
||||
foodnstuff
|
||||
* Added a popup found under options that shows the files you own and how
|
||||
large they are. This help find bugs and leftover massive logs files.
|
||||
|
||||
** Corporation **
|
||||
|
||||
* Added safeguard against a very specific bug that causes NaN money. I'm
|
||||
still not sure what the root cause is but it should prevent corp from
|
||||
breaking.
|
||||
|
||||
** Netscript **
|
||||
|
||||
* tprintf is a new function that doesn't print the filename.
|
||||
|
||||
** Misc. **
|
||||
|
||||
* The "Delete all active script" button under the options has a clearer
|
||||
description.
|
||||
* Removed some debug console.log
|
||||
* Infiltration kills you if you try to automate it. (@threehams)
|
||||
* Fix beautify button not working
|
||||
* Added bladeburner_analysis_mult to getPlayer() (@brusby)
|
||||
* Fixed joining bladeburner via netscript functions. (@omuretsu)
|
||||
* All bladeburner actions are click-to-copy
|
||||
* nerf noodle bar
|
||||
`,
|
||||
|
||||
|
@ -6,6 +6,7 @@ import * as React from "react";
|
||||
|
||||
import { WorkerScriptAccordion } from "./WorkerScriptAccordion";
|
||||
import { Accordion } from "../React/Accordion";
|
||||
import { ServerAccordionContent } from "./ServerAccordionContent";
|
||||
|
||||
import { BaseServer } from "../../Server/BaseServer";
|
||||
import { WorkerScript } from "../../Netscript/WorkerScript";
|
||||
@ -42,7 +43,7 @@ export function ServerAccordion(props: IProps): React.ReactElement {
|
||||
<pre>{headerTxt}</pre>
|
||||
}
|
||||
panelContent={
|
||||
<ul>{scripts}</ul>
|
||||
<ServerAccordionContent workerScripts={props.workerScripts} />
|
||||
}
|
||||
/>
|
||||
)
|
||||
|
83
src/ui/ActiveScripts/ServerAccordionContent.tsx
Normal file
83
src/ui/ActiveScripts/ServerAccordionContent.tsx
Normal file
@ -0,0 +1,83 @@
|
||||
import React, { useState } from "react";
|
||||
import { WorkerScript } from "../../Netscript/WorkerScript";
|
||||
import { WorkerScriptAccordion } from "./WorkerScriptAccordion";
|
||||
import { AccordionButton } from "../React/AccordionButton";
|
||||
|
||||
const pageSize = 20;
|
||||
|
||||
interface IProps {
|
||||
workerScripts: WorkerScript[];
|
||||
|
||||
}
|
||||
|
||||
export function ServerAccordionContent(props: IProps): React.ReactElement {
|
||||
if(props.workerScripts.length > pageSize) {
|
||||
return <ServerAccordionContentPaginated workerScripts={props.workerScripts} />
|
||||
}
|
||||
|
||||
const scripts = props.workerScripts.map((ws) => {
|
||||
return (
|
||||
<WorkerScriptAccordion key={`${ws.name}_${ws.args}`} workerScript={ws} />
|
||||
)
|
||||
});
|
||||
|
||||
return (<ul>{scripts}</ul>);
|
||||
}
|
||||
|
||||
|
||||
export function ServerAccordionContentPaginated(props: IProps): React.ReactElement {
|
||||
const [page, setPage] = useState(0);
|
||||
const scripts: React.ReactElement[] = [];
|
||||
const maxPage = Math.ceil(props.workerScripts.length/pageSize);
|
||||
const maxScript = Math.min((page+1)*pageSize, props.workerScripts.length);
|
||||
for(let i = page*pageSize; i < maxScript; i++) {
|
||||
const ws = props.workerScripts[i];
|
||||
scripts.push(<WorkerScriptAccordion key={`${ws.name}_${ws.args}`} workerScript={ws} />)
|
||||
}
|
||||
|
||||
function capPage(page: number): number {
|
||||
if(page < 0) {
|
||||
page = 0;
|
||||
}
|
||||
|
||||
if(maxPage-1 < page) {
|
||||
page = maxPage-1;
|
||||
}
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
// in case we're on an invalid page number because scripts were killed.
|
||||
const capped = capPage(page);
|
||||
if(capped !== page)
|
||||
setPage(capped);
|
||||
|
||||
function changePage(n: number): void {
|
||||
setPage(newPage => {
|
||||
newPage += n;
|
||||
newPage = Math.round(newPage);
|
||||
return capPage(newPage);
|
||||
})
|
||||
}
|
||||
|
||||
return (<><ul>{scripts}</ul>
|
||||
<AccordionButton
|
||||
onClick={() => changePage(-1e99)}
|
||||
text="<<"
|
||||
/>
|
||||
<AccordionButton
|
||||
onClick={() => changePage(-1)}
|
||||
text="<"
|
||||
/>
|
||||
<span className="text">{page+1} / {maxPage}</span>
|
||||
<AccordionButton
|
||||
onClick={() => changePage(1)}
|
||||
text=">"
|
||||
/>
|
||||
<AccordionButton
|
||||
onClick={() => changePage(1e99)}
|
||||
text=">>"
|
||||
/>
|
||||
</>);
|
||||
}
|
||||
|
@ -73,9 +73,11 @@ class AccordionPanel extends React.Component<IPanelProps, any> {
|
||||
className = this.props.panelClass;
|
||||
}
|
||||
|
||||
if(!this.props.opened) return (<></>);
|
||||
|
||||
|
||||
return (
|
||||
<div className={className} style={{display: this.props.opened ? "block" : "none"}}>
|
||||
<div className={className} style={{display: "block"}}>
|
||||
{this.props.panelContent}
|
||||
</div>
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user