Skip to content

Commit a9f4e84

Browse files
committed
Minor refactoring
1 parent c157ff2 commit a9f4e84

File tree

4 files changed

+34
-17
lines changed

4 files changed

+34
-17
lines changed

src/bits.ts

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
1-
// Bit manipulation utilities
1+
/**
2+
* Bit manipulation utilities.
3+
*/
4+
5+
/**
6+
* Get the number of set bits (i.e. 1) in the given bitmask.
7+
*/
8+
export function countSetBits(bitstring: number) {
9+
let count = 0;
10+
while (bitstring != 0) {
11+
count += bitstring % 2;
12+
bitstring = bitstring >> 1;
13+
}
14+
return count;
15+
}
216

317
export function getBit(bitmask: number, exponent: number): number {
418
return (bitmask >> exponent) & 1;
@@ -19,6 +33,7 @@ export function setBits(bitmask: number, ...exponents: number[]): number {
1933
export function setBit(bitmask: number, exponent: number): number {
2034
return bitmask | (1 << exponent);
2135
}
36+
2237
function toggleBit(bitmask: number, exponent: number): number {
2338
return bitmask ^ (1 << exponent);
2439
}

src/components/RuneSVG/index.tsx

+9-6
Original file line numberDiff line numberDiff line change
@@ -332,12 +332,15 @@ export class RuneSVG extends Component<Props, State> {
332332
xmlns="http://www.w3.org/2000/svg"
333333
xmlnsXlink="http://www.w3.org/1999/xlink"
334334
>
335-
<g
336-
ref={(e) => (this.guideLayer = e)}
337-
className="runic-layer runic-layer--guide"
338-
>
339-
{...tokenLayers.guide}
340-
</g>
335+
{/* Simple optimization, may be removed if troublesome */}
336+
{state.runeGuideColor !== "transparent" && (
337+
<g
338+
ref={(e) => (this.guideLayer = e)}
339+
className="runic-layer runic-layer--guide"
340+
>
341+
{...tokenLayers.guide}
342+
</g>
343+
)}
341344
<g
342345
ref={(e) => (this.realLayer = e)}
343346
className="runic-layer runic-layer--real"

src/rune.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
import { getBit, unsetBits, setBits, isBitSet, setBit, unsetBit } from "./bits";
1+
import {
2+
getBit,
3+
unsetBits,
4+
setBits,
5+
isBitSet,
6+
setBit,
7+
unsetBit,
8+
countSetBits,
9+
} from "./bits";
210
import {
311
VOWEL_MASK,
412
MIDDLE_LINE_MASK,
@@ -8,7 +16,6 @@ import {
816
symbolToSymbolData,
917
consonantDataTable,
1018
} from "./runeDataset";
11-
import { countSetBits } from "./utils";
1219

1320
function containsBitmask(bitstring: number, bitmask: number) {
1421
return (bitstring & bitmask) === bitmask;

src/utils.ts

-8
This file was deleted.

0 commit comments

Comments
 (0)