This is my private game. What I use to play Minetest.
Goals:
- Minecraft-like but not a copy, only inspiration.
- 32x32 textures.
- More ores, trees, flowers, food.
- Farming.
- Mobs.
- Armors and wielded items.
- Potion Brewing & Weapon Enchanting.
- Uranium. Mini Nuke.
- Ambient music and sound effect.
- Languages: English & Spanish.
- More shaped blocks to better construction.
- Hunger, sprint,... HUD bars.
Content Rating
Sammy Rating
License
LGPL 2.1+
Code
https://github.com/runsy/juanchi_game
Script for the Windows Installer (InnoSetup OpenSource Installer)
This script install the game of the {app} folder, plus modify 'minestest.conf' to match the desktop resolution, also the path for the texture pack of my game. Also checks the DirectX version installed to set the 'driver' to opengl or directx8.
Code: Select all
;InnoSetupVersion=5.6.1
[Setup]
AppName=Juanchi Game
AppVerName=v3.18
DefaultDirName={pf64}\Juanchi Name}
DefaultGroupName=Juanchi Game
OutputBaseFilename=JuanchiGame_v3.18
Uninstallable= yes
WizardImageFile={app}\games\juanchi\menu\icon.bmp
WizardImageStretch=no
Compression=lzma
DisableDirPage=no
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl"
[Files]
Source: "{app}\*.*"; DestDir: "{app}"; Components: "base"; Flags: ignoreversion recursesubdirs; AfterInstall: MyAfterInstall
[Dirs]
Name: "{app}";
[Components]
Name: "base"; Description: "Juanchi Game"; Types: "full compact custom";
[Icons]
Name: "{group}\{cm:PlayTo,Juanchi Game}"; Filename: "{app}\bin\minetest.exe"; Components: "base"
Name: "{group}\{cm:UninstallProgram,Juanchi Game}"; Filename: "{app}\unins000.exe"; Components: "base"
Name: "{userdesktop}\Juanchi Game"; Filename: "{app}\bin\minetest.exe"; Tasks: desktopicon
[Tasks]
Name: "desktopicon"; Description: "Crear acceso directo en el Escritorio"; GroupDescription: "Opciones";
[INI]
[CustomMessages]
CustomMessage=Undefined //just in case (should be equal to English)
en.PlayTo=Play to
es.PlayTo=Juega a
en.InstallOptionsHeader=Install Options
es.InstallOptionsHeader=Opciones de instalación
en.InstallOptionsQuery=Who should Juanchi Game be installed for?
es.InstallOptionsQuery=¿Para quién debería instalarse Juanchi Game?
en.InstallOptionsText1=Please, select if you want to make Juanchi Game available to all users
es.InstallOptionsText1=Por favor, selecciona si deseas hacer Juanchi Game disponible para todos los usuarios
en.InstallOptionsText2=or just for you.
es.InstallOptionsText2=o sólo para ti.
en.InstallOptions1=&Whoever uses this PC
es.InstallOptions1=&Cualquiera que use este PC
en.InstallOptions2=&Just for me
es.InstallOptions2=&Sólo para mí
[Messages]
en.BeveledLabel=English
es.BeveledLabel=Español
[Registry]
[Code]
var
OptionPage: TInputOptionWizardPage;
Is_AfterInstall_Executed: Boolean;
Const
SM_CXSCREEN = 0; // The enum-value for getting the width of the cient area for a full-screen window on the primary display monitor, in pixels.
SM_CYSCREEN = 1; // The enum-value for getting the height of the client area for a full-screen window on the primary display monitor, in pixels.
procedure InitializeWizard();
begin
OptionPage :=
CreateInputOptionPage(
wpWelcome,
ExpandConstant('{cm:InstallOptionsHeader}'), ExpandConstant('{cm:InstallOptionsQuery}'),
ExpandConstant('{cm:InstallOptionsText1}') + ' ' +
ExpandConstant('{cm:InstallOptionsText2}'),
True, False);
OptionPage.Add(ExpandConstant('{cm:InstallOptions1}'));
OptionPage.Add(ExpandConstant('{cm:InstallOptions2}'));
if IsAdminLoggedOn then
begin
OptionPage.Values[0] := True;
end
else
begin
OptionPage.Values[1] := True;
OptionPage.CheckListBox.ItemEnabled[0] := False;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID = OptionPage.ID then
begin
if OptionPage.Values[1] then
begin
WizardForm.DirEdit.Text := ExpandConstant('{userappdata}\Juanchi Game')
end
else
begin
WizardForm.DirEdit.Text := ExpandConstant('{pf64}\Juanchi Game');
end;
end;
Result := True;
end;
function FileReplaceString(const FileName, SearchString, ReplaceString: string):boolean;
var
MyFile : TStrings;
MyText : string;
begin
MyFile := TStringList.Create;
try
result := true;
try
MyFile.LoadFromFile(FileName);
MyText := MyFile.Text;
{ Only save if text has been changed. }
if StringChangeEx(MyText, SearchString, ReplaceString, True) > 0 then
begin;
MyFile.Text := MyText;
MyFile.SaveToFile(FileName);
end;
except
result := false;
end;
finally
MyFile.Free;
end;
end;
function GetSystemMetrics (nIndex: Integer): Integer;
external 'GetSystemMetrics@User32.dll stdcall setuponly';
procedure DecodeVersion( verstr: String; var verint: array of Integer );
var
i,p: Integer; s: string;
begin
// initialize array
verint := [0,0,0,0];
i := 0;
while ( (Length(verstr) > 0) and (i < 4) ) do
begin
p := pos('.', verstr);
if p > 0 then
begin
if p = 1 then s:= '0' else s:= Copy( verstr, 1, p - 1 );
verint[i] := StrToInt(s);
i := i + 1;
verstr := Copy( verstr, p+1, Length(verstr));
end
else
begin
verint[i] := StrToInt( verstr );
verstr := '';
end;
end;
end;
// This function compares version string
// return -1 if ver1 < ver2
// return 0 if ver1 = ver2
// return 1 if ver1 > ver2
function CompareVersion( ver1, ver2: String ) : Integer;
var
verint1, verint2: array of Integer;
i: integer;
begin
SetArrayLength( verint1, 4 );
DecodeVersion( ver1, verint1 );
SetArrayLength( verint2, 4 );
DecodeVersion( ver2, verint2 );
Result := 0; i := 0;
while ( (Result = 0) and ( i < 4 ) ) do
begin
if verint1[i] > verint2[i] then
Result := 1
else
if verint1[i] < verint2[i] then
Result := -1
else
Result := 0;
i := i + 1;
end;
end;
// DirectX version is stored in registry as 4.majorversion.minorversion
// DirectX 8.0 is 4.8.0
// DirectX 8.1 is 4.8.1
// DirectX 9.0 is 4.9.0
function GetDirectXVersion(): String;
var
sVersion: String;
begin
sVersion := '';
RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\DirectX', 'Version', sVersion );
Result := sVersion;
end;
procedure MyAfterInstall();
var
xres: Integer;
yres: Integer;
begin
if not Is_AfterInstall_Executed then
begin
yres:= GetSystemMetrics(SM_CYSCREEN); //vertical resolution
FileReplaceString(ExpandConstant('{app}/minetest.conf'), 'language = en', 'language = '+ ActiveLanguage);
xres:= GetSystemMetrics(SM_CXSCREEN);
FileReplaceString(ExpandConstant('{app}/minetest.conf'), 'screen_w = 1920', 'screen_w = '+ IntToStr(xres));
FileReplaceString(ExpandConstant('{app}/minetest.conf'), 'screen_h = 1080', 'screen_h = '+ IntToStr(yres));
if CompareVersion( GetDirectXVersion(), '4.8.0') > 0 then
begin
FileReplaceString(ExpandConstant('{app}/minetest.conf'), 'driver = opengl', 'driver = '+ 'direct3d8')
end;
SaveStringToFile(ExpandConstant('{app}/minetest.conf'), 'texture_path='+ExpandConstant('{app}\textures\juanchi\'), True);
Is_AfterInstall_Executed:= true;
end;
end;
Follow this guide
Download
You must choice one of the following 3 options:
Download the game This will require a working Minetest
Download from itch.io the Windows version of Minetest with the Juanchi Game included (easy installation)
Juanchi Game [GooglePlay-Android Version]