diff --git a/build.properties b/build.properties index 9b1818bb5..e57097530 100644 --- a/build.properties +++ b/build.properties @@ -1,6 +1,6 @@ minecraft.version=1.7.2 forge.version=10.12.0.1046 -oc.version=1.2.5 +oc.version=1.2.6 ccl.version=1.0.0.62 fmp.version=1.0.0.250 maven.url=file:///var/www/users/fnuecke/maven.cil.li \ No newline at end of file diff --git a/src/main/resources/assets/opencomputers/lang/de_DE.lang b/src/main/resources/assets/opencomputers/lang/de_DE.lang index b8a4cf697..2488baf88 100644 --- a/src/main/resources/assets/opencomputers/lang/de_DE.lang +++ b/src/main/resources/assets/opencomputers/lang/de_DE.lang @@ -48,6 +48,7 @@ oc:item.HardDiskDrive0.name=Festplatte (Stufe 1) oc:item.HardDiskDrive1.name=Festplatte (Stufe 2) oc:item.HardDiskDrive2.name=Festplatte (Stufe 3) oc:item.InternetCard.name=Internetkarte +oc:item.Interweb.name=Interweb oc:item.IronNugget.name=Eisennugget oc:item.Memory0.name=Speicher (Stufe 1) oc:item.Memory1.name=Speicher (Stufe 2) @@ -139,6 +140,7 @@ oc:tooltip.DiskDrive.CC=ComputerCraft-Disketten werden §aunterstützt§7. oc:tooltip.DiskDrive=Erlaubt es, Disketten zu lesen und zu beschreiben. oc:tooltip.GraphicsCard=Erlaubt es, den angezeigten Inhalt von Bildschirmen zu ändern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7.[nl] Operationen/Tick: §f%s§7. oc:tooltip.InternetCard=Diese Karte erlaubt es, HTTP-Anfragen zu senden und echte TCP Sockets zu verwenden. +oc:tooltip.Interweb=Kann in einer Internetkarte verwendet werden, um Computer mit dem rechtsfreien Raum kommunizieren zu lassen. oc:tooltip.IronNugget=Ein Nugget, das aus Eisen besteht, darum wird es ja auch Eisennugget genannt, duh... oc:tooltip.Keyboard=Kann an Bildschirmen befestigt werden, um auf ihnen zu tippen. oc:tooltip.Hologram=Ein Volumendisplay, das beliebige, von Computern festgelegte Voxelstrukturen anzeigt.[nl] Auflösung: §f48x32x48§7. [nl] Farbtiefe: §fMonochrom§7. diff --git a/src/main/resources/assets/opencomputers/lang/en_US.lang b/src/main/resources/assets/opencomputers/lang/en_US.lang index 7940b2e27..2a14b02ca 100644 --- a/src/main/resources/assets/opencomputers/lang/en_US.lang +++ b/src/main/resources/assets/opencomputers/lang/en_US.lang @@ -48,6 +48,7 @@ oc:item.HardDiskDrive0.name=Hard Disk Drive (Tier 1) oc:item.HardDiskDrive1.name=Hard Disk Drive (Tier 2) oc:item.HardDiskDrive2.name=Hard Disk Drive (Tier 3) oc:item.InternetCard.name=Internet Card +oc:item.Interweb.name=Interweb oc:item.IronNugget.name=Iron Nugget oc:item.Memory0.name=Memory (Tier 1) oc:item.Memory1.name=Memory (Tier 2) @@ -139,6 +140,7 @@ oc:tooltip.DiskDrive.CC=ComputerCraft floppies are §asupported§7. oc:tooltip.DiskDrive=Allows reading and writing floppies. oc:tooltip.GraphicsCard=Used to change what's displayed on screens.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7.[nl] Operations/tick: §f%s§7. oc:tooltip.InternetCard=This card allows making HTTP requests and using real TCP sockets. +oc:tooltip.Interweb=Congratulations, you win one (1) interweb. You can connect to it using an Internet Card. Beware: don't feed the trolls. oc:tooltip.IronNugget=A nugget made of iron, that's why it's called an Iron Nugget, duh... oc:tooltip.Keyboard=Can be attached to screens to allow typing on them. oc:tooltip.Hologram=A volumetric display that can be controlled by computers to display arbitrary voxel structures.[nl] Resolution: §f48x32x48§7. [nl] Color depth: §fMonochrome§7. diff --git a/src/main/resources/assets/opencomputers/lang/ru_RU.lang b/src/main/resources/assets/opencomputers/lang/ru_RU.lang index 82bfbbc9a..7457d3f97 100644 --- a/src/main/resources/assets/opencomputers/lang/ru_RU.lang +++ b/src/main/resources/assets/opencomputers/lang/ru_RU.lang @@ -1,31 +1,33 @@ -# Russian localization by YuRaNnNzZZ -# Use UTF-8 for this file. +# Изначальный перевод от YuRaNnNzZZ. Обновления, дополнения и улучшения от Sodiet. +# Используйте UTF-8 в этом файле. -# Blocks +# Блоки oc:tile.Adapter.name=Адаптер oc:tile.Cable.name=Кабель oc:tile.Capacitor.name=Конденсатор -oc:tile.Case0.name=Системный блок 1-го уровня -oc:tile.Case1.name=Системный блок 2-го уровня -oc:tile.Case2.name=Системный блок 3-го уровня +oc:tile.Case0.name=Системный блок (Ур. 1) +oc:tile.Case1.name=Системный блок (Ур. 2) +oc:tile.Case2.name=Системный блок (Ур. 3) oc:tile.Charger.name=Зарядное устройство oc:tile.DiskDrive.name=Дисковод oc:tile.Keyboard.name=Клавиатура +oc:tile.Hologram.name=Голографический проектор oc:tile.PowerConverter.name=Преобразователь энергии -oc:tile.PowerDistributor.name=Передатчик энергии +oc:tile.PowerDistributor.name=Распределитель энергии oc:tile.Redstone.name=Обработчик сигналов красной пыли oc:tile.Robot.name=Робот oc:tile.RobotAfterimage.name=Робот -oc:tile.Router.name=Маршрутизатор +oc:tile.Router.name=Коммутатор oc:tile.Screen0.name=Дисплей (Ур. 1) oc:tile.Screen1.name=Дисплей (Ур. 2) oc:tile.Screen2.name=Дисплей (Ур. 3) oc:tile.ServerRack.name=Серверная стойка +oc:tile.WirelessRouter.name=Точка доступа -# Items +# Предметы oc:item.AbstractBusCard.name=Плата абстрактной шины -oc:item.Acid.name=Кислота -oc:item.ALU.name=Арифметико-логическое устройство +oc:item.Acid.name=Грог +oc:item.ALU.name=Арифметико-логическое устройство (АЛУ) oc:item.Analyzer.name=Анализатор oc:item.ArrowKeys.name=Клавиши со стрелками oc:item.ButtonGroup.name=Группа клавиш @@ -44,21 +46,21 @@ oc:item.GraphicsCard2.name=Видеокарта (Ур. 3) oc:item.HardDiskDrive0.name=Жёсткий диск (Ур. 1) oc:item.HardDiskDrive1.name=Жёсткий диск (Ур. 2) oc:item.HardDiskDrive2.name=Жёсткий диск (Ур. 3) -oc:item.InternetCard.name=Интернет-адаптер +oc:item.InternetCard.name=Интернет-плата oc:item.IronNugget.name=Железный самородок oc:item.Memory0.name=ОЗУ (Ур. 1) oc:item.Memory1.name=ОЗУ (Ур. 2) oc:item.Memory2.name=ОЗУ (Ур. 2.5) oc:item.Memory3.name=ОЗУ (Ур. 3) oc:item.Memory4.name=ОЗУ (Ур. 3.5) -oc:item.Microchip0.name=Микросхема (Ур. 1) -oc:item.Microchip1.name=Микросхема (Ур. 2) -oc:item.Microchip2.name=Микросхема (Ур. 3) -oc:item.NetworkCard.name=Сетевой адаптер -oc:item.NumPad.name=Цифровые клавиши +oc:item.Microchip0.name=Микрочип (Ур. 1) +oc:item.Microchip1.name=Микрочип (Ур. 2) +oc:item.Microchip2.name=Микрочип (Ур. 3) +oc:item.NetworkCard.name=Сетевая плата +oc:item.NumPad.name=Цифровой блок oc:item.PrintedCircuitBoard.name=Печатная плата oc:item.RawCircuitBoard.name=Основа для печатной платы -oc:item.RedstoneCard.name=Плата-обработчик сигналов красной пыли +oc:item.RedstoneCard.name=Редстоун-плата oc:item.Server0.name=Сервер (Ур. 1) oc:item.Server1.name=Сервер (Ур. 2) oc:item.Server2.name=Сервер (Ур. 3) @@ -71,24 +73,28 @@ oc:item.UpgradeSign.name=Работа с табличками (Улучшени oc:item.UpgradeSolarGenerator.name=Солнечная панель (Улучшение) oc:item.WirelessNetworkCard.name=Адаптер беспроводной сети -# GUI +# Интерфейс oc:gui.Analyzer.Address=§6Адрес§f: %s oc:gui.Analyzer.AddressCopied=Адрес скопирован в буфер обмена. oc:gui.Analyzer.ChargerSpeed=§6Скорость зарядки§f: %s oc:gui.Analyzer.ComponentName=§6Компонент§f: %s -oc:gui.Analyzer.Components=§6Кол-во подключенных компонентов§f: %s +oc:gui.Analyzer.Components=§6Количество подключенных компонентов§f: %s oc:gui.Analyzer.LastError=§6Последняя ошибка§f: %s oc:gui.Analyzer.RobotName=§6Имя робота§f: %s oc:gui.Analyzer.RobotOwner=§6Владелец робота§f: %s -oc:gui.Analyzer.RobotXp=§6Опыт робрта§f: %s (%s уровень) +oc:gui.Analyzer.RobotXp=§6Опыт робота§f: %s (Уровень: %s) oc:gui.Analyzer.StoredEnergy=§6Накоплено энергии§f: %s oc:gui.Analyzer.TotalEnergy=§6Всего накоплено энергии§f: %s oc:gui.Analyzer.Users=§6Пользователи§f: %s +oc:gui.Analyzer.WirelessStrength=§6Уровень сигнала§f: %s +oc:gui.Chat.NewVersion=Доступна новая версия: %s +oc:gui.Chat.WarningFingerprint=§cВНИМАНИЕ§f - несовпадение fingerprint! Ожидаемый: '§a%s§f', полученный: '§e%s§f'. Если Вы не разработчик, использующий деобфусцированную версию мода, то §lкрайне§f желательно заново скачать OpenComputers, поскольку JAR-файл, вероятнее всего, подделан. +oc:gui.Chat.WarningPower=Подходящие моды, предоставляющие энергию, не найдены. Компьютеры, дисплеи и прочие компоненты §lне будут§f требовать энергию. Для активации данной функции установите один из следующих модов: BuildCraft, IndustrialCraft2, Thermal Expansion или Universal Electricity. Отключите требование энергии в конфиг-файле, чтобы скрыть это предупреждение. oc:gui.Chat.WarningLuaFallback=Родные библиотеки Lua не доступны, компьютеры не смогут сохранять своё состояние. Они перезагрузятся после выгрузки чанка. oc:gui.Chat.WarningProjectRed=Вы используете версию Project: Red, несовместимую с OpenComputers. Попробуйте обновить Project: Red. oc:gui.Error.ComponentOverflow=Слишком много компонентов подключено к компьютеру. -oc:gui.Error.DaylightCycle=Пожалуйста, включите doDaylightCycle для работы компьютеров. -oc:gui.Error.InternalError=Внутренняя ошибка, пожалуйста посмотрите лог-файл. Возможно это баг. +oc:gui.Error.DaylightCycle=Компьютеры не работают, если время заморожено. Пожалуйста, активируйте "doDaylightCycle". +oc:gui.Error.InternalError=Внутренняя ошибка, пожалуйста посмотрите лог-файл. Возможно, это баг. oc:gui.Error.NoCPU=Не установлен центральный процессор. oc:gui.Error.NoEnergy=Недостаточно энергии. oc:gui.Error.NoRAM=Не установлена ОЗУ. @@ -103,67 +109,69 @@ oc:gui.ServerRack.Left=Слева oc:gui.ServerRack.Right=Справа oc:gui.ServerRack.Top=Сверху oc:gui.ServerRack.WirelessRange=Радиус -oc:gui.Terminal.InvalidKey=Неверный ключ, возможно к серверу уже подключен другой терминал. +oc:gui.Terminal.InvalidKey=Неверный ключ, возможно, к серверу уже подключен другой терминал. oc:gui.Terminal.OutOfRange=Нет сигнала от сервера. -# Containers +# Хранилища oc:container.Case=Системный блок oc:container.DiskDrive=Дисковод oc:container.Rack=Серверная стойка oc:container.Server=Сервер -# Item / Block Tooltips -oc:tooltip.AbstractBusCard=Позволяет использовать отправлять и принимать LIP-пакеты через абстрактную шину из мода §fStargateTech 2§7. +# Подсказки для Предметов / Блоков +oc:tooltip.AbstractBusCard=Обеспечивает взаимодействие с абстрактной шиной из §fStargateTech 2§7 (отправка и прием LIP-пакетов). oc:tooltip.Acid=Высокотоксичная псевдо-жидкость, как правило, употребляемая некоторыми пиратами. Благодаря своей агрессивной природе она идеально подходит для травления печатных плат. -oc:tooltip.Adapter=Используется для контроля некомпонентных блоков, например блоков из других модов. +oc:tooltip.Adapter=Используется для контроля некомпонентных блоков (например, блоки из других модов). oc:tooltip.ALU=Выполняет арифметические вычисления, так что вам не придётся возиться с ними. oc:tooltip.Analyzer=Используется для отображения информации о компонентах, например их §fадрес§7 или §fимя§7.[nl] Также отображает ошибку, вызвавшую сбой компонента. oc:tooltip.Cable=Лёгкий и дешёвый способ соединить компоненты между собой. oc:tooltip.Capacitor=Накапливает энергию для дальнейшего использования. Может быть очень быстро заполнен и опустошён. -oc:tooltip.CardBase=Можно понять по названию, что это основа для всех карт расширения. -oc:tooltip.Case=Системный блок - основа компьютера и может быть улучшен §fкартами расширения§7, §fОЗУ§7 и §fжёсткими дисками§7.[nl] Слоты: §f%s§7. -oc:tooltip.Charger=Передаёт энергию из аккумуляторов роботам. Скорость зарядки зависит от §fсилы сигнала красной пыли§7, где отсутствие сигнала означает не заряжать, а полный сигнал - заряжать на полной скорости. +oc:tooltip.CardBase=Как видно из названия, это основа для всех карт расширения. +oc:tooltip.Case=Системный блок - основа компьютера, может быть улучшен §fкартами расширения§7, §fОЗУ§7 и §fжёсткими дисками§7.[nl] Количество слотов: §f%s§7. +oc:tooltip.Charger=Передаёт энергию из аккумуляторов роботам. Скорость передачи зависит от §fсилы сигнала красной пыли§7: отсутствие сигнала означает "не заряжать", а полный сигнал - "заряжать на полной скорости". oc:tooltip.CircuitBoard=Мы уже очень близки. Может быть вытравлена, чтобы получить печатную плату. -oc:tooltip.ControlUnit=Это штука, которая... контролирует... что-то. Она необходима, чтобы создать центральный процессор. Да, она очень важна. -oc:tooltip.CPU=Является важным компонентом в компьютере. Тактовая частота немного нестабильна, но что вы ожидали, когда он работает даже на карманных солнечных часах? +oc:tooltip.ControlUnit=Это штука, которая... контролирует... что-то. Она необходима, чтобы создать центральный процессор. Так что, да, она очень важна. +oc:tooltip.CPU=Является важным компонентом в компьютере. Тактовая частота немного нестабильна, но что вы ожидали, ведь он работает даже на карманных солнечных часах. Количество поддерживаемых компонентов: §f%s§7. oc:tooltip.CuttingWire=Используется для нарезки глиняных блоков в пластины. Рвётся после использования, что делает её очень неэффективным инструментом. oc:tooltip.Disk=Примитивный носитель, который может быть использован для создания постоянных запоминающих устройств. oc:tooltip.DiskDrive.CC=§aПоддерживаются§7 дискеты из ComputerCraft. oc:tooltip.DiskDrive=Позволяет читать и записывать дискеты. -oc:tooltip.GraphicsCard=Передаёт изображение на дисплей.[nl] Максимальное разрешение: §f%sx%s§7.[nl] Максимальная глубина цвета:§f%s§7.[nl] Операций/тик: §f%s§7. -oc:tooltip.InternetCard=Эта карта позволяет создавать HTTP-запросы и использует реальные TCP сокеты. -oc:tooltip.IronNugget=Самородок, созданный из железа. Может именно поэтому он и назван железным самородком, нет? -oc:tooltip.Keyboard=Может быть прикреплена к дисплеям, позволяя вводить информацию. +oc:tooltip.GraphicsCard=Передаёт изображение на дисплей.[nl] Максимальное разрешение: §f%sx%s§7.[nl] Максимальная глубина цвета:§f%s§7.[nl] Операций/такт: §f%s§7. +oc:tooltip.InternetCard=Эта карта позволяет создавать HTTP-запросы и использовать реальные TCP сокеты. +oc:tooltip.IronNugget=Самородок, созданный из железа. Может, именно поэтому он и назван железным самородком? Хм... +oc:tooltip.Keyboard=Присоединяется к дисплею, позволяя вводить информацию. +oc:tooltip.Hologram=Объемный дисплей, управляемый компьютером и использующийся для отображения произвольных воксельных структур.[nl] Разрешение: §f48x32x48§7. [nl] Глубина цвета: §fМонохромный§7. oc:tooltip.Memory=Необходима для запуска компьютера. Чем больше ОЗУ, тем более требовательные программы вы можете запустить. -oc:tooltip.Microchip=Схема, ранее известная как интегральная. Понятия не имею, как она работает с красной пылью, но она работает. -oc:tooltip.NetworkCard=Позволяет соединить компьютеры, удалённые друг от друга, в сеть для отправки сообщений между ними. -oc:tooltip.PowerConverter.BC=§fBuildCraft MJ§7: §a%s:%s§7. -oc:tooltip.PowerConverter.IC2=§fIndustrialCraft² EU§7: §a%s:%s§7. -oc:tooltip.PowerConverter.TE=§fThermal Expansion RF§7: §a%s:%s§7. -oc:tooltip.PowerConverter.UE=§fUniversal Electricity Joules§7: §a%s:%s§7. -oc:tooltip.PowerConverter=Конвертирует энергию из других модов для питания компонентов.[nl] Соотношения энергии: -oc:tooltip.PowerDistributor=Передаёт энергию между различными сетями. Это полезно, чтобы запитать несколько сетей, которые должны оставаться раздельными друг от друга. +oc:tooltip.Microchip=Чим, ранее известный как интегральная схема. Понятия не имею, как она работает с красной пылью, но она работает. +oc:tooltip.NetworkCard=Позволяет соединить компьютеры, удалённые друг от друга, в сеть (к примеру, с помощью кабеля) для отправки сообщений между ними. +oc:tooltip.PowerConverter.BC=§fBuildCraft (МДж)§7: §a%s:%s§7. +oc:tooltip.PowerConverter.IC2=§fIndustrialCraft² (еЭ)§7: §a%s:%s§7. +oc:tooltip.PowerConverter.TE=§fThermal Expansion (RF)§7: §a%s:%s§7. +oc:tooltip.PowerConverter.UE=§fUniversal Electricity (Дж)§7: §a%s:%s§7. +oc:tooltip.PowerConverter=Конвертирует энергию из других модов для питания компонентов.[nl] Соотношение энергии: +oc:tooltip.PowerDistributor=Передаёт энергию между различными сетями. Это полезно, когда требуется запитать несколько сетей, которые должны быть разделены, от одного преобразователя. oc:tooltip.PrintedCircuitBoard=Основа для плат, ОЗУ и прочего. oc:tooltip.RawCircuitBoard=Может быть закалена в печи для получения печатной платы. -oc:tooltip.Redstone=Позволяет принимать и излучать сигналы красной пыли вокруг компонента. Контролируется любым подключенным компьютером. +oc:tooltip.Redstone=Позволяет принимать и излучать сигналы красной пыли вокруг компонента. Контролируется любым подключенным компьютером. Является внешним аналогом редстоун-платы. oc:tooltip.RedstoneCard.RedLogic=§aПоддерживаются§7 провода из §fRedLogic§7. -oc:tooltip.RedstoneCard.RedNet=§aПоддерживается§7 провода из §fRedNet§7. +oc:tooltip.RedstoneCard.RedNet=§aПоддерживаются§7 провода из §fRedNet§7. oc:tooltip.RedstoneCard=Позволяет принимать и излучать сигналы красной пыли вокруг компьютера или робота. -oc:tooltip.Robot=В отличие от компьютеров, роботы могут передвигаться и взаимодействовать с миром как игрок. Но они не могут §oвзаимодействовать§r§7 с остальными компонентами. -# The underscore makes sure this isn't hidden with the rest of the tooltip. -oc:tooltip.Robot_Level=§fОпыт робота§7: §a%s§7. +oc:tooltip.Robot=В отличие от компьютеров, роботы могут передвигаться и взаимодействовать с миром, как игрок. Но они §oне могут§r§7 взаимодействовать с остальными компонентами. +# Подчеркивание необходимо для выделения наиболее важной информации в подсказке. +oc:tooltip.Robot_Level=§fУровень робота§7: §a%s§7. oc:tooltip.Robot_StoredEnergy=§fНакопленная энергия§7: §a%s§7. oc:tooltip.Router=Позволяет соединять различные сети между собой. Передаются только сообщения, компоненты между сетями недоступны. Используйте его для разделения сетей с возможностью пересылать сообщения между ними. -oc:tooltip.Screen=Отображает текст, передаваемый видеокартой.[nl] Максимальное разрешение экрана: §f%sx%s§7.[nl] Максимальная глубина цвета: §f%s§7. -oc:tooltip.Server=Это сервер, который может быть улучшен компонентами, как системный блок. Может быть включен, будучи вставленным в стойку.[nl] Количество поддерживаемых терминалов: §f%s§7. +oc:tooltip.Screen=Отображает текст, передаваемый видеокартой.[nl] Максимальное разрешение: §f%sx%s§7.[nl] Максимальная глубина цвета: §f%s§7. +oc:tooltip.Server=Это сервер, который может быть улучшен компонентами, как системный блок. Включается размещением в стойку.[nl] Количество поддерживаемых терминалов: §f%s§7. oc:tooltip.Server.Components=Установленные компоненты: -oc:tooltip.ServerRack=Обеспечивает работу до четырёх серверов. Предоставляет виртуальную клавиатуру и дисплей для подключения беспроводного терминала. -oc:tooltip.Terminal=Позволяет дистанционно управлять сервером, пока вы в радиусе его действия. Действует как портативный дисплей с клавиатурой.[nl] Shift+ПКМ на сервер в стойке для привязки терминала. -oc:tooltip.TooLong=Удерживайте Shift для расширенного описания. +oc:tooltip.ServerRack=Обеспечивает работу до четырёх серверов. Используйте беспроводной терминал для управления установленными серверами. +oc:tooltip.Terminal=Позволяет дистанционно управлять сервером, пока вы в радиусе его действия. Действует как портативный дисплей с клавиатурой.[nl] Shift+ПКМ по серверу в стойке для привязки к нему терминала. +oc:tooltip.TooLong=Удерживайте Shift, чтобы отобразить описание. oc:tooltip.Transistor=Базовый элемент в других частях компьютера. Он немного деформирован, но отлично выполняет свою работу. oc:tooltip.UpgradeCrafting=Позволяет роботам использовать верхнюю левую часть инвентаря для создания вещей. Вещи должны быть расположены в том порядке, что и в верстаке. oc:tooltip.UpgradeGenerator=Позволяет роботам генерировать энергию из сжигаемого топлива прямо на ходу.[nl] §fЭффективность§7: §a%s%%§7 -oc:tooltip.UpgradeNavigation=Позволяет определять положение и ориентацию робота. Положение определяется относительно центра карты. +oc:tooltip.UpgradeNavigation=Позволяет определять положение и ориентацию робота. Положение определяется относительно центра карты, использованной в крафте улучшения. oc:tooltip.UpgradeSign=Позволяет читать и писать текст на табличках. oc:tooltip.UpgradeSolarGenerator=Позволяет роботам генерировать энергию из солнечного света прямо на ходу. Требует линию прямой видимости неба над роботом. Генерирует энергию на скорости %s%% от топливного генератора. -oc:tooltip.WirelessNetworkCard=Позволяет передавать сетевые сообщения по беспроводному каналу. Не забудьте выставить §fсилу сигнала красной пыли§7, или сообщения отправлены не будут! +oc:tooltip.WirelessNetworkCard=Позволяет передавать сетевые сообщения по беспроводному каналу. Увеличение §fсилы сигнала§7 увеличивает и потребление энергии. +oc:tooltip.WirelessRouter=Работает как Коммутатор, но еще и с беспроводными сетями. diff --git a/src/main/resources/assets/opencomputers/recipes/default.recipes b/src/main/resources/assets/opencomputers/recipes/default.recipes index d0db1c199..9d0a4aa61 100644 --- a/src/main/resources/assets/opencomputers/recipes/default.recipes +++ b/src/main/resources/assets/opencomputers/recipes/default.recipes @@ -87,7 +87,7 @@ graphicsCard3 { ["", "oc:craftingCard", ""]] } internetCard { - input: [[web, "oc:circuitTier2", torchRedstoneActive] + input: [["oc:craftingInterweb", "oc:circuitTier2", torchRedstoneActive] ["", "oc:craftingCard", obsidian]] } redstoneCard { @@ -220,6 +220,12 @@ card { [nuggetIron, nuggetGold, ""]] } +interweb { + input: [[string, string, string] + [string, enderPearl, string] + [string, string, string]] +} + adapter { input: [[ingotIron, "oc:craftingCable", ingotIron] ["oc:craftingCable", "oc:circuitTier1", "oc:craftingCable"] diff --git a/src/main/resources/assets/opencomputers/recipes/hardmode.recipes b/src/main/resources/assets/opencomputers/recipes/hardmode.recipes index bb6fc78dc..eeb8ffe6d 100644 --- a/src/main/resources/assets/opencomputers/recipes/hardmode.recipes +++ b/src/main/resources/assets/opencomputers/recipes/hardmode.recipes @@ -89,7 +89,7 @@ graphicsCard3 { ["", "oc:craftingGPUTier2", ""]] } internetCard { - input: [[web, "oc:circuitTier3", torchRedstoneActive] + input: [["oc:craftingInterweb", "oc:circuitTier3", torchRedstoneActive] ["", "oc:componentCardWLan", obsidian]] } redstoneCard { @@ -227,6 +227,12 @@ card { [nuggetIron, nuggetGold, nuggetGold]] } +interweb { + input: [[string, enderPearl, string] + [enderPearl, string, enderPearl] + [string, enderPearl, string]] +} + adapter { input: [[ingotIron, "oc:craftingCable", ingotIron] ["oc:craftingCable", "oc:circuitTier1", "oc:craftingCable"] diff --git a/src/main/resources/assets/opencomputers/textures/items/interweb.png b/src/main/resources/assets/opencomputers/textures/items/interweb.png new file mode 100644 index 000000000..8b4728f1b Binary files /dev/null and b/src/main/resources/assets/opencomputers/textures/items/interweb.png differ diff --git a/src/main/scala/li/cil/oc/Items.scala b/src/main/scala/li/cil/oc/Items.scala index 818fef7fc..c1b74f6cd 100644 --- a/src/main/scala/li/cil/oc/Items.scala +++ b/src/main/scala/li/cil/oc/Items.scala @@ -67,6 +67,8 @@ object Items { var pcb: item.PrintedCircuitBoard = _ var card: item.CardBase = _ + var interweb: item.Interweb = _ + def init() { multi = new item.Delegator() @@ -138,11 +140,14 @@ object Items { server1 = Recipes.addItemDelegate(new item.Server(multi, 0), "server1") server2 = Recipes.addItemDelegate(new item.Server(multi, 1), "server2") - //v1.2.3 + // v1.2.3 lootDisk = new item.FloppyDisk(multi) { showInItemList = false } + // v1.2.6 + interweb = Recipes.addItemDelegate(new item.Interweb(multi), "interweb") + // Initialize API. api.Items.AbstractBusCard = abstractBus.createItemStack() api.Items.Acid = acid.createItemStack() @@ -197,41 +202,53 @@ object Items { registerExclusive("craftingPiston", new ItemStack(net.minecraft.init.Blocks.piston), new ItemStack(net.minecraft.init.Blocks.sticky_piston)) registerExclusive("nuggetGold", new ItemStack(net.minecraft.init.Items.gold_nugget)) registerExclusive("nuggetIron", ironNugget.createItemStack()) - register("oc:craftingCircuitBoardRaw", rawCircuitBoard.createItemStack()) - register("oc:craftingCircuitBoard", circuitBoard.createItemStack()) - register("oc:craftingCircuitBoardPrinted", pcb.createItemStack()) - register("oc:craftingCard", card.createItemStack()) - register("oc:craftingWire", cuttingWire.createItemStack()) - register("oc:circuitTier1", chip1.createItemStack()) - register("oc:circuitTier2", chip2.createItemStack()) - register("oc:circuitTier3", chip3.createItemStack()) - register("oc:craftingTransistor", transistor.createItemStack()) - register("oc:craftingCU", cu.createItemStack()) - register("oc:craftingALU", alu.createItemStack()) - register("oc:craftingCPUTier1", cpu0.createItemStack()) - register("oc:craftingCPUTier2", cpu1.createItemStack()) - register("oc:craftingCPUTier3", cpu2.createItemStack()) - register("oc:componentCardRedstone", rs.createItemStack()) - register("oc:componentCardLan", lan.createItemStack()) - register("oc:componentCardWLan", wlan.createItemStack()) - register("oc:craftingGPUTier1", gpu1.createItemStack()) - register("oc:craftingGPUTier2", gpu2.createItemStack()) - register("oc:craftingGPUTier3", gpu3.createItemStack()) + register("oc:craftingRAMTier1", ram1.createItemStack()) register("oc:craftingRAMTier2", ram2.createItemStack()) register("oc:craftingRAMTier3", ram3.createItemStack()) register("oc:craftingRAMTier4", ram4.createItemStack()) register("oc:craftingRAMTier5", ram5.createItemStack()) + register("oc:craftingHDDTier1", hdd1.createItemStack()) register("oc:craftingHDDTier2", hdd2.createItemStack()) register("oc:craftingHDDTier3", hdd3.createItemStack()) + + register("oc:craftingGPUTier1", gpu1.createItemStack()) + register("oc:craftingGPUTier2", gpu2.createItemStack()) + register("oc:craftingGPUTier3", gpu3.createItemStack()) + + register("oc:componentCardLan", lan.createItemStack()) + register("oc:componentCardRedstone", rs.createItemStack()) + register("oc:componentCardWLan", wlan.createItemStack()) + + register("oc:craftingGenerator", upgradeGenerator.createItemStack()) + register("oc:craftingSolarGenerator", upgradeSolarGenerator.createItemStack()) + + register("oc:craftingWire", cuttingWire.createItemStack()) + register("oc:craftingAcid", acid.createItemStack()) + register("oc:craftingDisk", disk.createItemStack()) + register("oc:craftingButtonGroup", buttonGroup.createItemStack()) register("oc:craftingArrowKey", arrowKeys.createItemStack()) register("oc:craftingNumPad", numPad.createItemStack()) - register("oc:craftingDisk", disk.createItemStack()) - register("oc:craftingAcid", acid.createItemStack()) - register("oc:craftingGenerator", upgradeGenerator.createItemStack()) - register("oc:craftingSolarGenerator", upgradeSolarGenerator.createItemStack()) + + register("oc:craftingTransistor", transistor.createItemStack()) + register("oc:circuitTier1", chip1.createItemStack()) + register("oc:circuitTier2", chip2.createItemStack()) + register("oc:circuitTier3", chip3.createItemStack()) + register("oc:craftingALU", alu.createItemStack()) + register("oc:craftingCU", cu.createItemStack()) + register("oc:craftingCPUTier1", cpu0.createItemStack()) + register("oc:craftingCPUTier2", cpu1.createItemStack()) + register("oc:craftingCPUTier3", cpu2.createItemStack()) + + register("oc:craftingCircuitBoardRaw", rawCircuitBoard.createItemStack()) + register("oc:craftingCircuitBoard", circuitBoard.createItemStack()) + register("oc:craftingCircuitBoardPrinted", pcb.createItemStack()) + register("oc:craftingCard", card.createItemStack()) + + register("oc:craftingInterweb", interweb.createItemStack()) + if (OreDictionary.getOres("nuggetIron").exists(ironNugget.createItemStack().isItemEqual)) { Recipes.addItemDelegate(ironNugget, "nuggetIron") diff --git a/src/main/scala/li/cil/oc/client/PacketSender.scala b/src/main/scala/li/cil/oc/client/PacketSender.scala index 70f064145..62f7786fa 100644 --- a/src/main/scala/li/cil/oc/client/PacketSender.scala +++ b/src/main/scala/li/cil/oc/client/PacketSender.scala @@ -3,6 +3,9 @@ package li.cil.oc.client import li.cil.oc.common.tileentity._ import li.cil.oc.common.tileentity.traits.{Computer, TextBuffer} import li.cil.oc.common.{CompressedPacketBuilder, PacketBuilder, PacketType, component} +import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.client.Minecraft +import net.minecraft.util.ResourceLocation import net.minecraftforge.common.util.ForgeDirection object PacketSender { @@ -54,21 +57,28 @@ object PacketSender { } def sendClipboard(b: component.Buffer, value: String) { - if (value != null && !value.isEmpty && System.currentTimeMillis() > clipboardCooldown) { - clipboardCooldown = System.currentTimeMillis() + value.length - val pb = new CompressedPacketBuilder(PacketType.Clipboard) - - b.owner match { - case t: TextBuffer if t.hasKeyboard => - pb.writeTileEntity(t) - case t: component.Terminal => - pb.writeTileEntity(t.rack) - pb.writeInt(t.number) - case _ => return + if (value != null && !value.isEmpty) { + if (System.currentTimeMillis() < clipboardCooldown) { + val player = Minecraft.getMinecraft.thePlayer + val handler = Minecraft.getMinecraft.getSoundHandler + handler.playSound(new PositionedSoundRecord(new ResourceLocation("note.harp"), 1, 1, player.posX.toFloat, player.posY.toFloat, player.posZ.toFloat)) } - pb.writeUTF(value.substring(0, math.min(value.length, 64 * 1024))) + else { + clipboardCooldown = System.currentTimeMillis() + value.length / 10 + val pb = new CompressedPacketBuilder(PacketType.Clipboard) - pb.sendToServer() + b.owner match { + case t: TextBuffer if t.hasKeyboard => + pb.writeTileEntity(t) + case t: component.Terminal => + pb.writeTileEntity(t.rack) + pb.writeInt(t.number) + case _ => return + } + pb.writeUTF(value.substring(0, math.min(value.length, 64 * 1024))) + + pb.sendToServer() + } } } diff --git a/src/main/scala/li/cil/oc/common/item/Interweb.scala b/src/main/scala/li/cil/oc/common/item/Interweb.scala new file mode 100644 index 000000000..7e8f98b06 --- /dev/null +++ b/src/main/scala/li/cil/oc/common/item/Interweb.scala @@ -0,0 +1,23 @@ +package li.cil.oc.common.item + +import java.util +import li.cil.oc.Settings +import li.cil.oc.util.Tooltip +import net.minecraft.client.renderer.texture.IIconRegister +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack + +class Interweb(val parent: Delegator) extends Delegate { + val unlocalizedName = "Interweb" + + override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) { + tooltip.addAll(Tooltip.get(unlocalizedName)) + super.tooltipLines(stack, player, tooltip, advanced) + } + + override def registerIcons(iconRegister: IIconRegister) { + super.registerIcons(iconRegister) + + icon = iconRegister.registerIcon(Settings.resourceDomain + ":interweb") + } +} diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala index 968f13333..3d43acfd9 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/BundledRedstoneAware.scala @@ -67,7 +67,7 @@ trait BundledRedstoneAware extends RedstoneAware with IBundledEmitter with IBund } } - onRedstoneOutputChanged() + onRedstoneOutputChanged(side) } // ----------------------------------------------------------------------- // diff --git a/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala b/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala index 37afe98d6..bf77163e8 100644 --- a/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala +++ b/src/main/scala/li/cil/oc/common/tileentity/traits/RedstoneAware.scala @@ -48,13 +48,7 @@ trait RedstoneAware extends RotationAware with IConnectable with IRedstoneEmitte def output(side: ForgeDirection, value: Int): Unit = if (value != output(side)) { _output(toLocal(side).ordinal()) = value - val nx = x + side.offsetX - val ny = y + side.offsetY - val nz = z + side.offsetZ - world.notifyBlockOfNeighborChange(nx, ny, nz, block) - world.notifyBlocksOfNeighborChange(nx, ny, nz, world.getBlock(nx, ny, nz), side.getOpposite.ordinal) - - onRedstoneOutputChanged() + onRedstoneOutputChanged(side) } def checkRedstoneInputChanged() { @@ -145,7 +139,13 @@ trait RedstoneAware extends RotationAware with IConnectable with IRedstoneEmitte else world.markBlockForUpdate(x, y, z) } - protected def onRedstoneOutputChanged() { + protected def onRedstoneOutputChanged(side: ForgeDirection) { + val nx = x + side.offsetX + val ny = y + side.offsetY + val nz = z + side.offsetZ + world.notifyBlockOfNeighborChange(nx, ny, nz, block) + world.notifyBlocksOfNeighborChange(nx, ny, nz, world.getBlock(nx, ny, nz), side.getOpposite.ordinal) + if (isServer) ServerPacketSender.sendRedstoneState(this) else world.markBlockForUpdate(x, y, z) } diff --git a/src/main/scala/li/cil/oc/util/ItemCosts.scala b/src/main/scala/li/cil/oc/util/ItemCosts.scala index 7562ef070..f4bdd97f3 100644 --- a/src/main/scala/li/cil/oc/util/ItemCosts.scala +++ b/src/main/scala/li/cil/oc/util/ItemCosts.scala @@ -26,6 +26,7 @@ object ItemCosts { terminate(Blocks.stone) terminate(Items.blaze_rod) terminate(Items.bucket) + terminate(Items.clay_ball) terminate(Items.coal) terminate(Items.diamond) for (i <- 0 to 15) terminate(Items.dye, i)