Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Inne] Projekt prac nad projektem IndustralBox/technic - elektrownia atomowa


dzejQ97

Rekomendowane odpowiedzi

Opublikowano

Witam, co niektórzy może kojarzą moje stare projekty elektrowni które były też na tym forum, ostatnio wymyśliło mi sie znowu wrócic do budowy elektrowni, bede na bieżąco opisywał tutaj postęp prac wraz ze screenami. W planach mam uruchomienie 3 reaktorów po 250eu/t co razem daje 750eu/t z calej elektrowni. W aktualizacji IB zostały zamienione 2 mody tzn. computercraft został zmieniony na opencomputers co szczerze bardziej mi odpowiada :D Z elektrowni mam w planach zrobić rozdzielnie wysokiego napiecia na 5 linii, i z każdej linii po 3 rozdzielnie średniego napięcia dla przemysłu i z jednej linii wysokiego napięcia będzie rozdzielnie z tranformatorem na niskie napięcie do zasilania urządzeń domowych. Całość bedzie sterowana za pomocą systemu operacyjnego w opencomputers (autorski, zostanie napisany w LUA). Wrzuce narazie kilka screenów i krótkie opisy, resztę będe aktualizował a po ukończeniu prac być może wstawię download do mapki :)

 

Wstępne zarysy ścian i obudowy reaktorów czyli fundamenty budowy :D

 

 

2rKy8sb.png

 

 

 

Podstawy części biurowej, po lewej blok kontrolny czyli sterownia reaktorów z niej prowadzi korytarz do kazdej komory reaktora

 

 

jpiwRbk.png

 

 

 

Dobudowane kilka ścian i okien, na screenie nie widać ale w sterowni znajduje się juz komputer i podstawowe ekrany do obserwacji statusu reaktorów (temperatura, generowana moc itp.)

 

 

ED8KORL.png

 

 

 

Screen z góry

 

 

JpD3rZf.jpg

 

 

 

Jak tylko bede mial chwile czasu i podłącze reaktory to zacznę budowę kominów chłodniczych z czym mam problem bo nie potrafię budować takich okrągłych rzeczy w mc xD

Opublikowano

Wstępnie rozstawiłem komputer i podpiąłem okablowanie do bloku Wejscia/Wyjscia redstone. narazie jeszcze nie wygląda to zbyt urodziwie ale kwestia czasu, narazie to bedzie sluzylo do testów gdy będe pisał program sterujący elektrownią :)

 

 

 

oVkh6ff.pnghdq0mlS.png

 

 

Opublikowano

Popisałem troszkę kodu, narazie działa tylko nawigacja za pomocą strzałek po menu oraz przycisk exit (zatwierdzany za pomocą entera), całość będe prawdopodobnie pisał od nowa bo narazie poznaję tylko ten język i ucze się API, być może menu będzie wykorzystywało klik myszki, chyba że coś mnie najdzie i jednak zostawie na strzałkach co wg. mnie jest bardziej wygodne (klik na tym modzie troche laguje i ma opóźnienie). Kilka screenów

 

 

komputer ma kilka podpiętych baterii oraz panel słoneczny na dachu częsci biurowej, więc nawet podczas awarii zasilania można przez jakiś czas korzystać z systemu

 

 

zpXSJqc.png

 

 

 

 

 

SxyDbYZ.png

 

 

 

w kodzie narazie jest bałagan ale to wina tego że ciągle kminie ten język :D

 

 

IzNAqyj.png

 

 

Opublikowano

System napisany od nowa, działa wysyłanie sygnału redstone, bugów narazie nie odnotowałem, jak bede mial chwilę wolnego czasu to zacznę podłączać reaktory :)

 

 

 

23qVOJT.pngh06jS59.png

ZgzdZhe.png

44x689m.png

 

 

 

źródło

 

 

autorun.lua

local shell = require("shell")
shell.execute("main.lua") 

buttons.lua

local component = require("component")
local gpu = component.gpu
local w, h = gpu.getResolution()

buttons = {}
buttonsCount = 0

labels = {}
labelsCount = 0

option = 1

function tablesize(T)
	local count = 0
	for _ in pairs(T) do count = count + 1 end
	return count
end

function addButton( id, x, y, text, center)
	center = center or false

	if center == true then
	buttons[id] = {x - (string.len(text)/2), y, string.len(text), text}
	else
	buttons[id] = {x, y, string.len(text), text}
	end
end

function addLabel(id, x, y, text, color, center)
	center = center or false

	if center == true then
	labels[id] = {x - (string.len(text)/2), y, string.len(text), text, color}
	else
	labels[id] = {x, y, string.len(text), text, color}
	end
end

function drawLabels()
	for i, v in pairs(labels) do
		for ix, vx in pairs(labels[i]) do
			gpu.setForeground(labels[i][5])
			gpu.set(labels[i][1], labels[i][2], labels[i][4])
		end
	end
end

function drawButtons()
	for i, v in pairs(buttons) do
		for ix, vx in pairs(buttons[i]) do

			if option == i then
				gpu.setBackground(0xFF0000)
			end

			gpu.set(buttons[i][1], buttons[i][2], buttons[i][4])
			gpu.setBackground(0xFFFFFF)
		end
	end
end

main.lua

dofile("buttons.lua")
local component = require("component")
local keyboard = require("keyboard")
local computer = require("computer")
local event = require("event")
local term = require("term")
local shell = require("shell")
local gpu = component.gpu
local w, h = gpu.getResolution()
w = w+1
h = h+1

local drawAgain = true;

local _, _, _, char

addLabel(1, w/2, 2, "NuclearPowerPlantOS by SZajbuS", 0xFF00FF, true)
addLabel(2, w/2, 3, "v0.1", 0x00FF00, true)

addButton(1, w/2, 6, "Reactor 1", true)
addButton(2, w/2, 7, "Reactor 2", true)
addButton(3, w/2, 8, "Reactor 3", true)
addButton(4, w/2, 11, "Exit", true)
addButton(5, w/2, 12, "Reboot", true)
addButton(6, w/2, 13, "Program close", true)

buttonsCount = tablesize(buttons)

function drawMain()
	gpu.setBackground(0xFFFFFF)
	gpu.fill(0, 0, w, h, " ")
	gpu.setForeground(0x000000)

	drawButtons()
	drawLabels()

	_, _, _, char = event.pull("key_down")
	buttonResponse(char)

	if drawAgain == true then drawMain() end


end

function buttonResponse(char)
	if char == keyboard.keys.up then
		option = option - 1
		if option <= 0 then
		option = buttonsCount
		elseif option > buttonsCount then
		option = 1
		end
	elseif char == keyboard.keys.down then
		option = option + 1
		if option <= 0 then
			option = buttonsCount
		elseif option > buttonsCount then
			option = 1
		end
	end

	if char == keyboard.keys.enter then
		drawAgain = false

		if option == 1 then os.execute("reactor1.lua")
		elseif option == 2 then os.execute("reactor2.lua")
		elseif option == 3 then os.execute("reactor3.lua")
		elseif option == 4 then computer.shutdown()
		elseif option == 5 then computer.shutdown(true)
		elseif option == 6 then os.exit()
		end
	end
end

drawMain()

 

reactor1.lua

dofile("buttons.lua")
local event = require("event")
local component = require("component")
local event = require("event")
local keyboard = require("keyboard")
local colors = require("colors")
local sides = require("sides")
local gpu = component.gpu
local rs = component.redstone
local w, h = gpu.getResolution()
w = w+1
h = h+1

local reactorSide = sides.left
local reactorStatusColor = colors.white
local reactorOutputColor = colors.orange

local _, _, _, char

local drawAgain = true

local status_ON = 0x00FF00
local status_OFF = 0xFF0000

local updateTimerID

addLabel(1, w/2, 2, "Reactor 1", 0xFF0000, true)
addLabel(2, w/5, 4, "Status:", 0x000000)
addLabel(3, w/2, 4, "Energy output:", 0x000000)

addButton(1, w/2, 6, "Toggle reactor", true)
addButton(2, w/2, 7, "Toggle energy output", true)
addButton(3, w/2, 12, "Back", true)




buttonsCount = tablesize(buttons)

function drawMain()
	gpu.setBackground(0xFFFFFF)
	gpu.fill(0, 0, w, h, " ")
	gpu.setForeground(0x000000)

	drawButtons()
	drawLabels()

	_, _, _, char = event.pull("key_down")
	buttonResponse(char)

	if drawAgain == true then drawMain() end
end

function buttonResponse( char )
	if char == keyboard.keys.up then
		option = option - 1
		if option <= 0 then
		option = buttonsCount
		elseif option > buttonsCount then
		option = 1
		end
	elseif char == keyboard.keys.down then
		option = option + 1
		if option <= 0 then
			option = buttonsCount
		elseif option > buttonsCount then
			option = 1
		end
	end

	if char == keyboard.keys.enter then
		if option == 1 then
			if rs.getBundledOutput(reactorSide, reactorStatusColor) == 0 then
			rs.setBundledOutput(reactorSide, reactorStatusColor, 500)
			else
			rs.setBundledOutput(reactorSide, reactorStatusColor, 0)
			end
		elseif option == 2 then
			if rs.getBundledOutput(reactorSide, reactorOutputColor) == 0 then
			rs.setBundledOutput(reactorSide, reactorOutputColor, 500)
			else
			rs.setBundledOutput(reactorSide, reactorOutputColor, 0)
			end
		elseif option == 3 then 
			drawAgain = false
			event.cancel(updateTimerID)
			os.execute("main.lua")
		end
	end
end

function updateTimer()
	if rs.getBundledOutput(reactorSide, reactorStatusColor) > 0 then
		gpu.fill(w/5 + 8, 4, 5, 1, " ")
		gpu.set(w/5 + 8, 4, "ON")
	else
		gpu.fill(w/5 + 8, 4, 5, 1, " ")
		gpu.set(w/5 + 8, 4, "OFF")
	end

	if rs.getBundledOutput(reactorSide, reactorOutputColor) > 0 then
		gpu.fill(w/2 + 15, 4, 5, 1, " ")
		gpu.set(w/2 + 15, 4, "ON")
	else
		gpu.fill(w/2 + 15, 4, 5, 1, " ")
		gpu.set(w/2 + 15, 4, "OFF")
	end
end

updateTimerID = event.timer(0.01, updateTimer, math.huge)
drawMain()
 

pliki reactor2.lua i reactor3.lua to zdublowane wersje kodu z reactor1.lua, zmieniona jest tylko strona wysyłania sygnału redstone i nazwa reaktora

 

 

 

system piszę w języku angielskim bo tak jest mi wygodniej, napiszcie czy chcecie tłumaczenia czy nie xD

 

jakby ktoś miał wątpliwości, SZajbuS to ja, po prostu na mpc mam stary nick :DD

Opublikowano

niestety, wystąpił błąd w modpacku i scrashowało mi mapke, probowalem ją odzyskać na wszelkie sposoby, nic nie idzie :/ projekt rozpocznę od początku, chyba że ktoś ma pomysł jak przywrócic starą mapke, kod mam zapisany na komputerze a w razie W jest on też na MPC :DD

Opublikowano

modpack tekkita o nazwie IndustrialBox, wygoogluj :) ps. zbudowałem elektrownie od nowa w 1 wieczór, jutro wstawie ss :D

 

 

@Edit

są ss'y :D

 

 

ekrany kontrolne reaktorów

GjPn97s.png

 

 

układ prętów reaktora, zwiększyłem wyjscie energii do 345eu/t

xwJ5QFR.png

 

widok z góry i podstawa części biurowej

KYfjKQq.jpg

 

hangar reaktorów

AjfqUMO.png

 

z tego miejsca zarządza się wyjsciem energii na poszczególne linie których jest 7, z czego 3 mają transformator wysokiego napiecia a reszta jest średniego napięcia

ZrRuC4e.png

 

okablowanie sterowni

f3LKucn.png

 

pomieszczenie transformatorów

ryfqjMb.png

 

podpięty reaktor, ze względów bezpieczeństwa poza bezpiecznikami redstone (bramki) główny kabel zasilający podpięty na bloku drewna, jeśli temperatura reaktora przekroczy maksymalną temperaturę wtedy blok drewna się spali i zasilanie zostanie odłączone, jednak temperatura nie powinna jej przekroczyć, reaktory są budowanie w układzie Mark I, czyli nie generują praktycznie zadnego ciepła na rdzeń, cała temperatura odprowadzana jest do powietrza gdzie bezpiecznie się rozpływa

gEM4KMF.png

 

 

 

Opublikowano

@dzejQ97 no no ciekawie to wygląda czekam na dalsze prace i zdjęcia. 

95 punktów karnych mam i zakaz pisania chu**** wie go na ile.

Opublikowano

 

 

 

zbudowana część biurowa oraz 1 komin, niestety komin ładniej wyglądał nie będzie bo lepiej nie potrafie xD jak wrzuce save to chętnie zobacze przebudowaną elektrownie :)riClMpp.png

 

hol części biurowej, aby wejsc gdziekolwiek do bloków reaktorów należy otworzyć drzwi sterowane przez komputer

I9s3Ecm.png

 

aby dostać się do środka najpierw należy wpisać hasło aby otworzyć drzwi :D hasło narazie jest proste 1234, może zmienie a może nie, sam nie wiem

Lxmppul.png

 

podziemia z komputerem i jego awaryjnym zasilaniem

qehZOWo.png

 

komputer sterujący drzwiami

tnQ2HUe.png

pKHRB4z.png

 

 

 

oczywiście czekam na wszelkie sugestie, jeśli macie jakieś pomysły co można by tu jeszcze dodać to piszcie :)

Opublikowano

Ja po prostu w to nie wierzę..

Kozacka zajawka.

Jesteś chyba jedynym użytkownikiem na forum, który dostał ode mnie tyle like.

 

Rozwijaj dalej ten projekt!

784091427630431250239.png

Regulamin sygnatur

Opublikowano

 

 

dodany ekran z nazwą elektrowni, w tle widać podstawy następnych 2 kominów chłodniczych

qlixw0B.png

 

dodany ekran z aktualną godziną, i 2 zegary, jednym z generowaną energia na dany moment przez wszystkie reaktory, a drugi z energią wygenerowaną do tej pory przez elektrownie

eDV2ibz.png

 

dodałem trochę kolorów do holu :D

6ireXcL.png

 

w tunelach prowadzących do sterowni dodałem prowizoryczne "prysznice odkażające", narazie to tylko zwykły bajer, jak wykombinuje jak zrobić prysznic to będzie nawet działało

jAnP3Qw.png

Hvj1Mrg.png

 

dodane żółte linie zakazujące zbliżania się do reaktora :D

nwmp1yD.png

 

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...