Crafter/README.md

335 lines
8.9 KiB
Markdown
Raw Normal View History

2020-04-05 04:40:45 -04:00
<img src="https://github.com/oilboi/Crafter/blob/master/menu/header.png">
> Designed for Minetest 5.3.0-DEV
2020-04-05 04:40:45 -04:00
2020-04-07 17:19:32 -04:00
>Built using textures from <a href="https://forum.minetest.net/viewtopic.php?t=16407">Mineclone 2</a>
2020-04-08 15:33:11 -04:00
---
## Be sure to install the clientside mod for this game mode: <a href="https://github.com/oilboi/crafter_client">Download here</a>
2020-04-23 06:26:27 -04:00
## If you want to run this on a server you must add this to your server minetest.conf:
```
enable_client_modding = true
csm_restriction_flags = 0
enable_mod_channels = true
```
2020-04-23 06:26:27 -04:00
## This game is in early alpha and uses a lot of experimental features in the engine
2020-04-05 04:44:27 -04:00
---
2020-03-25 15:35:51 -04:00
# ALPHA STATE CHANGELOG
2020-03-24 00:37:32 -04:00
2020-04-05 04:40:45 -04:00
> <a href="https://github.com/oilboi/Crafter/blob/master/old_changelog.md">Old Version Changelogs</a>
2020-03-24 00:37:32 -04:00
2020-04-23 06:57:09 -04:00
## 0.04
> Endless Horizons Update
2020-04-24 10:57:12 -04:00
- Added in prototype for new mechanics built ontop of the engine
- Added cactus
- Make cactus hurt player when they touch it using touch_hurt group
- Added aether portals
- Make flying pigs drop 1-6 gold
- Make mobs use builtin minetest.throw_item function (custom)
- Double flying pigs sight radius
2020-04-25 11:30:47 -04:00
- Add hurt_inside group
- Add lava and fire to hurt_inside group
2020-04-25 12:15:06 -04:00
- Make mobs get damaged in fire and lava
2020-04-30 23:02:42 -04:00
- Add prototype mining lazer
- Add prototype gravity gun
- Added ice
- Make players get suffocated inside solid nodes
- Ice now breaks into water
- Ice spawns when snowing, replaces water under air
- Players sneaking hide nametag
- Updated main menu texture to have better brightness/contrast
- Turned mobs into API
- Added creepig
- Flying Pig now throws TNT at player
- Redid fishing mechanics
- Redid bows and arrows
- Added collision detection to mobs
- Add fall damage to mobs
2020-05-17 15:43:17 -04:00
- Make fishing work
- Ice now breaks into water
- Added FOV fade
- Add experience
- Added in shadow to heart statbar
- Added enchanting
- Add cake and cursed cake
- Prevent player from getting suffocated while teleporting
- Added in custom breath handling
- Made drowning slower
- Stopped infinite drowning death
- Merged drowning functions with new player functions
- Added in gerold55 bubble texture with countdown
- Swapped bubble direction
- Added in hunger
- Tuned hunger
- Added block breaking induced hunger exhaustion
- Fixed dead players collecting xp
- Overhauled hunger
- Optimized hunger health regen
- Overhauled farming and plants
- Fire now uses node timers to run even faster and prevent forest fires from becoming extreme
- Crops are now easier to grow
- Various farming improvements
- Optimized snow to the extreme
- Added in broken nether trees
- Added in melons and stem growth type plants
- Make saplings use node timers with catchup
- Made rain look even better
- Stop FOV fading from causing motion sickness
- Crops are now destroyed if not enough light
- Begin experimental treecapitator test
- Revert experimental treecapitator test and release experiment as mod
- Add in xp debug test
- Made minecarts work even "better"
- Added in clientside WAILA
- Fixed vignette having a streak of pixels across top of screen
- Add in 22i's MC mobs
- Overhaul mobs and make them use bone based head movement
- Add in group_attack setting for mobs
- Readded in creeper, phyg, and pig
- Fix a lot of things
- Fix a lot of deprecated calls
- Fixed stone hoes actually being made out of stone
- Add in better arrow hit sounds
- Overhauled arrows
- Added WAIH
- Overhaul mobs damage color modifier
- Make exploding mobs flash while charging
- Fix more deprecated calls
- Overhauled spawn command for mobs to use raycasting
- Overhaul mobs again
- Explosions now fling and hurt mobs
- Phygs now flap wings and do not take fall damage
- More deprecated call fixed for 3d noise in aether, void, and nether
- Fix WAIH crashing with tool that has no tooldef
- Fixed boat scaling
- Use gerold55's nice xp orb texture
- Updated readme.md
2020-04-05 04:44:27 -04:00
---
2020-04-05 04:40:45 -04:00
2020-03-25 15:35:51 -04:00
# IDEAS:
2020-04-05 04:40:45 -04:00
## REDSTONE:
- breaker (mines whatever is in front of it)
- dispenser (shoots out first item in inventory, or shoots item into pipe)
- piston in general (if node is falling and piston is pointing up then FLING IT, if detects falling node entity FLING IT)
2020-05-05 00:06:49 -04:00
---
## BUILDTEST:
- quarry
- filter
- siv
- mining lazer
- trains
2020-04-05 04:44:27 -04:00
---
2020-04-05 04:40:45 -04:00
## MOBS:
> #1 idea, - make mobs pathfind
2020-04-05 04:44:27 -04:00
2020-04-05 04:40:45 -04:00
### sheep
- sheep can be punched to drop wool without damage
- you can dye a sheep with colored dye and it will change color, then will drop the color you dyed it
2020-04-05 04:44:27 -04:00
2020-04-05 04:40:45 -04:00
### pig
- disable pig aggression
- make porkchop look nicer
2020-04-05 04:44:27 -04:00
2020-04-05 04:40:45 -04:00
### ghosts
- make the default player model whited out
- ghosts can pass through any nodes
- ghosts fly around
- will follow you groaning about "diamonds", "need food", and "join us"
- they will fling you up in the air or punch you
- ghosts can drag you down into nodes and suffocate you
- spawn with cave sounds
- drop soul
2020-04-05 04:44:27 -04:00
2020-04-05 04:40:45 -04:00
### node monster
- gets built out of nodes in the area
- will probabaly destroy you
- drops all nodes that it's made of when killed
2020-04-05 04:44:27 -04:00
2020-04-05 04:40:45 -04:00
### Exploder
- sneaks up on you and then explodes
- drops gun powder
2020-04-05 04:44:27 -04:00
---
2020-04-05 04:40:45 -04:00
## Game Mechanics:
2020-03-30 20:10:14 -04:00
- xp (edit the node drops code to check if node has tag for xp)
- brewing
- enchanting/upgrading
- magic (wands, spells, etc)
2020-04-05 04:40:45 -04:00
- better combat ( sweep hit enemies, falling while hitting deals more damage )
2020-03-30 20:10:14 -04:00
2020-04-05 04:44:27 -04:00
---
2020-04-05 04:40:45 -04:00
## New Themes
2020-03-30 20:10:14 -04:00
2020-04-05 04:40:45 -04:00
### mechanics (mechanical tools and machines)
- compressor (compresses nodes down)
- auto miner (digs whatever is in front of it)
- decompressor (opposite of compressor
### automation
- pipes
- pumps
- fluid transfer
- fluid storage
- pipes should be able to move objects quickly
### HALLOWEEN!
- lava acts like water in the nether but lava in the other worlds
2020-04-05 04:40:45 -04:00
- pumpkins
- Jack O'Lanterns
- corn and corn stalks
- decorations
- cobwebs
- costumes (somehow?)
- candy
- make grass and leaves orange during the month of October
- (Use a simple date check and override nodes)
- Gravestones
- Graveyards
- Candles
- candy apples
- Soul cake, make with cake and soul
### Farming
2020-03-24 00:37:32 -04:00
- add fertilizer (pig drops bone randomly)
- fertilizer is made out of bone -
- fertilizer can make tall grass grow on regular grass
- bread - 3 bread in a row
- make sandwich with bread and cooked porkchop
- fertilizer used on saplings randomly make tree grow (make sapling growth a function)
2020-03-24 19:19:02 -04:00
2020-04-05 04:40:45 -04:00
### Fishing
- have a rod that you can cast into water
- bobber entity which goes under water when fish on line
2020-04-05 04:44:27 -04:00
---
2020-04-05 04:40:45 -04:00
## New Items
2020-03-24 19:19:02 -04:00
2020-04-05 04:40:45 -04:00
> These don't seem to fit into any theme so list them all here
- sugar and sugar cane (grow near water on sand)
- rope and tnt arrows
- vehicles (car, powered minecarts, trains)
- hitscan flintlocks
2020-03-24 19:19:02 -04:00
- bows
2020-04-05 04:40:45 -04:00
2020-04-05 04:44:27 -04:00
---
2020-04-05 04:40:45 -04:00
## Ideas
> These ideas are all over the place but are good for future updates
2020-04-05 04:50:29 -04:00
- make pistons able to push and pull any node that does not use meta or inv
- make pistons able to push and pull deactivated pistons
2020-04-05 04:40:45 -04:00
- upgrade minecart physics even more
- make torches abm that checks if player in area
- make furnace abm that checks if player in area
2020-03-24 19:19:02 -04:00
- 3d character
- make tnt hurt player
2020-04-05 04:40:45 -04:00
- rewrite minecart
- fix tool rightclick torch placement to replace buildable to nodes
2020-03-24 19:19:02 -04:00
- if placed last node put another stack into hand
- have falling node hurt player?
- add a function to set a velocity goal to entities and then implement it with all entities
- ^make a value if below then stop?
- colored chat messages
- check if everyone is in bed before going to next night
2020-03-24 00:37:32 -04:00
- also lock player in bed until they get out or daytime
- create a function to check if a node or group is below
2020-04-05 04:40:45 -04:00
- ^ set meta for player so that all mods can use it without calculating it
- ^ over and over again (saves cpu cycles)
- cars buildable in crafting table
- require gas pumps refine oil
- drive next to gas pump and car will fill with gas
- maybe have pump be rightclickable and then manually fill with gass using nozel
2020-03-24 19:19:02 -04:00
- minecart car train? - off rail use
2020-03-24 00:37:32 -04:00
- automatic step height for off rail use
- make cars follow each other
- oil which spawns underground in pools
- powered minecart car (engine car)
- chest minecart car
- player controls engine car
2020-04-05 04:40:45 -04:00
- make entities push against players
2020-03-24 00:37:32 -04:00
2020-04-05 04:44:27 -04:00
---
2020-03-24 00:37:32 -04:00
2020-04-05 04:40:45 -04:00
## Possible Applications
2020-03-24 00:37:32 -04:00
2020-04-05 04:40:45 -04:00
> causes object to magnetize towards player or other objects and stop after an inner radius
> use for better item magnet?
```
2020-03-24 00:37:32 -04:00
if object:is_player() and object:get_player_name() ~= self.rider then
local player_pos = object:getpos()
pos.y = 0
player_pos.y = 0
local currentvel = self.object:getvelocity()
local vel = vector.subtract(pos, player_pos)
vel = vector.normalize(vel)
local distance = vector.distance(pos,player_pos)
distance = (1-distance)*10
vel = vector.multiply(vel,distance)
local acceleration = vector.new(vel.x-currentvel.x,0,vel.z-currentvel.z)
if self.axis == "x" then
self.object:add_velocity(vector.new(acceleration.x,0,0))
elseif self.axis == "z" then
self.object:add_velocity(vector.new(0,0,acceleration.z))
else
self.object:add_velocity(acceleration)
end
2020-03-24 19:19:02 -04:00
- acceleration = vector.multiply(acceleration, -1)
- object:add_player_velocity(acceleration)
2020-03-24 00:37:32 -04:00
end
2020-04-05 04:40:45 -04:00
```