]> git.lizzy.rs Git - Crafter.git/blob - README.md
Update to version 0.04
[Crafter.git] / README.md
1 <img src="https://github.com/oilboi/Crafter/blob/master/menu/header.png">
2
3 > Designed for Minetest 5.3.0-DEV
4
5 >Built using textures from <a href="https://forum.minetest.net/viewtopic.php?t=16407">Mineclone 2</a> 
6
7 ---
8
9 ## Be sure to install the clientside mod for this game mode: <a href="https://github.com/oilboi/crafter_client">Download here</a>
10
11
12
13
14 ## If you want to run this on a server you must add this to your server minetest.conf:
15
16 ```
17 enable_client_modding = true
18 csm_restriction_flags = 0
19 enable_mod_channels = true
20 ```
21
22
23
24 ## This game is in early alpha and uses a lot of experimental features in the engine
25
26 ---
27
28 # ALPHA STATE CHANGELOG
29
30 > <a href="https://github.com/oilboi/Crafter/blob/master/old_changelog.md">Old Version Changelogs</a>
31
32 ## 0.04
33 > Endless Horizons Update
34
35 ---
36
37
38 # IDEAS:
39
40
41
42 ## REDSTONE:
43 - breaker (mines whatever is in front of it)
44 - dispenser (shoots out first item in inventory, or shoots item into pipe)
45 - sticky piston (pulls node in front of it)
46 - piston in general (if node is falling and piston is pointing up then FLING IT, if detects falling node entity FLING IT)
47
48
49 ---
50
51
52 ## MOBS:
53
54 > #1 idea, - make mobs pathfind
55
56
57 ### sheep
58 - sheep can be punched to drop wool without damage
59 - you can dye a sheep with colored dye and it will change color, then will drop the color you dyed it
60
61
62 ### pig
63 - disable pig aggression
64 - make porkchop look nicer
65
66
67 ### ghosts
68 - make the default player model whited out
69 - ghosts can pass through any nodes
70 - ghosts fly around
71 - will follow you groaning about "diamonds", "need food", and "join us"
72 - they will fling you up in the air or punch you
73 - ghosts can drag you down into nodes and suffocate you
74 - spawn with cave sounds
75 - drop soul
76
77
78 ### node monster
79 - gets built out of nodes in the area
80 - will probabaly destroy you
81 - drops all nodes that it's made of when killed
82
83
84 ### Exploder
85 - sneaks up on you and then explodes
86 - drops gun powder
87
88
89 ---
90
91
92 ## Game Mechanics:
93 - xp (edit the node drops code to check if node has tag for xp)
94 - brewing
95 - enchanting/upgrading
96 - magic (wands, spells, etc)
97 - better combat ( sweep hit enemies, falling while hitting deals more damage )
98
99
100 ---
101
102
103 ## New Themes
104
105 ### mechanics (mechanical tools and machines)
106 - compressor (compresses nodes down)
107 - auto miner (digs whatever is in front of it)
108 - decompressor (opposite of compressor
109
110
111 ### automation 
112 - pipes
113 - pumps
114 - fluid  transfer
115 - fluid storage
116 - pipes should be able to move objects quickly
117
118
119 ### HALLOWEEN!
120 - lava acts like water in the nether but lava in the other worlds
121 - pumpkins
122 - Jack O'Lanterns
123 - corn and corn stalks
124 - decorations
125 - cobwebs
126 - costumes (somehow?)
127 - candy
128 - make grass and leaves orange during the month of October
129 - (Use a simple date check and override nodes)
130 - Gravestones
131 - Graveyards
132 - Candles
133 - candy apples
134 - Soul cake, make with cake and soul
135
136
137 ### Farming
138 - add fertilizer (pig drops bone randomly) 
139 - fertilizer is made out of bone - 
140 - fertilizer can make tall grass grow on regular grass
141 - bread - 3 bread in a row
142 - make sandwich with bread and cooked porkchop
143 - fertilizer used on saplings randomly make tree grow (make sapling growth a function)
144
145
146 ### Fishing
147 - have a rod that you can cast into water
148 - bobber entity which goes under water when fish on line
149
150
151 ---
152
153
154 ## New Items
155
156 > These don't seem to fit into any theme so list them all here
157
158 - sugar and sugar cane (grow near water on sand)
159 - rope and tnt arrows
160 - vehicles (car, powered minecarts, trains)
161 - hitscan flintlocks
162 - bows
163
164
165 ---
166
167
168 ## Ideas
169
170 > These ideas are all over the place but are good for future updates
171
172 - make pistons able to push and pull any node that does not use meta or inv
173 - make pistons able to push and pull deactivated pistons
174 - upgrade minecart physics even more 
175 - make torches abm that checks if player in area
176 - make furnace abm that checks if player in area
177 - 3d character
178 - make tnt hurt player
179 - rewrite minecart
180 - fix tool rightclick torch placement to replace buildable to nodes
181 - if placed last node put another stack into hand
182 - have falling node hurt player?
183 - add a function to set a velocity goal to entities and then implement it with all entities
184 - ^make a value if below then stop?
185 - colored chat messages
186 - check if everyone is in bed before going to next night
187 - also lock player in bed until they get out or daytime
188 - create a function to check if a node or group is below
189 - ^ set meta for player so that all mods can use it without calculating it
190 - ^ over and over again (saves cpu cycles)
191 - cars buildable in crafting table
192 - require gas pumps refine oil
193 - drive next to gas pump and car will fill with gas
194 - maybe have pump be rightclickable and then manually fill with gass using nozel
195 - minecart car train? - off rail use
196 - automatic step height for off rail use
197 - make cars follow each other
198 - oil which spawns underground in pools
199 - powered minecart car (engine car)
200 - chest minecart car
201 - player controls engine car
202 - make entities push against players
203
204
205 ---
206
207
208 ## Possible Applications
209
210 > causes object to magnetize towards player or other objects and stop after an inner radius
211 > use for better item magnet?
212 ```
213 if object:is_player() and object:get_player_name() ~= self.rider then
214       local player_pos = object:getpos()
215       pos.y = 0
216       player_pos.y = 0
217       
218       local currentvel = self.object:getvelocity()
219       local vel = vector.subtract(pos, player_pos)
220       vel = vector.normalize(vel)
221       local distance = vector.distance(pos,player_pos)
222       distance = (1-distance)*10
223       vel = vector.multiply(vel,distance)
224       local acceleration = vector.new(vel.x-currentvel.x,0,vel.z-currentvel.z)
225       
226       
227       if self.axis == "x"      then
228             self.object:add_velocity(vector.new(acceleration.x,0,0))
229       elseif self.axis == "z" then
230             self.object:add_velocity(vector.new(0,0,acceleration.z))
231       else
232             self.object:add_velocity(acceleration)
233       end
234       
235       - acceleration = vector.multiply(acceleration, -1)
236       - object:add_player_velocity(acceleration)
237 end
238 ```