Перейти к публикации
Форум - ComputerCraft
  • 0
ZloyApelsihchik

Вопрос по свитчам библиотеки GUI от ESC

Вопрос

Здравствуйте. 
Прошу помощи у знаю людей. Сам в программировании не ало (только начальные знания из уроков 1ridav).  
Решил я написать красивую, мульти-пульти, программу для управления редстоуном. Для реализации интерфейса я решил воспользоваться библbотекой GUI от ESC, но из      документации я мало что понял, поэтому собирал интерфейс по кускам из того что находил. Я сделал "основу" для интерфейса и у меня возникла потребность в свитчах (Вкл/выкл определенную сторону от красного контроллера), вот нарисовал я этот свитч, а вот с крепежом к нему функции вкл/выкл возникла проблема
А проблема собственно вот в чём:

Я нажимаю на свитч, он переходит в состояние true и сигнал включается, потом нажимаю еще раз, он переходит в состояние false, сигнал выключается. Казалось бы, работает, но не тут то было. Если нажимать на свитч последующие разы, то происходит ровным счётом ничего. Поработало 2 раза и всё. 

local GUI = require("GUI")
local component = require("component")
local sides = require("sides")
local rs = component.redstone 
------------------------------------------------------------------------------------------

local mainContainer = GUI.fullScreenContainer()
mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x2D2D2D))

local menu = mainContainer:addChild(GUI.menu(1, 1, mainContainer.width, 0xEEEEEE, 0x666666, 0x3366CC, 0xFFFFFF, nil))
menu:addItem("test", 0x0)

local function RemoteRedstone()
 rs.setOutput(sides.top, 15)
end

local function RedstoneOff()
rs.setOutput(sides.top, 0)
end

local switch2 = mainContainer:addChild(GUI.switch(3, 12, 8, 0x66DB80, 0x1D1D1D, 0xEEEEEE, false))
switch2.onStateChanged = function(state)
RedstoneOff()
switch2.onStateChanged = function(state)	
RemoteRedstone()
end
end
----------------------------------------

mainContainer:drawOnScreen(true)
mainContainer:startEventHandling()


Я из своих жалких знаний о программировании могу предположить, что нужно сделать то ли цикл, то ли еще что то, но я не имею представления как. 


Вообщем заранее спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 1

Так писал бы в тему гуйки, че форум-то засорять. А ошибка забавна: при каждом нажатии на кнопку сначала отрубается сигнал редстоуна, а затем функция switch2.onStateChanged переназначается во время своего же выполнения. Крч, уот так будет пахать:

switch2.onStateChanged = function()
  -- Проверяй, какое состояние имеет switch после переключения: вкл или выкл
  if switch2.state then
    RemoteRedstone()
  else
    RedstoneOff()
  end
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Мяу, спасибо большое :з
Кстати на ютубе эт я тебе писал ^^

Ну, раз есть такая возможность спрошу еще на счёт того как можно к списку GUI.comboBox подключить список цветов для бандлед проводов например, так что бы вместе с выбр. числом изменялось еще в самой функции сила сигнала. 
Я планировал сделать менюшку из которой будет выдвигаться список подключённых контроллеров которые можно будет переименовывать. И после выбора опр. контроллера будет восходить 6 строчек (каждая строчка олицетворяет сторону контроллера) на которых будут кнопки или же комбобоксы, где можно будет выбрать: цвет исходящего сигнала, сила сигнала, вкл/выкл сигнал. А и поле под название стороны еще. 
Ну придумать, я придумал, а вот реализовать, смогу не знаю.
Ну в вообщем спасибо огромное.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
2 минуты назад, ZloyApelsihchik сказал:

Ну, раз есть такая возможность спрошу еще на счёт того как можно к списку GUI.comboBox подключить список цветов для бандлед проводов например, так что бы вместе с выбр. числом изменялось еще в самой функции сила сигнала. 

 

Не понял вопроса и конечной задачи, прости.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
1 час назад, ECS сказал:

 

Не понял вопроса и конечной задачи, прости.

Ох, моя пунктуация кривая. 
Ладно, не важно. Спасибо за помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×