Skip to content

Commit

Permalink
Tweak Photocopier 2.0 (#718)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Принтер теперь не листается весь сразу
Плюс вшений вид стал лучше

![image](https://github.com/ss220club/Paradise-SS220/assets/69762909/1ce07131-43cc-468f-81d0-2a5d4964bf3f)

<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #1234" (где 1234 - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

## Почему это хорошо для игры
Больше красоты, больше удобства

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Изображения изменений

![sBEW1QruMk](https://github.com/ss220club/Paradise-SS220/assets/69762909/1acdfd3e-b342-40f5-a9ee-d5715e56274c)

<!-- Если вы не меняли карту или спрайты, можете опустить эту секцию.
Если хотите, можете вставить видео. -->

## Тестирование
Да
<!-- Как вы тестировали свой PR, если делали это вовсе? -->

## Changelog

:cl:
tweak: Принтер стал удобнее, красивее, и больше не листается весь сразу.
del: Красота требует жертв, в принтере удалены тултипы (всплывающее при
наводке полное название формы). Пользуйтесь поиском.
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
AyIong authored Nov 17, 2023
1 parent 04733dd commit 8edd5f4
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 82 deletions.
6 changes: 5 additions & 1 deletion modular_ss220/bureaucracy/code/photocopier.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/obj/machinery/photocopier
toner = 30
/// Selected form's category
var/category = ""
/// Selected form's id
Expand Down Expand Up @@ -54,6 +55,8 @@
if("choose_category")
category = params["category"]
. = TRUE
if("copies")
copies = clamp(text2num(params["new"]), 0, maxcopies)

/obj/machinery/photocopier/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
Expand All @@ -68,7 +71,8 @@
var/list/data = list()

data["isAI"] = issilicon(user)
data["copynumber"] = copies
data["copies"] = copies
data["maxcopies"] = maxcopies
data["toner"] = toner
data["copyitem"] = (copyitem ? copyitem.name : null)
data["folder"] = (folder ? folder.name : null)
Expand Down
156 changes: 78 additions & 78 deletions tgui/packages/tgui/interfaces/Photocopier220.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
import { useBackend, useLocalState } from '../backend';
import { Button, Section, Flex, Input } from '../components';
import {
Button,
Section,
Flex,
Input,
Slider,
ProgressBar,
} from '../components';
import { Window } from '../layouts';
import { filter, sortBy } from 'common/collections';
import { FlexItem } from '../components/Flex';
Expand All @@ -22,6 +29,8 @@ const selectForms = (forms, searchText = '') => {
export const Photocopier220 = (props, context) => {
const { act, data } = useBackend(context);

const { copies, maxcopies } = data;

const [searchText, setSearchText] = useLocalState(context, 'searchText', '');

const forms = selectForms(
Expand All @@ -34,6 +43,7 @@ export const Photocopier220 = (props, context) => {
categories.push(form.category);
}
}
const [number, setNumber] = useLocalState(context, 'number', 0);

let category;
if (data.category === '') {
Expand All @@ -46,22 +56,18 @@ export const Photocopier220 = (props, context) => {
<Window theme={data.ui_theme}>
<Window.Content scrollable display="flex">
<Flex direction="row" spacing={1}>
<Flex.Item width={24} shrink={0}>
<Flex.Item basis="35%">
<Section title="Статус">
<Flex>
<Flex.Item mr="20px" color="grey">
<Flex.Item width="50%" mt={0.8} color="grey">
Заряд тонера:
</Flex.Item>
<Flex.Item
mr="5px"
color={data.toner > 0 ? 'good' : 'bad'}
bold
>
{data.toner}
<Flex.Item width="50%" mt={0.5}>
<ProgressBar minValue={0} maxValue={30} value={data.toner} />
</Flex.Item>
</Flex>
<Flex>
<Flex.Item width="100%" mt="8px">
<Flex.Item width="100%" mt={2}>
<Button
fluid
textAlign="center"
Expand Down Expand Up @@ -91,7 +97,7 @@ export const Photocopier220 = (props, context) => {
</Section>
<Section title="Управление">
<Flex>
<Flex.Item width="60%" mr="3px">
<Flex.Item grow={1} basis={0} mr="2px">
<Button
fluid
textAlign="center"
Expand All @@ -101,7 +107,7 @@ export const Photocopier220 = (props, context) => {
onClick={() => act('copy')}
/>
</Flex.Item>
<Flex.Item width="40%" mr="3px">
<Flex.Item grow={1} basis={0} ml="2px">
<Button
fluid
textAlign="center"
Expand All @@ -127,102 +133,96 @@ export const Photocopier220 = (props, context) => {
</Flex.Item>
</Flex>
<Flex>
<Flex.Item mr="10px" mt="10px" color="grey">
<Flex.Item mr="10px" mt={1.2} color="grey">
Количество:
</Flex.Item>
<Flex.Item mr="15px" mt="10px">
{data.copynumber}
</Flex.Item>
<Flex.Item mr="3px" mt="8px">
<Button
fluid
icon="minus"
textAlign="center"
disabled={data.copynumber === 1}
content=""
onClick={() => act('minus')}
/>
</Flex.Item>
<Flex.Item mr="3px" mt="8px">
<Button
fluid
icon="plus"
textAlign="center"
disabled={data.copynumber >= data.toner}
content=""
onClick={() => act('add')}
/>
</Flex.Item>
<Slider
ml={3.25}
mt={0.75}
animated
minValue={1}
maxValue={maxcopies}
value={copies}
onChange={(e, value) =>
act('copies', {
new: value,
})
}
/>
</Flex>
</Section>
<Section title="Бюрократия">
<Flex>
<Flex.Item mr="20px" color="grey">
Форма:
</Flex.Item>
<FlexItem bold>
{data.form_id === '' ? 'Не выбрана' : data.form_id}
</FlexItem>
</Flex>
<Flex direction="column" mt={2}>
<Flex.Item>
<Button
fluid
icon="chevron-right"
content="Все формы"
selected={data.category === '' ? 'selected' : null}
onClick={() =>
act('choose_category', {
category: null,
})
}
mb={1}
/>
</Flex.Item>
{categories.map((category) => (
<Flex.Item key={category}>
<Flex.Item className="Layout__content--flexColumn" height="355px">
<Section title="Бюрократия" flexGrow="1">
<Flex>
<Flex.Item mr={2} color="grey">
Форма:
</Flex.Item>
<FlexItem bold>
{data.form_id === '' ? 'Не выбрана' : data.form_id}
</FlexItem>
</Flex>
<Flex direction="column" mt={2}>
<Flex.Item>
<Button
mb={1}
mt={0.5}
fluid
key={category}
icon="chevron-right"
content={category}
selected={data.category === category ? 'selected' : null}
content="Все формы"
selected={!data.category}
onClick={() =>
act('choose_category', {
category: category,
category: null,
})
}
mb={1}
/>
</Flex.Item>
))}
</Flex>
</Section>
{categories.map((category) => (
<Flex.Item key={category}>
<Button
mb={1}
fluid
key={category}
icon="chevron-right"
content={category}
selected={data.category === category}
onClick={() =>
act('choose_category', {
category: category,
})
}
/>
</Flex.Item>
))}
</Flex>
</Section>
</Flex.Item>
</Flex.Item>
<Flex.Item width={35}>
<Section title={data.category === '' ? 'Все формы' : data.category}>
<Flex.Item basis="65%" className="Layout__content--flexColumn">
<Section
title={data.category || 'Все формы'}
flexGrow="1"
>
<Input
fluid
mb={1}
placeholder="Поиск формы"
onInput={(e, value) => setSearchText(value)}
/>
<Flex direction="column" mt={2}>
<Flex direction="column" mt={1.6} wrap="wrap">
{category.map((form) => (
<Flex.Item key={form.path}>
<Button
mb={1}
fluid
key={form.path}
content={form.id + ': ' + form.altername.trimLongStr(27)}
tooltip={form.id + ': ' + form.altername}
selected={data.form_id === form.id ? 'selected' : null}
content={form.id + ': ' + form.altername.trimLongStr(37)}
selected={data.form_id === form.id}
onClick={() =>
act('choose_form', {
path: form.path,
id: form.id,
})
}
mb={1}
/>
</Flex.Item>
))}
Expand Down
6 changes: 3 additions & 3 deletions tgui/packages/tgui/public/tgui.bundle.js

Large diffs are not rendered by default.

0 comments on commit 8edd5f4

Please sign in to comment.