mirror of
https://github.com/calli-eve/eve-pi.git
synced 2026-06-11 16:45:42 +02:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 48da721980 | |||
| bf31a7e2cb | |||
| 6b47b34ddf | |||
| e8f69b15a4 |
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
Simple tool to track your PI planet extractors. Login with your characters and enjoy the PI!
|
Simple tool to track your PI planet extractors. Login with your characters and enjoy the PI!
|
||||||
|
|
||||||
Any questions, feedback or suggestions are welcome at [EVE PI Discord](https://discord.gg/bCdXzU8PHK)
|
Any questions, feedback or suggestions are welcome at
|
||||||
|
[EVE PI Matrix](https://matrix.to/#/#eve-pi:calli.fi)
|
||||||
|
[EVE PI Discord](https://discord.gg/bCdXzU8PHK)
|
||||||
|
|
||||||
## Partner code
|
## Partner code
|
||||||
|
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ const calculatePlanetDetails = (planet: PlanetWithInfo, piPrices: EvePraisalResu
|
|||||||
const fillRate = storageCapacity > 0 ? (totalVolume / storageCapacity) * 100 : 0;
|
const fillRate = storageCapacity > 0 ? (totalVolume / storageCapacity) * 100 : 0;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
pin_id: storage.pin_id,
|
||||||
type: storageType,
|
type: storageType,
|
||||||
type_id: storage.type_id,
|
type_id: storage.type_id,
|
||||||
capacity: storageCapacity,
|
capacity: storageCapacity,
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import { GitHubButton } from "../Github/GitHubButton";
|
|||||||
import { LoginButton } from "../Login/LoginButton";
|
import { LoginButton } from "../Login/LoginButton";
|
||||||
import { PartnerCodeButton } from "../PartnerCode/PartnerCodeButton";
|
import { PartnerCodeButton } from "../PartnerCode/PartnerCodeButton";
|
||||||
import { SettingsButton } from "../Settings/SettingsButtons";
|
import { SettingsButton } from "../Settings/SettingsButtons";
|
||||||
|
import { BuyMeCoffeeButton } from "../BuyMeCoffee/BuyMeCoffeeButton";
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Dialog,
|
Dialog,
|
||||||
@@ -132,6 +133,9 @@ function ResponsiveAppBar() {
|
|||||||
<MenuItem onClick={handleCloseNavMenu}>
|
<MenuItem onClick={handleCloseNavMenu}>
|
||||||
<PartnerCodeButton />
|
<PartnerCodeButton />
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
<MenuItem onClick={handleCloseNavMenu}>
|
||||||
|
<BuyMeCoffeeButton />
|
||||||
|
</MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
</Box>
|
</Box>
|
||||||
<PublicIcon sx={{ display: { xs: "flex", md: "none" }, mr: 1 }} />
|
<PublicIcon sx={{ display: { xs: "flex", md: "none" }, mr: 1 }} />
|
||||||
@@ -173,6 +177,7 @@ function ResponsiveAppBar() {
|
|||||||
</Button>
|
</Button>
|
||||||
<CCPButton />
|
<CCPButton />
|
||||||
<PartnerCodeButton />
|
<PartnerCodeButton />
|
||||||
|
<BuyMeCoffeeButton />
|
||||||
</Box>
|
</Box>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
</Container>
|
</Container>
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { Box, Button, Tooltip } from "@mui/material";
|
||||||
|
export const BuyMeCoffeeButton = () => {
|
||||||
|
return (
|
||||||
|
<Box>
|
||||||
|
<Tooltip title="Support the development of this tool">
|
||||||
|
<Button
|
||||||
|
href="https://buymeacoffee.com/evepi"
|
||||||
|
target="_blank"
|
||||||
|
style={{ width: "100%" }}
|
||||||
|
sx={{ color: "white", display: "block" }}
|
||||||
|
>
|
||||||
|
By me a beer
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
|
</Box>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -135,7 +135,7 @@ export const ExtractionSimulationTooltip: React.FC<ExtractionSimulationTooltipPr
|
|||||||
</Box>
|
</Box>
|
||||||
<Box sx={{ flex: 1, minWidth: 0 }}>
|
<Box sx={{ flex: 1, minWidth: 0 }}>
|
||||||
<Stack spacing={1}>
|
<Stack spacing={1}>
|
||||||
{extractorPrograms.map(({ typeId, cycleTime, cycles, installTime, expiryTime }, idx) => {
|
{extractorPrograms.map(({ typeId, cycleTime, cycles, expiryTime }, idx) => {
|
||||||
const prediction = getProgramOutputPrediction(
|
const prediction = getProgramOutputPrediction(
|
||||||
extractors[idx].baseValue,
|
extractors[idx].baseValue,
|
||||||
CYCLE_TIME,
|
CYCLE_TIME,
|
||||||
@@ -159,7 +159,7 @@ export const ExtractionSimulationTooltip: React.FC<ExtractionSimulationTooltipPr
|
|||||||
• Program Cycles: {cycles}
|
• Program Cycles: {cycles}
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="body2">
|
<Typography variant="body2">
|
||||||
• Average per Cycle: {(totalOutput / (cycles)).toFixed(1)} units
|
• Average per Cycle: {(totalOutput / cycles).toFixed(1)} units
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography
|
<Typography
|
||||||
variant="body2"
|
variant="body2"
|
||||||
|
|||||||
@@ -438,7 +438,7 @@ export const PlanetTableRow = ({
|
|||||||
.map((storage, idx) => {
|
.map((storage, idx) => {
|
||||||
const fillRate = storage.fillRate;
|
const fillRate = storage.fillRate;
|
||||||
const color = fillRate > 90 ? '#ff0000' : fillRate > 80 ? '#ffa500' : fillRate > 60 ? '#ffd700' : 'inherit';
|
const color = fillRate > 90 ? '#ff0000' : fillRate > 80 ? '#ffa500' : fillRate > 60 ? '#ffd700' : 'inherit';
|
||||||
const contents = planet.info.pins.find(p => p.type_id === storage.type_id)?.contents || [];
|
const contents = planet.info.pins.find(p => p.pin_id === storage.pin_id)?.contents || [];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment key={`storage-${character.character.characterId}-${planet.planet_id}-${storage.type}-${idx}`}>
|
<React.Fragment key={`storage-${character.character.characterId}-${planet.planet_id}-${storage.type}-${idx}`}>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ export interface StorageContent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface StorageInfo {
|
export interface StorageInfo {
|
||||||
|
pin_id: number;
|
||||||
type: string;
|
type: string;
|
||||||
type_id: number;
|
type_id: number;
|
||||||
capacity: number;
|
capacity: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user