рдиреЛрдЯ: рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ: [ рд╕реНрд░реЛрдд ]редрдЬрдм рдореИрдВ рдЬрд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рднрд╛рдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдирдП рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рджреЗрддреЗ рд╣реИрдВред
рдореВрд▓
рдЯрд╛рд╕реНрдХ-рдмреЙрдЯ рдХреЙрдиреНрд╕реЗрдкреНрдЯ [рд╣рдмрд░ рдореЗрдВ
рдЕрдиреБрд╡рд╛рдж ] рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЙрд╕ рджреЛ-рдЖрдпрд╛рдореА рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдмреЙрдЯреНрд╕ рдХреЗ рдЙрднрд░рддреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд╡рд╛рдкрд╕ рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реИред
рдЖрдзреБрдирд┐рдХ рдУрдкрдирдЬреАрдПрд▓ рд╕реАрдЦрдиреЗ рдХреЗ рдкрд┐рдЫрд▓реЗ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдиреЗ рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдПрдХ рдорд╛рдирд╕рд┐рдХ рдмрд╛рдзрд╛ рдбрд╛рд▓ рджреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬреБрд▓рд╛рдИ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдЖрдЬ, рдЕрдХреНрдЯреВрдмрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рдХрд╛рдлреА рдЖрд╢реНрд╡рд╕реНрдд рд╕рдордЭ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╕рд░рд▓ рд╡реЛрдХреНрд╕рд▓ рдЗрдВрдЬрди рдЬрд╛рд░реА рдХрд┐рдпрд╛, рдЬреЛ рдореЗрд░реЗ рдЯрд╛рд╕реНрдХ-рдмреЙрдЯреНрд╕ рдХреЗ рдЬреАрд╡рди рдФрд░ рд╕рдореГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЗрдВрдЬрди рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЦреБрдж рдХреЛ рдкрд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдПрдХ рддрд░рд╣ рд╕реЗ, рдореИрдВ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╕рдВрдж рдЖрдИ!
рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЕрдиреБрдХрд░рдг рдерд╛, рдЬрд╣рд╛рдВ рдПрдЬреЗрдВрдЯ рдХреА рднреВрдорд┐рдХрд╛ рдореЗрдВ рдмреЙрдЯ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдВрдХрд┐ рдЗрдВрдЬрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЖрдЧреЗ рдмрдврд╝ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдмреЙрдЯреНрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди, рдЙрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдЗрдВрдЬрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛
рдЗрдВрдЬрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реА ++ рдореЗрдВ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ (рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬрдирд╛)ред рдореИрдВ рд╕рдВрджрд░реНрдн рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрдирдкреБрдЯ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SDL2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдУрдкрди 3 рдбреА рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдбрд┐рдпрд░рдЖрдИрдПрдордпреВрдЖрдИ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдореИрдВрдиреЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡реЛрдХреНрд╕рд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬрд┐рд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:
- рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЬрд╛рд▓ рдмрдирд╛рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЧрдпрд╛ рд╣реИред
- рджреБрдирд┐рдпрд╛ рдХреА рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХреНрд╖рдорддрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд┐рдз рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИред
- рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд▓рд╛рдХреЗ рдФрд░ рдЬрд▓рд╡рд╛рдпреБ рд╕рд┐рдореБрд▓реЗрд╢рди рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдпрд╛ рд╣реИред
- рдЧреНрд░рд┐рдб рдореЗрдВ рдмреЙрдЯреНрд╕ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЗрдВрдЬрди рдореЗрдВ рдПрдХ рд╡рд┐рд╢реНрд╡ рдбреЗрдЯрд╛ рд╕рд┐рд╕реНрдЯрдо, рдПрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрдИ рд╕рд╣рд╛рдпрдХ рдХрдХреНрд╖рд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзреНрд╡рдирд┐ рдФрд░ рдЗрдирдкреБрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реВрдЪреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрдк рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд░ рдбрд╛рд▓реВрдВрдЧрд╛ред
рд╡рд┐рд╢реНрд╡ рд╡рд░реНрдЧ
рд╡рд┐рд╢реНрд╡ рдХреА рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡ рд╡рд░реНрдЧ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмреНрд▓реЙрдХ рдбреЗрдЯрд╛ рдХреА рдкреАрдврд╝реА, рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рдмреНрд▓реЙрдХ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рд░рдВрддрд░ рдЖрдХрд╛рд░ (16 ^ 3) рдХреЗ рд╡рд┐рдЦрдВрдбрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреБрдирд┐рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЗ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдмрдбрд╝реА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рджреБрдирд┐рдпрд╛ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЪреБрдирд╛ред
class World{ public: World(std::string _saveFile){ saveFile = _saveFile; loadWorld(); }
рдЦрдВрдб рдПрдХ рд╕рдорддрд▓ рд╕рд░рдгреА рдореЗрдВ, рдмреНрд▓реЙрдХ рдбреЗрдЯрд╛ рдФрд░ рд╕рд╛рде рд╣реА рдХреБрдЫ рдЕрдиреНрдп рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рд░рд▓ рдСрдХреНрдЯреНрд░реА рдкреЗрдбрд╝ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд░рдВрдЬрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдордп рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐ рдПрдХ рд╕рдкрд╛рдЯ рд╕рд░рдгреА рд╕реНрдореГрддрд┐ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЬрд▓реНрджреА рдореЗрд╖ рдФрд░ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЦреЛрдЬ рдкрде рддрдХ рдкрд╣реБрдВрдЪ рднреА рд╣реИред
class Chunk{ public:
рдпрджрд┐ рдореИрдВ рдХрднреА рднреА рдмрд╣реБ-рдереНрд░реЗрдбрд┐рдВрдЧ рдмрдЪрдд рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдПрдХ рд╕рдкрд╛рдЯ рд╕рд░рдгреА рдХреЛ рд╡рд┐рд░рд▓ рдСрдХреНрдЯреНрд░реА рдЯреНрд░реА рдореЗрдВ рдмрджрд▓рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдореЛрд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╡ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрднреА рднреА рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ!
рд╕реНрдкрд╛рд░реНрд╕ рдСрдХреНрдЯреНрд░реА рдЯреНрд░реА рдХрд╛ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлреНрд░реИрдЧрдореЗрдВрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдФрд░ рдореЗрдореЛрд░реА рд╣реИрдВрдбрд▓рд┐рдВрдЧ
рдЯреБрдХрдбрд╝реЗ рддрднреА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рд╡рд░реНрддрдорд╛рди рдХреИрдорд░рд╛ рд╕реНрдерд┐рддрд┐ рдХреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рджреВрд░реА рдХреЗ рднреАрддрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдХреИрдорд░рд╛ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдореЗрд╖ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдмрдврд╝рд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрдВрдбреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реНрд╡ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝рд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред рд╡реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реНрд╡ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "рдСрд░реНрдбрд░" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рдЖрдЧреЗ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдПрдХ рдмрдбрд╝реА рджреБрдирд┐рдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рдЕрдбрд╝рдЪрди рджреБрдирд┐рдпрд╛ рдХреА рдлрд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдирд╛ / рд▓рд┐рдЦрдирд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд┐рд╢реНрд╡ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
World::bufferChunks()
рд╡рд┐рдзрд┐ рдЙрди рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛рддреА рд╣реИ рдЬреЛ рдЖрднрд╛рд╕реА рдореЗрдореЛрд░реА рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрджреГрд╢реНрдп рд╣реИрдВ, рдФрд░ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рд╡рд┐рд╢реНрд╡ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирдП рдЯреБрдХрдбрд╝реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╕реЗ рдЕрднрд┐рдкреНрд░рд╛рдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣ рдХреЗрд╡рд▓ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдирдП рдЯреБрдХрдбрд╝реЗ рд▓реЛрдб рдХрд░рдиреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕реЗрд╡ рдлрд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫрд╛рдБрдЯрдирд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдПрдХ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
void World::bufferChunks(View view){
рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рджреВрд░реА рдХреЗ рд╕рд╛рде рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рд╕реНрдХреНрд░реАрди рд╡рд┐рд░реВрдкрдг рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕реНрдкрд╛рдЗрдХреНрд╕ рдХрднреА-рдХрднреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд▓реА рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдХрд┐ рд░реЗрдВрдбрд░ рдХреЛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдЯреБрдХрдбрд╝реЗ рдХреЗ рдЬрд╛рд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреНрд▓рд╛рд╕ рдФрд░ editBuffer
editBuffer рдПрдХ рд╕реЙрд░реНрдЯреЗрдмрд▓ рдмрдлрд░рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдВрдЯреЗрдирд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдФрд░ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕реНрдерд╛рди рдореЗрдВ рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
рдпрджрд┐, рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╕рдордп, рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣рд░ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднрдпрд╛рдирдХ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рдореИрдВ рдЙрди рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЗрдВ addEditBuffer рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ editBuffer рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЯреБрдХрдбрд╝рд╛ рд╕реНрдерд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рднреА рдХрд░рддрд╛ рд╣реИ)ред рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЙрди рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╡реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИрдВред
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓реЗрдЦрди рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг, рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ (рдпрд╛рдиреА рдПрдХ рдЯреБрдХрдбрд╝рд╛) рдХрд╛ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП editBuffer рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ, рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддрдм рддрдХ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрдм рддрдХ editBuffer рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣
evaluateBlueprint()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд╛рдлреА рддреЗрдЬ рд╣реИред
bool World::evaluateBlueprint(Blueprint &_blueprint){
рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ editBuffer, рд╕рд╛рде рд╣реА рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдЯреНрд░реА, рдХреИрдХреНрдЯреА, рд╣рдЯреНрд╕, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП editBuffers рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдлрд┐рд░ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рджреБрдирд┐рдпрд╛ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рд▓рд┐рдЦ рджреЗрдВред
рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдмрд╕реЗ рдмрдбрд╝реА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЯреБрдХрдбрд╝реЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХрдИ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдПрдХ рдиреАрд░рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдореЛрдбреБрд▓реЛ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ рдЦрд╛рдХрд╛ рд╡рд░реНрдЧ рд╢рд╛рдирджрд╛рд░ рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рдореИрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡ рдкреАрдврд╝реА рдХреЗ рдЪрд░рдг рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ "рдЕрдбрд╝рдЪрди" рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
void World::generate(){
рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЕрдкрдирд╛ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЬрдм рдмрдлрд░рдЪрдХреНрд╕ () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХ рдкрд╛рд╕ рдореЗрдВ рд╣рд╛рд░реНрдб рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рддрд┐рдкрд╛рджрди
рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд░реЗрдВрдбрд░рд░ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдУрдкрдирдЬреАрдПрд▓ рдХреЗ рдЬреНрдЮрд╛рди рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рднреА рднрд╛рдЧ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡реЗ рдУрдкрдирдЧреИрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╡рд░рдг рд╣реИрдВред рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдкрд╕рдВрдж рдХрд┐рдпрд╛, рдЙрд╕реЗ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХрд╛рдлреА рд╕рдордп рддрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ред
рдЪреВрдВрдХрд┐ рдЕрдиреБрдХрд░рдг рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдСрд░реНрдереЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рдЪреБрдирд╛ред рдЗрд╕реЗ рдЫрджреНрдо -3 рдбреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛рдиреА, рдкреВрд░реНрд╡-рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЯрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдУрд╡рд░рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧрддрд╛ рдерд╛ред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдУрдкрдирдЬреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред

рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рд╡реНрдпреВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рдореБрд▓реЗрд╢рди рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
- рд╕реНрдХреНрд░реАрди рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдЫрд╛рдпрд╛ рдмрдирд╛рд╡рдЯ
- рдЫрд╛рдпрд╛рджрд╛рд░ рд╡рд╕реНрддреБрдПрдВ, рдХреИрдорд░рд╛, рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЖрджрд┐ рдЬрд╝реВрдо рдХрд╛рд░рдХ
- рд▓рдЧрднрдЧ рд╕рднреА рд░реЗрдВрдбрд░рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреВрд▓рд┐рдпрди рдорд╛рди
- рдореЗрдиреВ, рдХреЛрд╣рд░рд╛, рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрд╣рд░рд╛рдИ, рдЕрдирд╛рдЬ рдХреА рдмрдирд╛рд╡рдЯ, рдЖрджрд┐ред
- рдкреНрд░рдХрд╛рд╢, рдХреЛрд╣рд░реЗ, рдЖрдХрд╛рд╢, рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЪрдпрди, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд░рдВрдЧред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рд╣реИрдВ рдЬреЛ рдУрдкрдирдЬреАрдПрд▓ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рд░реИрдкрд┐рдВрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ!
- рдХреНрд▓рд╛рд╕ рд╢реЗрдбрд░
- рдЬреАрдПрд▓рдПрд╕рдПрд▓ рд╢реЗрдбреНрд╕ рд▓реЛрдб, рд╕рдВрдХрд▓рди, рд╕рдВрдХрд▓рди рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- рдореЙрдбрд▓ рд╡рд░реНрдЧ
- рд╡реАрдПрдУ (рд╡рд░реНрдЯреЗрдХреНрд╕ рдПрд░реЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ) рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЯреБрдХрдбрд╝реЗ, рдореЗрд╖ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдФрд░ рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред
- рдХреНрд▓рд╛рд╕ рдХрд╛ рдмрд┐рд▓рдмреЛрд░реНрдб
- FBO (FrameBuffer Object) рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ - рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рд╢реИрдбреЛрдЗрдВрдЧ рдЗрдлрд╝реЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред
- рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреНрд▓рд╛рд╕
- рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рдЪрддреБрд░реНрднреБрдЬ рдЙрдиреНрдореБрдЦ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдПрдХ рдмрдирд╛рд╡рдЯ рдлрд╝рд╛рдЗрд▓ (рдмреЙрдЯреНрд╕ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП) рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдирд┐рдореЗрд╢рди рднреА рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ!
- рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд░реНрдЧ
- ImGUI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рдСрдбрд┐рдпреЛ рдХреНрд▓рд╛рд╕
- рдмрд╣реБрдд рдЕрд▓реНрдкрд╡рд┐рдХрд╕рд┐рдд рдзреНрд╡рдирд┐ рд╕рдорд░реНрдерди (рдпрджрд┐ рдЖрдк рдЗрдВрдЬрди рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдПрдо" рджрдмрд╛рдПрдВ)

рдлреАрд▓реНрдб рдХреА рдЙрдЪреНрдЪ рдЧрд╣рд░рд╛рдИ (рдбреАрдУрдПрдл)ред рдмрдбрд╝реА рдкреНрд░рддрд┐рдкрд╛рджрди рджреВрд░реА рдкрд░, рдпрд╣ рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдпрд╣ рд╕рдм рдХрд┐рдпрд╛ред рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдмреНрд░реЗрдХ рдЕрджреГрд╢реНрдп рд╣реЛрдВрдЧреЗред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░реА рдЖрдВрдЦреЛрдВ рдХреЛ рддрдирд╛рд╡ рджреЗрддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд╕рд┐рд░реНрдл рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдКрдкрд░ рдХреА рдЫрд╡рд┐ рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣реЗрд░рдлреЗрд░ рдХреЗ рджреМрд░рд╛рди рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдлреБрд▓ рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЫрд╡рд┐ рдХреИрдорд░реЗ рдХреА рдУрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдПрдХ рдмрдирд╛рд╡рдЯ рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдмреЙрдЯ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреА рд╣реИред рдЫрд╡рд┐ рдореЗрдВ рдШрд░реЛрдВ рдФрд░ рдХреИрдХреНрдЯрд┐ рдХреЛ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдлреНрд░реИрдЧрдореЗрдВрдЯ рдореЗрд╢ рдмрдирд╛рдирд╛
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдореЗрд╖ рдмрдирд╛рдиреЗ рдХреЗ рднреЛрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛: рдореИрдВрдиреЗ рдмрд╕ рдПрдХ рдШрди рдмрдирд╛рдпрд╛ рдФрд░ рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдирд╣реАрдВ рдЫреЛрдбрд╝реЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдзреАрдорд╛ рдерд╛, рдФрд░ рдирдП рдЯреБрдХрдбрд╝реЗ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдореЗрд╖реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╕рдВрдХреАрд░реНрдг "рдЕрдбрд╝рдЪрди" рдирд┐рдХрд▓рд╛ред
рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡реАрдмреАрдУ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдХреБрд╢рд▓ рдирд┐рд░реНрдорд╛рдг рдХреА рдереА, рд▓реЗрдХрд┐рди рдореИрдВ рдУрдкрди ++ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд (рд▓реВрдкреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЬреАрдм рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛) "рд▓рд╛рд▓рдЪреА рдореЗрд╢рд┐рдВрдЧ" (рд▓рд╛рд▓рдЪреА рдореЗрд╢рд┐рдВрдЧ) рдХреЗ рд╕реА ++ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдЖрдк рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
void Model::fromChunkGreedy(Chunk chunk){
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓рд╛рд▓рдЪреА рдЬрд╛рд▓ рдХреЗ рд╕рдВрдХреНрд░рдордг рдиреЗ 60% рдХреА рдФрд╕рдд рд╕реЗ рдЦреАрдВрдЪреА рдЧрдИ рдЪреМрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рджреАред рдлрд┐рд░, рдЖрдЧреЗ рдХреА рдорд╛рдореВрд▓реА рдЖрд╢рд╛рдУрдВ (VBO рдЕрдиреБрдХреНрд░рдордг) рдХреЗ рдмрд╛рдж, рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рдЕрдиреНрдп 1/3 (6 рдХреЛрдиреЗ рд╕реЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ 4 рдХреЛрдиреЗ рддрдХ) рдШрдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдЬрдм рдЕрдзрд┐рдХрддрдо рд╡рд┐рдВрдбреЛ рдореЗрдВ 5x1x5 рдЯреБрдХрдбрд╝реЗ рдХреЗ рджреГрд╢реНрдп рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрднрдЧ 140 FPS (VSYNC рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рде) рдХрд╛ рдФрд╕рдд рдорд┐рд▓рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдХрд╛рдлреА рдЦреБрд╢ рд╣реВрдВ, рдлрд┐рд░ рднреА рдореИрдВ рд╡рд┐рд╢реНрд╡ рдбреЗрдЯрд╛ рд╕реЗ рдЧреИрд░-рдШрди рдореЙрдбрд▓ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд▓рд╛рд▓рдЪреА рдЬрд╛рд▓ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рд╢реЗрдбреНрд╕ рдФрд░ рд╡реЛрдХреНрд╕рд▓ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ
рдЬреАрдПрд▓рдПрд╕рдПрд▓ рд╢реЗрдбреНрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде GPU рдкрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрдВрдЬрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд╖реНрдЯрдкреНрд░рдж рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВред рдореИрдВ рдПрдХ GLSL рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЪрд▓рддреЗ-рдЪрд▓рддреЗ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрдирд╛ рдкрдбрд╝рд╛ред
рдореИрдВрдиреЗ рдЬрд┐рди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рд╡реЗ рдПрдлрдмреАрдУ рдФрд░ рдмрдирд╛рд╡рдЯ рдХреЗ рдирдореВрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзреБрдВрдзрд▓рд╛ рд╣реЛ рдЬрд╛рдирд╛, рдЫрд╛рдпрд╛ рдХрд░рдирд╛, рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛)ред
рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХрд╛рд╢ рдореЙрдбрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ "рдЕрдВрдзреЗрд░реЗ" рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рддрдп рд╣реЛрдЧрд╛ рдЬрдм рдореИрдВ рджрд┐рди рдФрд░ рд░рд╛рдд рдмрджрд▓рдиреЗ рдХреЗ рдЪрдХреНрд░ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред
рдореИрдВрдиреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдмреНрд░реЗрд╕реЗрдирд╣реИрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрд╡рд░ рдЪрдпрди рд╕рдорд╛рд░реЛрд╣ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ (рдпрд╣ рд╕реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рд▓рд╛рдн рд╣реИ)ред рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд╛рдирд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИред рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ рдСрд░реНрдереЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
"рд╣рд╛рдЗрд▓рд╛рдЗрдЯреЗрдб" рдХрджреНрджреВредрдЦреЗрд▓ рдХреА рдХрдХреНрд╖рд╛рдПрдВ
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЗрдирдкреБрдЯ, рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдЖрдЗрдЯрдо рд╡рд░реНрдЧ (рдЬреЛ рдЖрдЧреЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдЧрд╛) рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд╣рд╛рдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред
class eventHandler{ public:
рдореЗрд░рд╛ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрджрд╕реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЛ рд╕рд╣рд░реНрд╖ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛, рд╡рд┐рд╢реЗрд╖рдХрд░ рдПрд╕рдбреАрдПрд▓ рдкреЛрд▓ рдЗрд╡реЗрдВрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ред
рдирд╡реАрдирддрдо рдиреЛрдЯ
рдЗрдВрдЬрди рд╣реА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЯрд╛рд╕реНрдХ-рдмреЙрдЯреНрд╕ рдбрд╛рд▓рд╛ (рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛)ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдореЗрд░реЗ рддрд░реАрдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧреЗ рдФрд░ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рд┐рдЦреЗрдВред
рдлрд┐рд░ рдореИрдВрдиреЗ рдЯрд╛рд╕реНрдХ-рдмреЙрдЯ рд╕рд┐рд╕реНрдЯрдо (рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд┐рд▓) рдХреЛ 3 рдбреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдб рдкрд╣рд▓реЗ рд╣реА рдСрдирд▓рд╛рдЗрди рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)!