📄 cellproperties.pas
字号:
unit cellProperties;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ComCtrls, ExtCtrls,isoengine;
type
TCellProp = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Bevel2: TBevel;
Bevel1: TBevel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DisplayFrom: TTrackBar;
DisplayTo: TTrackBar;
AnimateFrom: TTrackBar;
AnimateTo: TTrackBar;
AnimateSpeed: TTrackBar;
Panel1: TPanel;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Memo1: TMemo;
AttAvail: TListBox;
CellAttribs: TListBox;
Label6: TLabel;
Label7: TLabel;
Add: TButton;
Remove: TButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Label8: TLabel;
Label9: TLabel;
procedure DisplayFromChange(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure AddClick(Sender: TObject);
procedure RemoveClick(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
X,Y : integer;
end;
var
CellProp: TCellProp;
implementation
uses Main;
{$R *.DFM}
procedure TCellProp.DisplayFromChange(Sender: TObject);
begin
if (Visible) then
begin
Label1.Caption := 'Display From ' + IntToStr(DisplayFrom.Position);
Label2.Caption := 'Display To ' + IntToStr(DisplayTo.Position);
Label3.Caption := 'Animate From ' + IntToStr(AnimateFrom.Position);
Label4.Caption := 'Animate To ' + IntToStr(AnimateTo.Position);
Label5.Caption := 'Animate Speed ' + IntToStr(AnimateSpeed.Position);
end;
end;
procedure TCellProp.BitBtn1Click(Sender: TObject);
var lx,ly : Integer;
procedure SetDisplay(x,y : integer);
begin
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AlwaysDisplayFrom := CellProp.DisplayFrom.Position;
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AlwaysDisplayTo := CellProp.DisplayTo.Position;
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AnimateFrom := CellProp.AnimateFrom.Position;
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AnimateTo := CellProp.AnimateTo.Position;
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AnimateSpeed := CellProp.animateSpeed.Position;
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AnimateNext := CellProp.AnimateFrom.Position;
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[x,y].AnimateCount := 1;
end;
begin
DisplayFromChange(Sender);
begin
if (MessageDlg('Save Property Changes to all Selected Cells as well?',
mtConfirmation, [mbYes, mbNo,mbCancel], 0)= mrYes) then
begin
for lx := 0 to MainForm.Activechild.IsoMap.MapWidth-1 do
for ly := 0 to MainForm.Activechild.IsoMap.MapHeight-1 do
begin
if (MainForm.Activechild.IsoMap.FIsoMap.IsState(lx,ly,[tsSelected])) then
SetDisplay(Lx,Ly);
end;
end
else
SetDisplay(x,y);
end;
end;
procedure TCellProp.FormShow(Sender: TObject);
var L : Integer;
State : TCellState;
procedure AddState(teststate : TCellState; s : string);
begin
if ((teststate + State)=State) then
CellAttribs.Items.Add(s)
else
AttAvail.Items.Add(s);
end;
begin
L := Length(MainForm.Activechild.IsoMap.Cell[x,y].ImageIndexes);
displayFrom.Max := L;
DisplayFrom.Min := 1;
DisplayTo.Max := L;
DisplayTo.Min := 1;
AnimateFrom.Max := L;
AnimateFrom.Min := 1;
AnimateTo.Max := L;
AnimateTo.Min := 1;
DisplayFrom.Position := MainForm.Activechild.IsoMap.Cell[x,y].AlwaysDisplayFrom;
DisplayTo.Position := MainForm.Activechild.IsoMap.Cell[x,y].AlwaysDisplayTo;
AnimateFrom.Position := MainForm.Activechild.IsoMap.Cell[x,y].AnimateFrom;
AnimateTo.Position := MainForm.Activechild.IsoMap.Cell[x,y].AnimateTo;
animateSpeed.Position := MainForm.Activechild.IsoMap.Cell[x,y].AnimateSpeed;
Memo1.Clear;
Memo1.Text := MainForm.Activechild.IsoMap.FIsoMap.CellComment[x,y];
Caption := 'Cell['+IntToStr(X)+','+IntToStr(Y)+'] properties';
CellAttribs.Clear;
AttAvail.Clear;
State := MainForm.Activechild.IsoMap.Cell[x,y].State;
AddState([tsGround], ' tsGround');
AddState([tsFog], ' tsFog');
AddState([tsPassable], ' tsPassable');
AddState([tsRough], ' tsRough');
AddState([tsSelected], ' tsSelected');
AddState([tsEnabled], ' tsEnabled');
AddState([tsVisible], ' tsVisible');
AddState([ts3d], ' ts3d');
AddState([tsDirty],' tsDirty');
AddState([tsReserved2],' tsReserved2');
AddState([tsReserved3],' tsReserved3');
AddState([tsReserved4],' tsReserved4');
AddState([tsReserved5],' tsReserved5');
AddState([tsReserved6],' tsReserved6');
AddState([tsReserved7],' tsReserved7');
AddState([tsReserved8],' tsReserved8');
AddState([tsReserved9],' tsReserved9');
AddState([tsReserved10],'tsReserved10');
AddState([tsReserved11],'tsReserved11');
AddState([tsReserved12],'tsReserved12');
AddState([tsReserved13],'tsReserved13');
AddState([tsReserved14],'tsReserved14');
AddState([tsReserved15],'tsReserved15');
AddState([tsReserved16],'tsReserved16');
AddState([tsReserved17],'tsReserved17');
AddState([tsReserved18],'tsReserved18');
AddState([tsReserved19],'tsReserved19');
AddState([tsReserved20],'tsReserved20');
AddState([tsReserved21],'tsReserved21');
AddState([tsReserved22],'tsReserved22');
AddState([tsReserved23],'tsReserved23');
AddState([tsReserved24],'tsReserved24');
AddState([tsReserved25],'tsReserved25');
AddState([tsReserved26],'tsReserved26');
AddState([tsReserved27],'tsReserved27');
AddState([tsReserved28],'tsReserved28');
end;
procedure TCellProp.AddClick(Sender: TObject);
var i : integer;
begin
for i := 0 to attavail.Items.Count-1 do
begin
if (AttAvail.Selected[i]) then
begin
CellAttribs.Items.Add(AttAvail.Items[i]);
AttAvail.Items[i] := '';
end;
end;
i := AttAvail.Items.Count;
while(i>1) do
begin
Dec(i);
if (AttAvail.Items[i] = '') then
AttAvail.Items.Delete(i);
end;
end;
procedure TCellProp.RemoveClick(Sender: TObject);
var i : integer;
begin
for i := 0 to CellAttribs.Items.Count-1 do
begin
if (CellAttribs.Selected[i]) then
begin
AttAvail.Items.Add(CellAttribs.Items[i]);
CellAttribs.Items[i] := '';
end;
end;
i := CellAttribs.Items.Count;
while(i>1) do
begin
Dec(i);
if (CellAttribs.Items[i] = '') then
CellAttribs.Items.Delete(i);
end;
end;
procedure TCellProp.BitBtn4Click(Sender: TObject);
var lx,ly : integer;
begin
mainForm.Activechild.IsoMap.FIsoMap.CellComment[X,Y] := CellProp.Memo1.Text;
if (MessageDlg('Save Property Changes to all Selected Cells as well?',
mtConfirmation, [mbYes, mbNo,mbCancel], 0)= mrYes) then
begin
for lx := 0 to MainForm.Activechild.IsoMap.MapWidth-1 do
for ly := 0 to MainForm.Activechild.IsoMap.MapHeight-1 do
begin
if (MainForm.Activechild.IsoMap.FIsoMap.IsState(lx,ly,[tsSelected])) then
MainForm.Activechild.IsoMap.FIsoMap.CellComment[lX,ly] := CellProp.Memo1.Text;
end;
end;
end;
procedure TCellProp.BitBtn3Click(Sender: TObject);
var lx,ly : integer;
State : TCellState;
procedure AddState(teststate : TCellState; s : string);
var i : integer;
begin
for i := 0 to CellAttribs.Items.Count-1 do
begin
if (CellAttribs.Items[i] = s) then
State := State + teststate;
end;
end;
begin
State := [];
AddState([tsGround], ' tsGround');
AddState([tsFog], ' tsFog');
AddState([tsPassable], ' tsPassable');
AddState([tsRough], ' tsRough');
AddState([tsSelected], ' tsSelected');
AddState([tsEnabled], ' tsEnabled');
AddState([tsVisible], ' tsVisible');
AddState([ts3d], ' ts3d');
AddState([tsDirty],' tsDirty');
AddState([tsReserved2],' tsReserved2');
AddState([tsReserved3],' tsReserved3');
AddState([tsReserved4],' tsReserved4');
AddState([tsReserved5],' tsReserved5');
AddState([tsReserved6],' tsReserved6');
AddState([tsReserved7],' tsReserved7');
AddState([tsReserved8],' tsReserved8');
AddState([tsReserved9],' tsReserved9');
AddState([tsReserved10],'tsReserved10');
AddState([tsReserved11],'tsReserved11');
AddState([tsReserved12],'tsReserved12');
AddState([tsReserved13],'tsReserved13');
AddState([tsReserved14],'tsReserved14');
AddState([tsReserved15],'tsReserved15');
AddState([tsReserved16],'tsReserved16');
AddState([tsReserved17],'tsReserved17');
AddState([tsReserved18],'tsReserved18');
AddState([tsReserved19],'tsReserved19');
AddState([tsReserved20],'tsReserved20');
AddState([tsReserved21],'tsReserved21');
AddState([tsReserved22],'tsReserved22');
AddState([tsReserved23],'tsReserved23');
AddState([tsReserved24],'tsReserved24');
AddState([tsReserved25],'tsReserved25');
AddState([tsReserved26],'tsReserved26');
AddState([tsReserved27],'tsReserved27');
AddState([tsReserved28],'tsReserved28');
mainForm.Activechild.IsoMap.FIsoMap.IsoMap[X,Y].State := state;
if (MessageDlg('Save Property Changes to all Selected Cells as well?',
mtConfirmation, [mbYes, mbNo,mbCancel], 0)= mrYes) then
begin
for lx := 0 to MainForm.Activechild.IsoMap.MapWidth-1 do
for ly := 0 to MainForm.Activechild.IsoMap.MapHeight-1 do
begin
if (MainForm.Activechild.IsoMap.FIsoMap.IsState(lx,ly,[tsSelected])) then
MainForm.Activechild.IsoMap.FIsoMap.IsoMap[lX,lY].State := State;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -