ComputerCraft Archive

Doom - CC's first 3D FPS (with online highscores)

computer operating-system unknown forum

Description

Hello everyone! Today I present to you:Small update:Gun bobbing addedDeath animationIt has 3D rendering using my 3D rendering API:http://www.computerc...5-finally-here/Summary:There are two types of e...

Installation

Copy one of these commands into your ComputerCraft terminal:

Pastebin:pastebin get 6BcdRV75 doom_-_cc's_first_3d_fps_(with_online_highscores)
wget:wget https://pastebin.com/raw/6BcdRV75 doom_-_cc's_first_3d_fps_(with_online_highscores)
Archive:wget https://cc.shobie.xyz/cc/get/pb-6BcdRV75 doom_-_cc's_first_3d_fps_(with_online_highscores)
Quick Install: wget https://cc.shobie.xyz/cc/get/pb-6BcdRV75 Doom - CC's first 3D FPS (with online highscores)

Usage

Run the program after downloading

Tags

forumgames

Source

View Original Source

Code Preview

local function update(text)
	term.setBackgroundColor(colors.black)
	term.setTextColor(colors.white)
	term.setCursorPos(1, 9)
	term.clearLine()
	term.setCursorPos(math.floor(51/2 - string.len(text)/2), 9)
	write(text)
end

local function bar(ratio)
	term.setBackgroundColor(colors.gray)
	term.setTextColor(colors.lime)
	term.setCursorPos(1, 11)
	
	for i = 1, 51 do
		if (i/51 < ratio) then
			write("]")
		else
			write(" ")
		end
	end
end

local function download(downloadPath, savePath)
	term.setBackgroundColor(colors.black)
	term.setTextColor(colors.white)
	term.setCursorPos(1, 13)
	term.clearLine()
	term.setCursorPos(1, 14)
	term.clearLine()
	term.setCursorPos(1, 15)
	term.clearLine()
	term.setCursorPos(1, 16)
	term.clearLine()
	term.setCursorPos(1, 17)
	term.clearLine()
	term.setCursorPos(1, 13)
	
	print("Accessing https://raw.githubusercontent.com/Xelostar/CCDoom/master/"..downloadPath)
	local rawData = http.get("https://raw.githubusercontent.com/Xelostar/CCDoom/master/"..downloadPath)
	local data = rawData.readAll()
	local file = fs.open(savePath, "w")
	file.write(data)
	file.close()
end

local function pastebinD(code, savePath)
	term.setBackgroundColor(colors.black)
	term.setTextColor(colors.white)
	term.setCursorPos(1, 13)
	term.clearLine()
	term.setCursorPos(1, 14)
	term.clearLine()
	term.setCursorPos(1, 15)
	term.clearLine()
	term.setCursorPos(1, 16)
	term.clearLine()
	term.setCursorPos(1, 17)
	term.clearLine()
	term.setCursorPos(1, 13)
	shell.run("pastebin get "..code.." "..savePath)
end

term.setBackgroundColor(colors.black)
term.setTextColor(colors.white)
term.clear()

term.setCursorPos(1, 8)
write("Doom by Xelostar installer. Where do you want Doom to be installed? Path:")

term.setCursorPos(1, 11)
write("Path: ")
local path = read()

term.clear()
term.setCursorPos(13, 2)
term.setTextColor(colors.yellow)
write("Doom by Xelostar installer")

local oldpath = shell.dir()
shell.setDir("/")
local installpath = "/"..fs.combine(path, "Doom")
update("Installing...")
bar(0)

update("Creating directories...")
fs.makeDir(installpath)
bar(0.02)
fs.makeDir(fs.combine(installpath, "images"))
bar(0.04)
fs.makeDir(fs.combine(installpath, "levels"))
bar(0.06)
fs.makeDir(fs.combine(installpath, "models"))
bar(0.08)
update("Downloading license...")
download("LICENSE", "/"..fs.combine(installpath, "LICENSE"))
bar(0.10)
update("Downloading game...")
download("Doom/Doom", "/"..fs.combine(installpath, "Doom"))
bar(0.12)

update("Downloading APIs...")
download("Doom/ThreeD", "/"..fs.combine(installpath, "ThreeD"))
bar(0.17)
download("Doom/bufferAPI", "/"..fs.combine(installpath, "bufferAPI"))
bar(0.22)
pastebinD("ujchRSnU", "/"..fs.combine(installpath, "blittle"))
bar(0.27)

update("Downloading images...")
download("Doom/images/bfire", "/"..fs.combine(fs.combine(installpath, "images"), "bfire"))
bar(0.30)
download("Doom/images/bgun", "/"..fs.combine(fs.combine(installpath, "images"), "bgun"))
bar(0.33)
download("Doom/images/bgunf", "/"..fs.combine(fs.combine(installpath, "images"), "bgunf"))
bar(0.36)
download("Doom/images/bheart", "/"..fs.combine(fs.combine(installpath, "images"), "bheart"))
bar(0.39)
download("Doom/images/fire", "/"..fs.combine(fs.combine(installpath, "images"), "fire"))
bar(0.42)
download("Doom/images/gun", "/"..fs.combine(fs.combine(installpath, "images"), "gun"))
bar(0.45)
download("Doom/images/gunf", "/"..fs.combine(fs.combine(installpath, "images"), "gunf"))
bar(0.48)
download("Doom/images/heart", "/"..fs.combine(fs.combine(installpath, "images"), "heart"))
bar(0.51)
download("Doom/images/logo", "/"..fs.combine(fs.combine(installpath, "images"), "logo"))
bar(0.54)

update("Downloading levels...")
download("Doom/levels/level1", "/"..fs.combine(fs.combine(installpath, "levels"), "level1"))
bar(0.57)
download("Doom/levels/level2", "/"..fs.combine(fs.combine(installpath, "levels"), "level2"))
bar(0.60)
download("Doom/levels/level3", "/"..fs.combine(fs.combine(installpath, "levels"), "level3"))
bar(0.63)
download("Doom/levels/level4", "/"..fs.combine(fs.combine(installpath, "levels"), "level4"))
bar(0.66)
download("Doom/levels/level5", "/"..fs.combine(fs.combine(installpath, "levels"), "level5"))
bar(0.69)
download("Doom/levels/level6", "/"..fs.combine(fs.combine(installpath, "levels"), "level6"))
bar(0.72)
download("Doom/levels/level7", "/"..fs.combine(fs.combine(installpath, "levels"), "level7"))
bar(0.75)
download("Doom/levels/level8", "/"..fs.combine(fs.combine(installpath, "levels"), "level8"))
bar(0.78)
download("Doom/levels/level9", "/"..fs.combine(fs.combine(installpath, "levels"), "level9"))
bar(0.81)

update("Downloading models...")
download("Doom/models/corpse", "/"..fs.combine(fs.combine(installpath, "models"), "corpse"))
bar(0.84)
download("Doom/models/doorx", "/"..fs.combine(fs.combine(installpath, "models"), "doorx"))
bar(0.86)
download("Doom/models/doorz", "/"..fs.combine(fs.combine(installpath, "models"), "doorz"))
bar(0.88)
download("Doom/models/wallx", "/"..fs.combine(fs.combine(installpath, "models"), "wallx"))
bar(0.90)
download("Doom/models/wallz", "/"..fs.combine(fs.combine(installpath, "models"), "wallz"))
bar(0.92)
download("Doom/models/wallxz", "/"..fs.combine(fs.combine(installpath, "models"), "wallxz"))
bar(0.93)
download("Doom/models/emerald", "/"..fs.combine(fs.combine(installpath, "models"), "emerald"))
bar(0.95)
download("Doom/models/enemy1", "/"..fs.combine(fs.combine(installpath, "models"), "enemy1"))
bar(0.97)
download("Doom/models/enemy2", "/"..fs.combine(fs.combine(installpath, "models"), "enemy2"))
bar(0.99)

update("Finishing installation...")
fs.delete("/.std_list")
fs.delete("/.std_websites")

update("Installation finished!")
bar(1)
shell.setDir(oldpath)

sleep(1)
term.setBackgroundColor(colors.black)
term.setTextColor(colors.white)

term.clear()
term.setCursorPos(1, 1)
write("Finished installation!\nPress any key to close...")
os.pullEventRaw()

term.clear()
term.setCursorPos(1, 1)