forked from Baystation12/Baystation12
-
Notifications
You must be signed in to change notification settings - Fork 70
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Translate inegrated ciruit and another staff
- Loading branch information
Showing
6 changed files
with
1,112 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
83 changes: 83 additions & 0 deletions
83
mods/_rus/code/obj/modules_files/integrated_elecronics/assembly.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/obj/item/device/electronic_assembly | ||
desc = "Это корпус, используемый для сборки мелкой электроники." | ||
|
||
/obj/item/device/electronic_assembly/calc | ||
desc = "Это корпус, используемый для сборки мелкой электроники. Он напоминает карманный калькулятор." | ||
|
||
/obj/item/device/electronic_assembly/clam | ||
desc = "Это корпус, используемый для сборки мелкой электроники. У него конструкция типа \"раскладушка\"." | ||
|
||
/obj/item/device/electronic_assembly/simple | ||
desc = "Это корпус, используемый для сборки мелкой электроники. У него простая конструкция." | ||
|
||
/obj/item/device/electronic_assembly/hook | ||
desc = "Это корпус, используемый для сборки мелкой электроники. Похоже, что у него есть зажим для ремня." | ||
|
||
/obj/item/device/electronic_assembly/pda | ||
desc = "Это корпус, используемый для сборки мелкой электроники. Он напоминает КПК." | ||
|
||
/obj/item/device/electronic_assembly/augment | ||
desc = "Это корпус, используемый для сборки мелкой электроники. Он предназначен для установки внутри кибернетического импланта." | ||
|
||
/obj/item/device/electronic_assembly/medium | ||
desc = "Это корпус, используемый для сборки электроники." | ||
|
||
/obj/item/device/electronic_assembly/medium/box | ||
desc = "Это корпус, используемый для сборки электроники. У него коробчатая конструкция." | ||
|
||
/obj/item/device/electronic_assembly/medium/clam | ||
desc = "Это корпус, используемый для сборки электроники. У него конструкция ноутбука." | ||
|
||
/obj/item/device/electronic_assembly/medium/medical | ||
desc = "Это корпус, используемый для сборки электроники. Он напоминает какой-то медицинский аппарат." | ||
|
||
/obj/item/device/electronic_assembly/medium/gun | ||
desc = "Это корпус, используемый для сборки электроники. Он напоминает пистолет или какой-нибудь инструмент, если вы настроены оптимистично. Он может стрелять и бросать предметы, пока пользователь держит его в руках." | ||
|
||
/obj/item/device/electronic_assembly/medium/radio | ||
desc = "Это корпус, используемый для сборки электроники. Он напоминает старый радиоприемник." | ||
|
||
/obj/item/device/electronic_assembly/large | ||
desc = "Это корпус, используемый для сборки крупной электроники." | ||
|
||
/obj/item/device/electronic_assembly/large/scope | ||
desc = "Это корпус, используемый для сборки крупной электроники. Он напоминает осциллограф." | ||
|
||
/obj/item/device/electronic_assembly/large/terminal | ||
desc = "Это корпус, используемый для сборки крупной электроники. Он похож на компьютерный терминал." | ||
|
||
/obj/item/device/electronic_assembly/large/arm | ||
desc = "Это корпус, используемый для сборки крупной электроники. Он похож на роботизированную руку." | ||
|
||
/obj/item/device/electronic_assembly/large/tall | ||
desc = "Это корпус, используемый для сборки крупной электроники. Он довольно высокий." | ||
|
||
/obj/item/device/electronic_assembly/large/industrial | ||
desc = "Это корпус, используемый для сборки крупной электроники. Он напоминает какое-то промышленное оборудование." | ||
|
||
/obj/item/device/electronic_assembly/drone | ||
desc = "Это корпус, используемый для сборки мобильной электроники." | ||
|
||
/obj/item/device/electronic_assembly/drone/arms | ||
desc = "Это корпус, используемый для сборки мобильной электроники. Он вооружен и опасен." | ||
|
||
/obj/item/device/electronic_assembly/drone/secbot | ||
desc = "Это корпус, используемый для сборки мобильной электроники. Он напоминает Securitron." | ||
|
||
/obj/item/device/electronic_assembly/drone/medbot | ||
desc = "Это корпус, используемый для сборки мобильной электроники. Он напоминает Медибота." | ||
|
||
/obj/item/device/electronic_assembly/drone/genbot | ||
desc = "Это корпус, используемый для сборки мобильной электроники. У него дизайн универсального бота." | ||
|
||
/obj/item/device/electronic_assembly/drone/android | ||
desc = "Это огромный двуногий корпус, используемый для сборки мобильной электроники и чучел, похожих на гуманоидов." | ||
|
||
/obj/item/device/electronic_assembly/wallmount | ||
desc = "Это корпус, используемый для сборки электроники. У него намагниченная основа, позволяющая прикреплять его к стенам, но для удержания его на стене необходимо закрутить анкерные болты." | ||
|
||
/obj/item/device/electronic_assembly/wallmount/heavy | ||
desc = "Это корпус, используемый для сборки крупной электроники. У него намагниченная основа, позволяющая прикреплять его к стенам, но для удержания его на стене необходимо закрутить анкерные болты." | ||
|
||
/obj/item/device/electronic_assembly/wallmount/light | ||
desc = "Это корпус, используемый для сборки мелкой электроники. У него намагниченная основа, позволяющая прикреплять его к стенам, но для удержания его на стене необходимо закрутить анкерные болты." |
245 changes: 245 additions & 0 deletions
245
mods/_rus/code/obj/modules_files/integrated_elecronics/integrated_circuit.dm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,245 @@ | ||
/obj/item/integrated_circuit | ||
name = "интегральная микросхема" | ||
desc = "Это крошечная микросхема! Однако, похоже, она мало что умеет." | ||
|
||
/obj/item/integrated_circuit/rename_component() | ||
set name = "Rename Circuit" | ||
set category = "Object" | ||
set desc = "Rename your circuit, useful to stay organized." | ||
|
||
var/mob/M = usr | ||
if(!check_interactivity(M)) | ||
return | ||
|
||
var/input = sanitizeName(input(M, "Как вы хотите переименовать это?", "Переименовать", name) as null|text, allow_numbers = TRUE) | ||
if(check_interactivity(M)) | ||
if(!input) | ||
input = name | ||
to_chat(M, SPAN_NOTICE("Схема '[name]' теперь называется '[input]'.")) | ||
displayed_name = input | ||
/obj/item/integrated_circuit/interact(mob/user) | ||
. = ..() | ||
if(!check_interactivity(user)) | ||
return | ||
|
||
var/window_height = 350 | ||
var/window_width = 655 | ||
|
||
var/table_edge_width = "30%" | ||
var/table_middle_width = "40%" | ||
var/list/HTML = list() | ||
HTML += "<html><head><title>[src.displayed_name]</title></head><body>" | ||
HTML += "<div align='center'>" | ||
HTML += "<table border='1' style='undefined;table-layout: fixed; width: 80%'>" | ||
|
||
if(assembly) | ||
HTML += "<a href='?src=\ref[src];return=1'>\[Вернуться к сборке\]</a><br>" | ||
|
||
HTML += "<a href='?src=\ref[src];refresh=1'>\[Обновить\]</a> | " | ||
HTML += "<a href='?src=\ref[src];rename=1'>\[Переименовать\]</a> | " | ||
HTML += "<a href='?src=\ref[src];scan=1'>\[Скопировать референс\]</a>" | ||
if(assembly && removable) | ||
HTML += " | <a href='?src=\ref[assembly];component=\ref[src];remove=1'>\[Вынуть\]</a>" | ||
HTML += "<br>" | ||
|
||
HTML += "<colgroup>" | ||
HTML += "<col style='width: [table_edge_width]'>" | ||
HTML += "<col style='width: [table_middle_width]'>" | ||
HTML += "<col style='width: [table_edge_width]'>" | ||
HTML += "</colgroup>" | ||
|
||
var/column_width = 3 | ||
var/row_height = max(LAZYLEN(inputs), LAZYLEN(outputs), 1) | ||
|
||
for(var/i = 1 to row_height) | ||
HTML += "<tr>" | ||
for(var/j = 1 to column_width) | ||
var/datum/integrated_io/io = null | ||
var/words = list() | ||
var/height = 1 | ||
switch(j) | ||
if(1) | ||
io = get_pin_ref(IC_INPUT, i) | ||
if(io) | ||
words += "<b><a href='?src=\ref[src];act=wire;pin=\ref[io]'>[io.display_pin_type()] [io.name]</a> \ | ||
<a href='?src=\ref[src];act=data;pin=\ref[io]'>[io.display_data(io.data)]</a></b><br>" | ||
if(length(io.linked)) | ||
for(var/k in 1 to length(io.linked)) | ||
var/datum/integrated_io/linked = io.linked[k] | ||
words += "<a href='?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[linked]</a> \ | ||
@ <a href='?src=\ref[linked.holder]'>[linked.holder.displayed_name]</a><br>" | ||
|
||
if(LAZYLEN(outputs) > LAZYLEN(inputs)) | ||
height = 1 | ||
if(2) | ||
if(i == 1) | ||
words += "[src.displayed_name]<br>[src.name != src.displayed_name ? "([src.name])":""]<hr>[src.desc]" | ||
height = row_height | ||
else | ||
continue | ||
if(3) | ||
io = get_pin_ref(IC_OUTPUT, i) | ||
if(io) | ||
words += "<b><a href='?src=\ref[src];act=wire;pin=\ref[io]'>[io.display_pin_type()] [io.name]</a> \ | ||
<a href='?src=\ref[src];act=data;pin=\ref[io]'>[io.display_data(io.data)]</a></b><br>" | ||
if(length(io.linked)) | ||
for(var/k in 1 to length(io.linked)) | ||
var/datum/integrated_io/linked = io.linked[k] | ||
words += "<a href='?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[linked]</a> \ | ||
@ <a href='?src=\ref[linked.holder]'>[linked.holder.displayed_name]</a><br>" | ||
|
||
if(LAZYLEN(inputs) > LAZYLEN(outputs)) | ||
height = 1 | ||
HTML += "<td align='center' rowspan='[height]'>[jointext(words, null)]</td>" | ||
HTML += "</tr>" | ||
|
||
for(var/i in 1 to LAZYLEN(activators)) | ||
var/datum/integrated_io/io = activators[i] | ||
var/words = list() | ||
|
||
words += "<b><a href='?src=\ref[src];act=wire;pin=\ref[io]'>[SPAN_COLOR("#ff0000", io)]</a> " | ||
words += "<a href='?src=\ref[src];act=data;pin=\ref[io]'>[SPAN_COLOR("#ff0000", io.data ? "\<PULSE OUT\>" : "\<PULSE IN\>")]</a></b><br>" | ||
if(length(io.linked)) | ||
for(var/k in 1 to length(io.linked)) | ||
var/datum/integrated_io/linked = io.linked[k] | ||
words += "<a href='?src=\ref[src];act=unwire;pin=\ref[io];link=\ref[linked]'>[SPAN_COLOR("#ff0000", linked)]</a> \ | ||
@ <a href='?src=\ref[linked.holder]'>[SPAN_COLOR("#ff0000", linked.holder.displayed_name)]</a><br>" | ||
|
||
HTML += "<tr>" | ||
HTML += "<td colspan='3' align='center'>[jointext(words, null)]</td>" | ||
HTML += "</tr>" | ||
|
||
HTML += "</table>" | ||
HTML += "</div>" | ||
|
||
HTML += "<br>[SPAN_COLOR("#0000aa", "Нагруженность: [complexity]")]" | ||
HTML += "<br>[SPAN_COLOR("#0000aa", "Откат активации: [cooldown_per_use/10] сек")]" | ||
if(ext_cooldown) | ||
HTML += "<br>[SPAN_COLOR("#0000aa", "Откат внешних манипуляций: [ext_cooldown/10] сек")]" | ||
if(power_draw_idle) | ||
HTML += "<br>[SPAN_COLOR("#0000aa", "Потребление энергии: [power_draw_idle] Вт (В покое)")]" | ||
if(power_draw_per_use) | ||
HTML += "<br>[SPAN_COLOR("#0000aa", "Потребление энергии: [power_draw_per_use] Вт (В активном состоянии)")]" // Borgcode says that powercells' checked_use() takes joules as input. | ||
HTML += "<br>[SPAN_COLOR("#0000aa", extended_desc)]" | ||
|
||
HTML += "</body></html>" | ||
var/HTML_merged = jointext(HTML, null) | ||
if(assembly) | ||
show_browser(user, HTML_merged, "window=assembly-\ref[assembly];size=[window_width]x[window_height];border=1;can_resize=1;can_close=1;can_minimize=1") | ||
else | ||
show_browser(user, HTML_merged, "window=circuit-\ref[src];size=[window_width]x[window_height];border=1;can_resize=1;can_close=1;can_minimize=1") | ||
|
||
onclose(user, "assembly-\ref[src.assembly]") | ||
|
||
/obj/item/device/integrated_circuit_printer/interact(mob/user) | ||
if(!(in_range(src, user) || issilicon(user))) | ||
return | ||
|
||
if(isnull(current_category)) | ||
current_category = SScircuit.circuit_fabricator_recipe_list[1] | ||
|
||
//Preparing the browser | ||
var/datum/browser/popup = new(user, "printernew", "Принтер интегральных цепей", 800, 630) // Set up the popup browser window | ||
|
||
var/list/HTML = list() | ||
HTML += "<center><h2>Принтер интегральных цепей</h2></center><br>" | ||
if(debug) | ||
HTML += "<center><h3>DEBUG PRINTER -- Infinite materials. Cloning available.</h3></center>" | ||
else | ||
HTML += "Материалы: " | ||
var/list/dat = list() | ||
for(var/material in materials) | ||
var/material/material_datum = SSmaterials.get_material_by_name(material) | ||
dat += "[materials[material]]/[metal_max] [material_datum.display_name]" | ||
HTML += jointext(dat, "; ") | ||
HTML += ".<br><br>" | ||
|
||
if(config.allow_ic_printing || debug) | ||
HTML += "Клонирование сборок: [can_clone ? (fast_clone ? "Мгновенное" : "Доступно") : "Недоступно"].<br>" | ||
|
||
HTML += "Доступные схемы: [upgraded || debug ? "Улучшенные":"Обычные"]." | ||
if(!upgraded) | ||
HTML += "<br>Зачеркнутые схемы означают, что принтер недостаточно модернизирован для создания данных схем." | ||
|
||
HTML += "<hr>" | ||
if((can_clone && config.allow_ic_printing) || debug) | ||
HTML += "Здесь вы можете загрузить скрипт для вашей сборки.<br>" | ||
if(!cloning) | ||
HTML += " <A href='?src=\ref[src];print=load'>{Загрузить программу}</a> " | ||
else | ||
HTML += " {Загрузить программу}" | ||
if(!program) | ||
HTML += " {[fast_clone ? "Печать" : "Начать печать"] сборки}" | ||
else if(cloning) | ||
HTML += " <A href='?src=\ref[src];print=cancel'>{Отменить печать}</a>" | ||
else | ||
HTML += " <A href='?src=\ref[src];print=print'>{[fast_clone ? "Печать" : "Начать печать"] сборки}</a>" | ||
|
||
HTML += "<br><hr>" | ||
HTML += "Категории:" | ||
for(var/category in SScircuit.circuit_fabricator_recipe_list) | ||
if(category != current_category) | ||
HTML += " <a href='?src=\ref[src];category=[category]'>\[[category]\]</a> " | ||
else // Bold the button if it's already selected. | ||
HTML += " <b>\[[category]\]</b> " | ||
HTML += "<hr>" | ||
HTML += "<center><h4>[current_category]</h4></center>" | ||
|
||
var/list/current_list = SScircuit.circuit_fabricator_recipe_list[current_category] | ||
for(var/path in current_list) | ||
var/obj/O = path | ||
var/can_build = TRUE | ||
if(ispath(path, /obj/item/integrated_circuit)) | ||
var/obj/item/integrated_circuit/IC = path | ||
if((initial(IC.spawn_flags) & IC_SPAWN_RESEARCH) && (!(initial(IC.spawn_flags) & IC_SPAWN_DEFAULT)) && !upgraded) | ||
can_build = FALSE | ||
if(can_build) | ||
HTML += "<A href='?src=\ref[src];build=\ref[path]'>\[[initial(O.name)]\]</A>: [initial(O.desc)]<br>" | ||
else | ||
HTML += "<s>\[[initial(O.name)]\]</s>: [initial(O.desc)]<br>" | ||
|
||
popup.set_content(JOINTEXT(HTML)) | ||
popup.open() | ||
|
||
/obj/item/device/electronic_assembly/open_interact(mob/user) | ||
var/total_part_size = return_total_size() | ||
var/total_complexity = return_total_complexity() | ||
var/list/HTML = list() | ||
|
||
HTML += "<html><head><title>[name]</title></head><body>" | ||
|
||
HTML += "<a href='?src=\ref[src]'>\[Обновить\]</a> | <a href='?src=\ref[src];rename=1'>\[Переименовать\]</a><br>" | ||
HTML += "[total_part_size]/[max_components] занимаемое пространство в сборке.<br>" | ||
HTML += "[total_complexity]/[max_complexity] нагруженность сборки.<br>" | ||
if(battery) | ||
HTML += "[round(battery.charge, 0.1)]/[battery.maxcharge] ([round(battery.percent(), 0.1)]%) заряд батареи. <a href='?src=\ref[src];remove_cell=1'>\[Вынуть\]</a>" | ||
else | ||
HTML += SPAN_DANGER("Батарея не обнаружена!") | ||
|
||
if(length(assembly_components)) | ||
HTML += "<br><br>" | ||
HTML += "Компоненты:<br>" | ||
|
||
var/start_index = ((components_per_page * interact_page) + 1) | ||
for(var/i = start_index to min(length(assembly_components), start_index + (components_per_page - 1))) | ||
var/obj/item/integrated_circuit/circuit = assembly_components[i] | ||
HTML += "\[ <a href='?src=\ref[src];component=\ref[circuit];set_slot=1'>[i]</a> \] | " | ||
HTML += "<a href='?src=\ref[src];component=\ref[circuit];rename_component=1'>\[П\]</a> | " | ||
if(circuit.removable) | ||
HTML += "<a href='?src=\ref[src];component=\ref[circuit];remove=1'>\[-\]</a> | " | ||
else | ||
HTML += "\[-\] | " | ||
HTML += "<a href='?src=\ref[src];component=\ref[circuit];examine_component=1'>[circuit.displayed_name]</a>" | ||
HTML += "<br>" | ||
|
||
if(length(assembly_components) > components_per_page) | ||
HTML += "<br>\[" | ||
for(var/i = 1 to ceil(length(assembly_components)/components_per_page)) | ||
if((i-1) == interact_page) | ||
HTML += " [i]" | ||
else | ||
HTML += " <a href='?src=\ref[src];select_page=[i-1]'>[i]</a>" | ||
HTML += " \]" | ||
|
||
HTML += "</body></html>" | ||
show_browser(user, jointext(HTML, null), "window=assembly-\ref[src];size=655x350;border=1;can_resize=1;can_close=1;can_minimize=1") |
Oops, something went wrong.